Yea, your my man ;-)

It's working really fine. I do think we now have a killer JBossMQ/MDB
product. Great!

I could not see any problems with the commits in the code I know any
thing about (the JBoss server stuff), except the indentation in
JMSContainerInvoker (which I will fix).

//Peter


On 16 Aug, David Maplesden wrote:
> I ran things again this morning through JBuilder in debug mode and (although
> I got the same ClassNotFoundExceptions ??) I did find a problem with the
> undeploy.  
> 
> My system hung in the StdServerSessionPool.clear() method because it was
> inside a synchronized(sessionPool) block when it called
> executor.shutdownAfterProcessingCurrentlyQueuedTasks() which was waiting for
> a number of WorkerThreads which were all trying to call
> ServerSessionPool.recycle() and were blocked waiting for the sessionPool
> monitor.  Hence deadlock.  So I introduced the closing flag in the clear
> method.  
> 
> I also changed the order of closing things in the
> JMSContainerInvoker.destroy() so that the ConnectionConsumer is closed
> before the serverSessionPool is cleaned up.  This is primarily because the
> code I wrote for ConnectionConsumer assumes that serverSessions will always
> be available from the pool if it waits long enough.  If the serversession
> pool is cleaned up before its close method is called then it might get
> confused as to why it can't get a valid server session from the pool.
> 
> A side effect of this second change is that it is 100% guaranteed that no
> messages will be delivered to the server sessions in the pool after the
> connection consumer is closed so it is no longer neccessary to stop the
> connection before doing the other cleanup.  Since it appears we only have 1
> connection per connectionConsumer in this set up this doesn't make much
> difference here but if we were to have multiple consumers on a connection
> you can close one of them down without affecting the others simply by
> calling its close method and then cleaning up the server session pool.
> 
> I also changed the clear() method to block until all ServerSessions had
> returned to prevent the connection being closed (which closes the individual
> sessions) before the sessions have finished executing.
> 
> Essentially all these changes fell into the same category, race conditions
> between the main thread which is cleaning up the mdb and the worker threads
> processing the messages inside the ServerSessions and sessions.
> 
> Since I made these changes to code I am not familiar I would appreciate it
> if you would check I haven't overlooked anything in the changes I made.
> 
> Again I hope these changes have fixed the bug.  As far as I can tell
> everything seems to work fine for me now.
> 
> Cheers
> david
> 
> PS: I thought I'd take this off list as it seems like we two were the only
> ones interested.
> 
> 
>> -----Original Message-----
>> From: Peter Antman [mailto:[EMAIL PROTECTED]]
>> Sent: Thursday, August 16, 2001 1:26 AM
>> To: [EMAIL PROTECTED]
>> Subject: Re: [JBoss-dev] MDB has stopped working
>> 
>> 
>> On 15 Aug, David Maplesden wrote:
>> > Ok I have had a look at the Connection stopping process and 
>> have fixed a
>> > loophole that could have resulted in messages being delivered after
>> > connection.stop() had been called in certain circumstances.  
>> 
>> Hi, I am happy that you are trying to fix it. But the latest 
>> suff in CVS
>> does not seem to fix the problem.
>> 
>> > 
>> > I hope this fixes the MDB problem but as I have been unable 
>> to successfully
>> > run the mdbtest (I keep getting ClassNotFoundExceptions from the
>> > ObjectMessageBean) I can't say for sure if it has.  I am 
>> not actually 100%
>> > clear on what the expected output of the test is, there 
>> seems to be one Bean
>> > (ExQueueBean) that throws Exceptions on purpose, yes?
>> > 
>> > I am confused as to why I can't run the mdbtest correctly.  
>> I built the
>> > jboss source from scratch and then the testsuite.  I have 
>> checked the
>> > mdbtest.jar and mdb.jar files to see that they contain the 
>> same version of
>> > the CustomMessage class that is used in the mdbtest so why 
>> the server can't
>> > find the CustomMessage class when the mdb.jar file is 
>> deployed I don't know.
>> 
>> 
>> That is strange. I have never seen that error. I know you 
>> sometime have
>> to copy jbossmq-client.jar to test to avoid getting serialization
>> execptions at the client, but not what you describe.
>> 
>> Have you done a checksout of jboss-all?
>> 
>> ( cd build; build.sh configure; build.sh)
>> 
>> If you have an earlier version of jboss-all you may have to do a
>> checkout over the old one)
>> 
>> Have you done a build.sh clean in jbosstest (i know I had to do that
>> sometime ago to get it working) and are you running the test from
>> dist/bin?
>> 
>> //Peter
>> > 
>> > Cheers
>> > david
>> > 
>> >> -----Original Message-----
>> >> From: Peter Antman [mailto:[EMAIL PROTECTED]]
>> >> Sent: Tuesday, August 14, 2001 7:29 PM
>> >> To: [EMAIL PROTECTED]
>> >> Subject: Re: [JBoss-dev] MDB has stopped working
>> >> 
>> >> 
>> >> On 14 Aug, David Maplesden wrote:
>> >> > I have had a look at the MDB problem this morning and found 
>> >> a simple bug in
>> >> > my original code for SpyConnectionConsumer that would 
>> >> certainly have been
>> >> > causing problems.  As the CVS update says the fix should 
>> >> hopefully fix the
>> >> > problem people were having with MDB but as we are not using 
>> >> MDB ourselves
>> >> > and are currently having a bit of trouble with the new 
>> >> build system I can't
>> >> > test the fix.  So please feel free to test the new fix and 
>> >> let us know if it
>> >> > still ain't working.
>> >> > 
>> >> > Cheers,
>> >> > david
>> >> > 
>> >> > PS:  As I am new to the list I should probably introduce 
>> >> myself.  My name is
>> >> > David Maplesden and I work at Orion Systems in NZ with Paul 
>> >> Kendall.  I am
>> >> > responsible for the majority of the recent major changes 
>> to jboss mq
>> >> > submitted by Paul.  They were submitted by him cause I am 
>> >> (to date) too lazy
>> >> > to set up a CVS account and stuff.  Anyone with any 
>> >> problems with the new
>> >> > code or questions etc feel free to send me an e-mail, if 
>> >> I'm not too busy at
>> >> > work I'll get back to you ASAP.
>> >> 
>> >> Hi, and welcome to the list. You have done some great 
>> things. And it's
>> >> good that the first part of the MDB problem is solved.
>> >> 
>> >> We are now back on square one: undeploying an MDB while it 
>> still has
>> >> messages waiting does not work (as described in
>> >> http://groups.yahoo.com/group/spyderMQ/message/1401 
>> appended here for
>> >> clarity).
>> >> 
>> >> Here is some sample output from mdb test:
>> >> 
>> > 
>> > 
>> > *snip*
>> > 
>> > _______________________________________________
>> > Jboss-development mailing list
>> > [EMAIL PROTECTED]
>> > http://lists.sourceforge.net/lists/listinfo/jboss-development
>> 
>> -- 
>> Jobba hos oss: http://www.tim.se/weblab
>> ------------------------------------------------------------
>> Peter Antman          Technology in Media, Box 34105 100 26 Stockholm
>> Systems Architect     WWW: http://www.tim.se
>> Email: [EMAIL PROTECTED]     WWW: http://www.backsource.org
>> Phone: +46-(0)8-506 381 11 Mobile: 070-675 3942 
>> ------------------------------------------------------------
>> 
>> 
>> _______________________________________________
>> Jboss-development mailing list
>> [EMAIL PROTECTED]
>> http://lists.sourceforge.net/lists/listinfo/jboss-development
>> 

-- 
Jobba hos oss: http://www.tim.se/weblab
------------------------------------------------------------
Peter Antman             Technology in Media, Box 34105 100 26 Stockholm
Systems Architect        WWW: http://www.tim.se
Email: [EMAIL PROTECTED]        WWW: http://www.backsource.org
Phone: +46-(0)8-506 381 11 Mobile: 070-675 3942 
------------------------------------------------------------


_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to