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