|
From: R. v. K. \(Ronald\) <rv...@ab...> - 2005-07-06 07:43:55
|
Mathias. Good info. I'll have a look. This Jakarta Commons solution does not come = up in google if you use JTA in your search terms.=20 Ok.. I had a quick look. Since it is not JTA/JCA compatible it seems = like a similar solution currently implemented in hermes. Then again, it = would not be wrong to drop these 'home made' extensions in favour of = existing ones right? (not that the home made solutions are bad, not at = all. My own cake is always better than the cake from the mall ;-) Is your solution a kind of java connector? Can it be used as a drop-inn = in any j2ee container? If so, is it available to others ;-) Ronald -----Oorspronkelijk bericht----- Van: ebx...@li... = [mailto:ebx...@li...] Namens Mattias J Verzonden: woensdag 6 juli 2005 7:10 Aan: ebx...@li... Onderwerp: Re: [ebxmlms-general] Connectionpooling and transactions. = was: Problems after lost connection to database The Jakarta Commons Transaction API has some kind=20 of file transaction supports, but I haven't tried it. I have made my own JTA file wrapper (i.e. files=20 are XAResource:s), that supports file creation=20 and move/rename. Works like a charm, and quite trivial to implement. At 2005-07-06 04:01, you wrote: >Now, Hermes supports a custom way (API) to=20 >redirect the file persistence to database.=20 >However, still it is not transaction-aware. So=20 >we may need to modify that API as well. What do you think? >Regards, -Patrick > > >Ronald van Kuijk wrote: > >>Sounds interesting. But with regard to this=20 >>immediately a second question comes to mind. There is >>also a transactionmechanism in place which does=20 >>a kind of xa over a database and a filesystem. >>This makes it almost impossible to use the=20 >>default JTA for this, which would make the hermes core >>even smaller. For our company, storing the=20 >>messages in a DB as a blob is not a problem since we >>require clustering and failover any way. It is=20 >>in fact even a requirement unless there would be a >>JTA compatible filesystem persistency layer (JCA?)). >> >>Replacing the DBConnectionPool with a standard=20 >>based solution can be done by me, since I've done >>it before and probably have the code somewhere.=20 >>DBCP does not have to be provided then, since all >>servlet engines and j2ee servers contain one.=20 >>But regarding the file persistency I'd like to get a >>response from more users since that is another issue. >> >>Comments? >> >> >>Patrick Yee probeerde me het volgende duidelijk te maken: >> >> >>>There is no strict reason for using our own implementation. So it = would >>>be good to have some contribution to port Hermes to make use of other >>>database pool, like DBCP. >>>Regards, -Patrick >>> >>>Regards, -Patrick >>> >>> >>>Mattias J wrote: >>> >>> >>> >>>>Yes, why not include for example Jakarta Commons DBCP? >>>> >>>>At 2005-06-27 09:29, you wrote: >>>> >>>> >>>> >>>>>I guess the problem is that you have implemented your own >>>>>databasepool, without sophisticated recovery mechanism. >>>>>Our own application use javax.sql.DataSource, to get a connection. = I >>>>>guess there is a recovery mechanism in that solution, as our own >>>>>application runs fine when the connection gets back. >>>>>Is there anyway to use javax.sql.DataSource instead of your >>>>>implementation of the connection pool? I guess my question is more = to >>>>>why you are using your own implemtation, are you using some extra >>>>>stuff, I can't get from javax.sql.DataSource? >>>>> >>>>>Regards Kenneth >>>>> >>>>> >>>>> >>>>>>From: Patrick Yee <kc...@ce...> >>>>>>To: ebx...@li... >>>>>>CC: tr...@ho... >>>>>>Subject: Re: [ebxmlms-general] Problems after lost connection to >>>>>>database >>>>>>Date: Sun, 26 Jun 2005 19:19:35 +0800 >>>>>> >>>>>>We have not implemented a sophisticated recovery mechanism in the >>>>>>database connection pool. The only mechanism we have done is, >>>>>>whenever a connection is proved to be bad, we will not put it back >>>>>>to the connection pool. Actually there was a suggestion some time >>>>>>ago that we can do a "select *" on some tables before we use the >>>>>>pooled database connection. We think that will create certain >>>>>>performance issue, and so we shelved that idea. Of course, if you >>>>>>want it, you can just patch the database connection pool classes = and >>>>>>implement any advanced recovery mechanism as you like. :-) >>>>>>Regards, -Patrick >>>>>> >>>>>> >>>>>>Kenneth Pedersen wrote: >>>>>> >>>>>> >>>>>> >>>>>>>Hi >>>>>>> >>>>>>>If I loose the connection to my database for a short time >>>>>>>(1-2minutes), MSH do not operate properly afterwards. >>>>>>> >>>>>>>When the connection is lost this occurs in the MSH_client.log: >>>>>>> >>>>>>>2005-06-21 09:13:34,384 DEBUG [Thread-8]: =3D> >>>>>>>DbConnectionPool.getConnection >>>>>>>2005-06-21 09:13:34,384 DEBUG [Thread-8]: <=3D >>>>>>>DbConnectionPool.getConnection >>>>>>>2005-06-21 09:13:34,384 ERROR [Thread-8]: [10002] Unknown error >>>>>>>Exception: java.sql.SQLException >>>>>>>Message: I/O Error: Connection reset by peer: socket write error >>>>>>>2005-06-21 09:13:34,384 DEBUG [Thread-8]: =3D> = Transaction.rollback >>>>>>>(txID: #2321) >>>>>>>2005-06-21 09:13:34,384 ERROR [Thread-8]: [10315] Cannot rollback >>>>>>>DB changes >>>>>>>Exception: java.sql.SQLException >>>>>>>Message: Invalid state, the Connection object is closed. >>>>>>>2005-06-21 09:13:34,384 DEBUG [Thread-8]: =3D> >>>>>>>DbConnectionPool.freeConnection >>>>>>>2005-06-21 09:13:34,384 DEBUG [Thread-8]: <=3D >>>>>>>DbConnectionPool.freeConnection >>>>>>>2005-06-21 09:13:34,384 DEBUG [Thread-8]: <=3D = Transaction.rollback >>>>>>>2005-06-21 09:13:34,384 DEBUG [Thread-8]: =3D> >>>>>>>MessageServiceHandler.getNextUndeliveredMessage >>>>>>>2005-06-21 09:13:34,384 DEBUG [Thread-8]: =3D> >>>>>>>MessageServer.getUndeliveredMessages >>>>>>>2005-06-21 09:13:34,384 DEBUG [Thread-8]: =3D> >>>>>>>DbConnectionPool.getConnection >>>>>>>2005-06-21 09:13:34,384 DEBUG [Thread-8]: =3D> >>>>>>>DbConnectionPool.createConnection >>>>>>>2005-06-21 09:13:35,352 ERROR [Thread-8]: [10306] Cannot create = DB >>>>>>>connection Exception: java.sql.SQLException Message: Network = error >>>>>>>IOException: Connection refused: connect >>>>>>>2005-06-21 09:13:35,352 DEBUG [Thread-8]: =3D> = Transaction.rollback >>>>>>>(txID: #2323) >>>>>>>2005-06-21 09:13:35,352 DEBUG [Thread-8]: <=3D = Transaction.rollback >>>>>>>2005-06-21 09:13:35,352 DEBUG [Thread-8]: =3D> >>>>>>>MessageServiceHandler.getNextUndeliveredMessage >>>>>>>2005-06-21 09:13:35,352 DEBUG [Thread-8]: =3D> >>>>>>>MessageServer.getUndeliveredMessages >>>>>>>2005-06-21 09:13:35,352 DEBUG [Thread-8]: =3D> >>>>>>>DbConnectionPool.getConnection >>>>>>>2005-06-21 09:13:35,352 DEBUG [Thread-8]: =3D> >>>>>>>DbConnectionPool.createConnection >>>>>>> >>>>>>> >>>>>>>After the connection is restored MSH do not seem to get a proper >>>>>>>connection. >>>>>>>This occurs then in the MSH_Client.log: >>>>>>> >>>>>>>2005-06-21 09:13:42,384 ERROR [Thread-8]: [10306] Cannot create = DB >>>>>>>connection >>>>>>>Exception: java.sql.SQLException Message: Network error >>>>>>>IOException: Connection refused: connect >>>>>>>2005-06-21 09:13:42,384 DEBUG [Thread-8]: =3D> = Transaction.rollback >>>>>>>(txID: #2338) >>>>>>>2005-06-21 09:13:42,384 DEBUG [Thread-8]: <=3D = Transaction.rollback >>>>>>>2005-06-21 09:13:42,384 DEBUG [Thread-8]: =3D> >>>>>>>MessageServiceHandler.getNextUndeliveredMessage >>>>>>>2005-06-21 09:13:42,384 DEBUG [Thread-8]: =3D> >>>>>>>MessageServer.getUndeliveredMessages >>>>>>>2005-06-21 09:13:42,384 DEBUG [Thread-8]: =3D> >>>>>>>DbConnectionPool.getConnection >>>>>>>2005-06-21 09:13:42,384 DEBUG [Thread-8]: =3D> >>>>>>>DbConnectionPool.createConnection >>>>>>>2005-06-21 09:13:43,384 ERROR [Thread-8]: [10306] Cannot create = DB >>>>>>>connection >>>>>>>Exception: java.sql.SQLException >>>>>>>Message: Network error IOException: Connection refused: connect >>>>>>> >>>>>>> >>>>>>> >>>>>>>When i try to send a message through MSH i get this: >>>>>>>hk.hku.cecid.phoenix.message.handler.RequestException: >>>>>>>Failed to send query to MSH. >>>>>>>HTTP response code =3D 200 >>>>>>>HTTP response message =3D OK >>>>>>> at >>>>>>>hk.hku.cecid.phoenix.message.handler.Request.expectMapResponse(Unk= nown >>>>>>>Source) >>>>>>> at >>>>>>>hk.hku.cecid.phoenix.message.handler.Request.sendMessageServiceHan= dlerConfig(Unknown >>>>>>>Source) >>>>>>> at >>>>>>>hk.hku.cecid.phoenix.message.handler.Request.register(Unknown = Source) >>>>>>> at = hk.hku.cecid.phoenix.message.handler.Request.<init>(Unknown >>>>>>>Source) >>>>>>> at = hk.hku.cecid.phoenix.message.handler.Request.<init>(Unknown >>>>>>>Source) >>>>>>> at >>>>>>>com.mysupply.ebxi.msh.MessageManager.sendMessage(MessageManager.ja= va:149) >>>>>>> >>>>>>> >>>>>>>And of course I can not receive any messages through MSH either. >>>>>>> >>>>>>>Does anybody have the same problems, after a lost database >>>>>>>connection? The other part of my application that uses MSH, is >>>>>>>right back in action when the database connection is restored, = but >>>>>>>not MSH. >>>>>>> >>>>>>>The app is running on jboss-4.0.1 (Tomcat 5.0.28), Java >>>>>>>jdk1.5.0_01. The database is Microsofts MSSQL 2000. The driver = for >>>>>>>MSSQL is JTDS 1.0. >>>>>>>I have added this: >>>>>>><check-valid-connection-sql>select * from >>>>>>>some_table</check-valid-connection-sql> >>>>>>>to my datasource file: mssql-ds.xml which is deployed along with >>>>>>>msh.war. >>>>>>> >>>>>>>Everything is working fine, for days, until I loose the database >>>>>>>connection for a few minutes. >>>>>>> >>>>>>>_________________________________________________________________ >>>>>>>Del din verden med MSN Spaces http://spaces.msn.com >>>>>>> >>>>>>> >>>>>>> >>>>>>>------------------------------------------------------- >>>>>>>SF.Net email is sponsored by: Discover Easy Linux Migration = Strategies >>>>>>>from IBM. Find simple to follow Roadmaps, straightforward = articles, >>>>>>>informative Webcasts and more! Get everything you need to get up = to >>>>>>>speed, fast. = http://ads.osdn.com/?ad_id=3D7477&alloc_id=3D16492&op=3Dclick >>>>>>>_______________________________________________ >>>>>>>ebxmlms-general mailing list >>>>>>>ebx...@li... >>>>>>>https://lists.sourceforge.net/lists/listinfo/ebxmlms-general >>>>>>> >>>>>> >>>>>_________________________________________________________________ >>>>>Undg=E5 pop-ups med MSN Toolbar - http://toolbar.msn.dk/ hent den = gratis! >>>>> >>>>> >>>>> >>>>>------------------------------------------------------- >>>>>SF.Net email is sponsored by: Discover Easy Linux Migration = Strategies >>>>>from IBM. Find simple to follow Roadmaps, straightforward articles, >>>>>informative Webcasts and more! Get everything you need to get up to >>>>>speed, fast. = http://ads.osdn.com/?ad_id=3D7477&alloc_id=3D16492&op=3Dclick >>>>>_______________________________________________ >>>>>ebxmlms-general mailing list >>>>>ebx...@li... >>>>>https://lists.sourceforge.net/lists/listinfo/ebxmlms-general >>>>> >>>> >>>> >>>>------------------------------------------------------- >>>>SF.Net email is sponsored by: Discover Easy Linux Migration = Strategies >>>>from IBM. Find simple to follow Roadmaps, straightforward articles, >>>>informative Webcasts and more! Get everything you need to get up to >>>>speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=CCk >>>>_______________________________________________ >>>>ebxmlms-general mailing list >>>>ebx...@li... >>>>https://lists.sourceforge.net/lists/listinfo/ebxmlms-general >>>> >>>> >>> >>>------------------------------------------------------- >>>SF.Net email is sponsored by: Discover Easy Linux Migration = Strategies >>>from IBM. Find simple to follow Roadmaps, straightforward articles, >>>informative Webcasts and more! Get everything you need to get up to >>>speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=CCk >>>_______________________________________________ >>>ebxmlms-general mailing list >>>ebx...@li... >>>https://lists.sourceforge.net/lists/listinfo/ebxmlms-general >>> >>> >>> >> >> >> > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=CCk >_______________________________________________ >ebxmlms-general mailing list >ebx...@li... >https://lists.sourceforge.net/lists/listinfo/ebxmlms-general ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick _______________________________________________ ebxmlms-general mailing list ebx...@li... https://lists.sourceforge.net/lists/listinfo/ebxmlms-general |