|
From: Ronald v. K. <rtv...@xs...> - 2005-07-15 17:03:10
|
Hi Patrick, Great to hear. I'm already going fairly good. There is a lot of refactori= ng I'd like to do. I was not confident before but now I've heard this, I'll go for it for sure. Since all servlet engines also support JMX at the moment, I'd like to con= vert the real commands to an MBean (stop, resume, backup, getStatus etc...) and have main servlet j= ust for receiving messages from other MHS, either by http or by starting another monitor fo= r smtp. Getting messages to the MHS from a businessprocess can go through other 'monitors' (we dis= cussed naming these something else before, but I lost this conversation) Configurable (http, = jms, ejb, ...) and possibly also as a JBI SPI (would be nice, connecting hermes to a standar= d ESB right...?) One question I have is why there are so many innner classes? Is this beca= use of security reasons so they cannot be accessed from outside? I'll keep you guys posted. Ronald Patrick Yee probeerde me het volgende duidelijk te maken: > By the time we were designing Hermes, Hibernate is not that well > considered... (yes, the other way to interpret this is, we are quite > closed in terms of employing other libraries). I think your opinion is = a > 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 the 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 me= ssageserver, >> messageservicehandler etc and how the command parsing works. In additi= on to that, I dug a little >> bit deeper into hermes again especially the DBTableManager classes etc= . If it is possible I'd >> like to get some info on the architectural choices that were made to c= ome to such a solution. It >> looks like it is some persistence mapping, for which there currently a= re very nice out-of-the-box >> solutions (think hibernate). IMVVHO (it is a very, very humble one) th= is would also be a nice >> change and would make it possible to support more databases. >> >>I'll try to work something out which makes it possible to store message= s in either a file or a >> database (configurable?) >> >> >>-----Oorspronkelijk bericht----- >>Van: ebx...@li... >> [mailto:ebx...@li...] Namens Patrick Ye= e >>Verzonden: woensdag 6 juli 2005 4:02 >>Aan: ebx...@li... >>Onderwerp: Re: [ebxmlms-general] Connectionpooling and transactions. wa= s: Problems after lost >> connection to database >> >>Now, Hermes supports a custom way (API) to redirect the file persistenc= e >>to database. However, still it is not transaction-aware. So 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 immediately a second quest= ion comes to mind. There >>> is >>>also a transactionmechanism in place which does a kind of xa over a da= tabase 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 = is not a problem since we >>>require clustering and failover any way. It is in fact even a requirem= ent unless there would be >>> a >>>JTA compatible filesystem persistency layer (JCA?)). >>> >>>Replacing the DBConnectionPool with a standard based solution can be d= one by me, since I've done >>>it before and probably have the code somewhere. DBCP does not have to = be provided then, since >>> all >>>servlet engines and j2ee servers contain one. But regarding the file p= ersistency 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 wou= ld >>>>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 a= nd >>>>>>>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.rollba= ck >>>>>>>>(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.rollba= ck >>>>>>>>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 D= B >>>>>>>>connection Exception: java.sql.SQLException Message: Network erro= r >>>>>>>>IOException: Connection refused: connect >>>>>>>>2005-06-21 09:13:35,352 DEBUG [Thread-8]: =3D> Transaction.rollba= ck >>>>>>>>(txID: #2323) >>>>>>>>2005-06-21 09:13:35,352 DEBUG [Thread-8]: <=3D Transaction.rollba= ck >>>>>>>>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 D= B >>>>>>>>connection >>>>>>>>Exception: java.sql.SQLException Message: Network error >>>>>>>>IOException: Connection refused: connect >>>>>>>>2005-06-21 09:13:42,384 DEBUG [Thread-8]: =3D> Transaction.rollba= ck >>>>>>>>(txID: #2338) >>>>>>>>2005-06-21 09:13:42,384 DEBUG [Thread-8]: <=3D Transaction.rollba= ck >>>>>>>>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 D= B >>>>>>>>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(Un= known >>>>>>>>Source) >>>>>>>> at >>>>>>>>hk.hku.cecid.phoenix.message.handler.Request.sendMessageServiceHa= ndlerConfig(Unknown >>>>>>>>Source) >>>>>>>> at >>>>>>>>hk.hku.cecid.phoenix.message.handler.Request.register(Unknown Sou= rce) >>>>>>>> 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.j= ava: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, bu= t >>>>>>>>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 fo= r >>>>>>>>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 Strat= egies >>>>>>>> >>>>>>>> >>>>>>>>from IBM. Find simple to follow Roadmaps, straightforward article= s, >>>>>>> >>>>>>> >>>>>>>>informative Webcasts and more! Get everything you need to get up = to >>>>>>>>speed, fast. http://ads.osdn.com/?ad_id=3D7477&alloc_id=3D16492&o= p=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 Strateg= ies >>>>>> >>>>>> >>>>>>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=3D= click >>>>>>_______________________________________________ >>>>>>ebxmlms-general mailing list >>>>>>ebx...@li... >>>>>>https://lists.sourceforge.net/lists/listinfo/ebxmlms-general >>>>>> >>>>>> >>>>>> >>>>>> >>>>>------------------------------------------------------- >>>>>SF.Net email is sponsored by: Discover Easy Linux Migration Strategi= es >>>>> >>>>> >>>>>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 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>------------------------------------------------------- >>>>SF.Net email is sponsored by: Discover Easy Linux Migration Strategie= s >>>> >>>> >>>>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 >>>> >>>> >>>> >>>> >>>> >>>> >>> >>> >>> >>> >> >> >> >>------------------------------------------------------- >>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 >> >> >> > > > ------------------------------------------------------- > 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 Kijk niet terug, maar kijk naar mij Against all odds |