|
From: Patrick Y. <kc...@ce...> - 2005-07-15 09:18:29
|
By the time we were designing Hermes, Hibernate is not that well=20 considered... (yes, the other way to interpret this is, we are quite=20 closed in terms of employing other libraries). I think your opinion is a=20 good one. Regards, Patrick Yee Center for E-Commerce Infrastructure Development Making E-Commerce Everyday Commerce R. van Kuijk (Ronald) wrote: >Hmm... I missed the option to redirect file persistence to a database. I= 'll have a look. With 'still it is not transaction-aware' you mean that t= he filepersistence is not really transaction aware? There are some 'in vm= -locking mechamisms' in there but no real commit/rollback etc. Would that= be needed? Kind of difficult, but I'll see. > >Ok, another question. I have a fairly clear picture of the front-end mes= sageserver, messageservicehandler etc and how the command parsing works. = In addition to that, I dug a little bit deeper into hermes again especial= ly the DBTableManager classes etc. If it is possible I'd like to get some= info on the architectural choices that were made to come to such a solut= ion. It looks like it is some persistence mapping, for which there curren= tly are very nice out-of-the-box solutions (think hibernate). IMVVHO (it = is a very, very humble one) this would also be a nice change and would ma= ke it possible to support more databases.=20 > >I'll try to work something out which makes it possible to store messages= in either a file or a database (configurable?) > > >-----Oorspronkelijk bericht----- >Van: ebx...@li... [mailto:ebxmlms-general= -ad...@li...] Namens Patrick Yee >Verzonden: woensdag 6 juli 2005 4:02 >Aan: ebx...@li... >Onderwerp: Re: [ebxmlms-general] Connectionpooling and transactions. was= : Problems after lost connection to database > >Now, Hermes supports a custom way (API) to redirect the file persistence= =20 >to database. However, still it is not transaction-aware. So we may need=20 >to modify that API as well. What do you think? >Regards, -Patrick > > >Ronald van Kuijk wrote: > > =20 > >>Sounds interesting. But with regard to this immediately a second questi= on comes to mind. There is >>also a transactionmechanism in place which does a kind of xa over a dat= abase and a filesystem. >>This makes it almost impossible to use the default JTA for this, which = would make the hermes core >>even smaller. For our company, storing the messages in a DB as a blob i= s not a problem since we >>require clustering and failover any way. It is in fact even a requireme= nt unless there would be a >>JTA compatible filesystem persistency layer (JCA?)). >> >>Replacing the DBConnectionPool with a standard based solution can be do= ne by me, since I've done >>it before and probably have the code somewhere. DBCP does not have to b= e provided then, since all >>servlet engines and j2ee servers contain one. But regarding the file pe= rsistency 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: >>=20 >> >> =20 >> >>>There is no strict reason for using our own implementation. So it woul= d >>>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: >>> >>> =20 >>> >>> =20 >>> >>>>Yes, why not include for example Jakarta Commons DBCP? >>>> >>>>At 2005-06-27 09:29, you wrote: >>>> >>>> =20 >>>> >>>> =20 >>>> >>>>>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 t= o >>>>>why you are using your own implemtation, are you using some extra >>>>>stuff, I can't get from javax.sql.DataSource? >>>>> >>>>>Regards Kenneth >>>>> >>>>> =20 >>>>> >>>>> =20 >>>>> >>>>>>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 an= d >>>>>>implement any advanced recovery mechanism as you like. :-) >>>>>>Regards, -Patrick >>>>>> >>>>>> >>>>>>Kenneth Pedersen wrote: >>>>>> >>>>>> =20 >>>>>> >>>>>> =20 >>>>>> >>>>>>>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.rollbac= k >>>>>>>(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.rollbac= k >>>>>>>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.rollbac= k >>>>>>>(txID: #2323) >>>>>>>2005-06-21 09:13:35,352 DEBUG [Thread-8]: <=3D Transaction.rollbac= k >>>>>>>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.rollbac= k >>>>>>>(txID: #2338) >>>>>>>2005-06-21 09:13:42,384 DEBUG [Thread-8]: <=3D Transaction.rollbac= k >>>>>>>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 Sour= ce) >>>>>>> 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 Strate= gies >>>>>>> =20 >>>>>>> >>>>>>>from IBM. Find simple to follow Roadmaps, straightforward articles= , >>>>>> =20 >>>>>> >>>>>>>informative Webcasts and more! Get everything you need to get up t= o >>>>>>>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 >>>>>>> =20 >>>>>>> >>>>>>> =20 >>>>>>> >>>>>> =20 >>>>>> >>>>>> =20 >>>>>> >>>>>_________________________________________________________________ >>>>>Undg=E5 pop-ups med MSN Toolbar - http://toolbar.msn.dk/ hent den g= ratis! >>>>> >>>>> >>>>> >>>>>------------------------------------------------------- >>>>>SF.Net email is sponsored by: Discover Easy Linux Migration Strategi= es >>>>> =20 >>>>> >>>>>from IBM. Find simple to follow Roadmaps, straightforward articles, >>>> =20 >>>> >>>>>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=3D= click >>>>>_______________________________________________ >>>>>ebxmlms-general mailing list >>>>>ebx...@li... >>>>>https://lists.sourceforge.net/lists/listinfo/ebxmlms-general >>>>> =20 >>>>> >>>>> =20 >>>>> >>>>------------------------------------------------------- >>>>SF.Net email is sponsored by: Discover Easy Linux Migration Strategie= s >>>> =20 >>>> >>>>from IBM. Find simple to follow Roadmaps, straightforward articles, >>> =20 >>> >>>>informative Webcasts and more! Get everything you need to get up to >>>>speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=CCk >>>>_______________________________________________ >>>>ebxmlms-general mailing list >>>>ebx...@li... >>>>https://lists.sourceforge.net/lists/listinfo/ebxmlms-general >>>> >>>> =20 >>>> >>>> =20 >>>> >>>------------------------------------------------------- >>>SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >>> =20 >>> >>>from IBM. Find simple to follow Roadmaps, straightforward articles, >> =20 >> >>>informative Webcasts and more! Get everything you need to get up to >>>speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=CCk >>>_______________________________________________ >>>ebxmlms-general mailing list >>>ebx...@li... >>>https://lists.sourceforge.net/lists/listinfo/ebxmlms-general >>> >>> >>> =20 >>> >>> =20 >>> >>=20 >> >> =20 >> > > > >------------------------------------------------------- >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 > > >------------------------------------------------------- >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=CCk >_______________________________________________ >ebxmlms-general mailing list >ebx...@li... >https://lists.sourceforge.net/lists/listinfo/ebxmlms-general > > =20 > |