Noa Drach [http://community.jboss.org/people/newway] created the discussion

"Identifying session status before performing actions on it"

To view the discussion, visit: http://community.jboss.org/message/557733#557733

--------------------------------------------------------------
Hello,

I'm trying to see if I can implement a solution to a problem that I have, but 
if you think I'm looking in the wrong direction - please let me know.

this is a description of my system:

on the server side I have :
1. JBOSS 4.2.3.GA for java 6
2. with JBOSS Messaging 1.4.5.GA
3. and remoting 2.2.3.sp1

i have multiple clients that run as follows:
1. a process run using Java Service Wrapper by Tanuki
2. java code that connect to the server using JNDI lookup
3. CPP code activated through JNI.

the clients receive message from the server and process them in the cpp code 
and we tracked a bug that we have to the fact that multiple clients are 
handling the same message.

after some digging up it looks like the connection to client A is lost after it 
receives the message and starts handling it and so the JMS redelivers the 
message to client B.

when client A tries to commit is response to the session we get an exception, 
but it's too late since the cpp part already committed it's work.

*so what I wanted to know is if there is a way to query a session and see that 
it's still valid, or if you have an explanation as to why the connection is 
lost and what I need to do to prevent this*.

Here are some of the messages we get -

Server side:
> 2010-08-16 16:10:35,468 DEBUG [org.jboss.remoting.ConnectionNotifier]  
> mailto:org.jboss.remoting.connectionnotif...@d77a85 
> org.jboss.remoting.connectionnotif...@d77a85 Server connection lost to client 
> (session id = 3m3b533o-il79jy-gcxc7el5-1-gcxc7fmx-4
> 
> 2010-08-16 16:10:35,468 DEBUG 
> [org.jboss.jms.server.remoting.JMSServerInvocationHandler] removing callback 
> handler 
> ServerInvokerCallbackHandler[3m3b533o-il79jy-gcxc7el5-1-gcxc7fmx-4+3m3b533o-il79jy-gcxc7el5-1-gcxc7ip5-b]
> 
> 2010-08-16 16:10:35,468 DEBUG [org.jboss.remoting.InvokerRegistry] removed 
> SocketClientInvoker[11455a2, bisocket://x.x.x.x:657877203] from registry
> 
> 2010-08-16 16:10:35,468 DEBUG 
> [org.jboss.remoting.transport.socket.MicroSocketClientInvoker] 
> SocketClientInvoker[11455a2, bisocket://x.x.x.x:657877203] disconnecting ...
> 
> 2010-08-16 16:10:35,468 DEBUG [org.jboss.remoting.Client] 
> Client[10883757:3m3b533o-il79jy-gcxc7el5-1-gcxc7fmx-4+3m3b533o-il79jy-gcxc7el5-1-gcxc7ip5-b]
>  is disconnected
> 
> 2010-08-16 16:10:35,468 DEBUG 
> [org.jboss.remoting.callback.ServerInvokerCallbackHandler] 
> ServerInvokerCallbackHandler[3m3b533o-il79jy-gcxc7el5-1-gcxc7fmx-4+3m3b533o-il79jy-gcxc7el5-1-gcxc7ip5-b]
>  shut down
> 
> 
> 
> 2010-08-16 16:10:36,171 DEBUG 
> [org.jboss.jms.server.connectionmanager.SimpleConnectionManager] unregistered 
> connection ConnectionEndpoint[w-ekj7cxcg-1-90c6cxcg-vn8ywe-o335b3m3] with 
> remoting session ID ...-gcxc7fmx-4
> 
> 2010-08-16 16:10:36,171 DEBUG [org.jboss.remoting.ConnectionNotifier]  
> mailto:org.jboss.remoting.connectionnotif...@d77a85 
> org.jboss.remoting.connectionnotif...@d77a85 notified 
> ConnectionManager[a16b7c] of connection lost to: 
> 3m3b533o-il79jy-gcxc7el5-1-gcxc7fmx-4
> 
> 
> 
> 2010-08-16 16:10:41,171 DEBUG 
> [org.jboss.jms.client.remoting.ClientSocketWrapper] 
> ServerSocketWrapper[Socket[addr=/x.x.x.x,port=60490,localport=4457].1cd25f]: 
> os =  mailto:java.net.socketoutputstr...@37633c 
> java.net.socketoutputstr...@37633c
> 
> 2010-08-16 16:10:41,171 DEBUG 
> [org.jboss.jms.client.remoting.ClientSocketWrapper] 
> ServerSocketWrapper[Socket[addr=/x.x.x.x,port=60490,localport=4457].1cd25f]: 
> os =  mailto:java.net.socketoutputstr...@542356 
> java.net.socketoutputstr...@542356

client side:

> INFO   | jvm 1    | 2010/08/16 16:10:58 | an error occurred in HandleMessage: 
> org.jboss.jms.exception.MessagingTransactionRolledBackException: Failed to 
> invoke
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 | 
> org.jboss.jms.exception.MessagingTransactionRolledBackException: Failed to 
> invoke
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.tx.ResourceManager.commitLocal(ResourceManager.java:225)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.container.SessionAspect.handleCommit(SessionAspect.java:582)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect26.invoke(SessionAspect26.java)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.ClientSessionDelegate$commit_8461082169793485964.invokeNext(ClientSessionDelegate$commit_8461082169793485964.java)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.ClientSessionDelegate$commit_8461082169793485964.invokeNext(ClientSessionDelegate$commit_8461082169793485964.java)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.ClientSessionDelegate.commit(ClientSessionDelegate.java)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.JBossSession.commit(JBossSession.java:164)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> com.jni.WorkerJni.handleMessage(WorkerJni.java:224)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> com.jni.WorkerJni.main(WorkerJni.java:164)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> java.lang.reflect.Method.invoke(Method.java:597)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> java.lang.Thread.run(Thread.java:619)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 | Caused by: 
> org.jboss.jms.exception.MessagingJMSException: Failed to invoke
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:271)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:205)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:160)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.ClientConnectionDelegate.org$jboss$jms$client$delegate$ClientConnectionDelegate$sendTransaction$aop(ClientConnectionDelegate.java:225)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.ClientConnectionDelegate$sendTransaction_N3268650789275322226.invokeNext(ClientConnectionDelegate$sendTransaction_N3268650789275322226.java)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.container.FailoverValveInterceptor.invoke(FailoverValveInterceptor.java:92)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.ClientConnectionDelegate$sendTransaction_N3268650789275322226.invokeNext(ClientConnectionDelegate$sendTransaction_N3268650789275322226.java)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.ClientConnectionDelegate$sendTransaction_N3268650789275322226.invokeNext(ClientConnectionDelegate$sendTransaction_N3268650789275322226.java)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.ClientConnectionDelegate.sendTransaction(ClientConnectionDelegate.java)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.tx.ResourceManager.commitLocal(ResourceManager.java:206)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 ... 16 more
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 | Caused by: 
> java.lang.IllegalStateException: Cannot find object in dispatcher with id 
> w-ekj7cxcg-1-90c6cxcg-vn8ywe-o335b3m3
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.wireformat.ConnectionSendTransactionRequest.serverInvoke(ConnectionSendTransactionRequest.java:79)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:157)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:862)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:611)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:423)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:176)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:182)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.remoting.Client.invoke(Client.java:1925)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.remoting.Client.invoke(Client.java:786)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.remoting.Client.invoke(Client.java:774)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 at 
> org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:189)
> 
> INFO   | jvm 1    | 2010/08/16 16:10:58 |                 ... 27 more

thanks,
Noa

--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/557733#557733]

Start a new discussion in JBoss Messaging at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2042]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to