Asankha, Related to comment [1]: Your patch suggests that the issue occurs only in the MinConcurrency test. If it is really caused by a bug in QPID, then we should not see it with ActiveMQ. Now, the exclusion rule in JMSTransportTest actually excluded the MinConcurrency test for ActiveMQ, which was a mistake. I just corrected that (see revision 713821). Can you test to see if this really only occurs with QPID?
Andreas On Wed, Nov 12, 2008 at 16:37, Asankha C. Perera <[EMAIL PROTECTED]> wrote: > Hi all > > As promised.. here is the current diff from my JMS updates.. I will not > commit it right away since its easier for me to see the diffs clearly on my > IDE, and allows me to complete the cleanup and dead code elimination this > way.. also it will let anyone have a look at the code and comment.. > > The general state of the code is as follows: > - Passes all unit tests / Transport Test kit tests except for a possible > intermittent deadlock in QPID code for one test (see comment [1]) > - Has a few System.out.println's which will be made log.trace calls > - Some dead methods and code needs to be cleaned up and removed > > The approach basically re-uses most of the code and the architecture we had, > but with improvements to handle concurrency, transactions and load etc. This > will also allow us to fix issues like SYNAPSE-435 now.. (actually we need to > fix this for all transports from the base). The basic architecture creates a > new ServiceTaskManager instance for each service interested in the JMS > transport, and the STM would create one (default) or more worker tasks (run > off the transport worker pool) to read and process messages transactionally > - both local and JTA. The transactions could be detached when required and > supported by mediators, or else, the thread pool will commit (unless asked > not to) when a listener thread returns after processing. The STM will scale > up the number of tasks per service according to user defined parameters, and > reduce extra tasks when load reduces. It also manages > disconnection/re-connection from the JMS provider using the same geometric > series enhancements we used for Endpoint failure recovery.. > > Of course, there could be a few more bugs.. and more cleanup.. I have > intentionally left some sout's as well for my convenience.. My plan is to > complete this and check this in by this Friday, so all comments are most > welcome. I have perf tested the initial version of the STM (before Axis > code) using the perf harness, and I will load test again with it before the > final commit.. > > Documentation, samples and unit tests are to follow next week.. I must say > that I am really impressed with the Transport TestKit that Andreas > developed.. it was initially a black box for me, but soon it started to show > me many bugs in the code and other issues, and was a really pleasant test > bench to work with.. I think Andreas has started some Wiki documentation > that will help others write new tests for other/new transports as well this > way.. > > asankha > > Comments > [1] When run from the IDE, I have sometimes (not always) seen QPID getting > deadlocked with the following stack which seems close to > https://issues.apache.org/jira/browse/QPID-849, Thus I have commented it out > from the JMSTransportTest for now.. but it still runs on a mvn clean install > and seems to work .. I've yet to fully understand the issue here.. > > "main" prio=1 tid=0x000000004011be70 nid=0x628a waiting on condition > [0x00007fff1f912000..0x00007fff1f914c70] > at sun.misc.Unsafe.park(Native Method) > at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1841) > at > org.apache.qpid.client.protocol.BlockingMethodFrameListener.blockForFrame(BlockingMethodFrameListener.java:196) > at > org.apache.qpid.client.protocol.AMQProtocolHandler.writeCommandFrameAndWaitForReply(AMQProtocolHandler.java:630) > at > org.apache.qpid.client.protocol.AMQProtocolHandler.syncWrite(AMQProtocolHandler.java:653) > at org.apache.qpid.client.AMQSession.close(AMQSession.java:617) > > [2] http://www.alphaworks.ibm.com/tech/perfharness > > -- > Asankha C. Perera > http://adroitlogic.org > > http://esbmagic.blogspot.com > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
