I just re-ran this test with everything inside of the same vm and did not
run into any hangs.  I also turned up the client poll rate to sleep only for
a second (instead of 1 minute).  I am running even bigger tests now, still
all in the same vm.  After that completes, if it completes I should say, I
will try moving the router outside of the vm.  I am guessing that will fail.
If it does, I am going to try using the JBossMQ jars from the last release
that our software runs under (I think that is a 2.3, but I am not sure).

--jason


On Fri, 13 Jul 2001, Jason Dillon wrote:

> I am still seeing a hang in EntityInstanceInterceptor =(  I think I am
> starting to understand the problem more, which is good.  Unfortunately I
> still don't have a good idea for which chunk of code is at fault.
>
> In reference to the complicated scenario that I explained before, I might
> be able to provide some insight.  I think that there are a few different
> problems here.
>
> I re-ran a large test but removed the last vm and mdb that actually
> processed the requests.  This works with no hangs.  I then started up the
> end MDB to process all of the messages from the router, it looks like it
> processed about 16 requests then hung.
>
> The MDB thread will hang calling a method from some internal code, which
> will wait() for a notification.  Another internal thread is invoking a call
> back which will collect the results of the work and send the response.  This
> is hanging in socket io in the JBossMQ RMI IL:
>
> <snip>
>         at java.net.SocketInputStream.socketRead(Native Method)
>         at java.net.SocketInputStream.read(SocketInputStream.java:86)
>         at java.io.BufferedInputStream.fill(BufferedInputStream.java:186)
>         at java.io.BufferedInputStream.read(BufferedInputStream.java:204)
>         at java.io.DataInputStream.readByte(DataInputStream.java:222)
>         at
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:186)
>         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
>         at
> org.jbossmq.distributed.server.DistributedJMSServerRMIImpl_Stub.addMessage(Unknown
> Source)
>         at org.jbossmq.SpyConnection.sendToServer(SpyConnection.java:373)
>         at org.jbossmq.SpySession.sendMessage(SpySession.java:362)
>         at org.jbossmq.SpyQueueSender.send(SpyQueueSender.java:103)
>         at org.jbossmq.SpyQueueSender.send(SpyQueueSender.java:62)
>         at
> <truncated/>
> </snip>
>
> This will essentially lock the vm (it is not spinning or wedged, but will
> not do anything else).  Since the internal code is waiting for this call
> back to finish before it call notify, the MDB thread TX will timeout.
>
> The first odd thing is that when it times out a message is logged, but the
> thread still hangs.  Should it be interrupted or something?
>
> Now I am still not sure why, then all of these complenets are running
> together that when the end MDB hangs that request creation beans also hang
> (in the EntityInstanceInterceptor).  I think that this might be releated to
> the JBossMQ changes, since I think that both vms might be hung waiting on
> some io from JBossMQ.
>
> I might try running this all inside of one vm to see if the same problem
> happens, which I would guess it would.  I might also try turning up the
> client poll rate again, with the end MDB turned off to see if there is still
> a hang due to contention (as I was seeing before).
>
> So I think we are making progress, but it looks like there is still
> something wrong.
>
> What should happen when a transaction times out?
>
> --jason
>
>
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-development
>


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

Reply via email to