Marcel Ruff
Mon, 25 Feb 2008 05:59:22 -0800
David Kerry wrote:
Hello All, I'm seeing some odd behaviour on one of my clients here and I'm not sure if it's a bug, feature, or configuration problem. Client and server are running the 1.6.2 version of code.
Hi David, 1. Why is secretSessionId invalid?We would need to see the server log for this, possibly the session timed out.
2. Is the client connecting in fail safe mode? o With public session ID > 0: -session.name spiderman_test/1 o -dispatch/callback/retries -1To detect going DEAD you can register xmlBlasterAccess.registerConnectionListener()
and react Kerry-like (see xmlBlaster/demo/HelloWorld4.java). Still it would be good to know why the secret sessionId got invalid. best regards Marcel, Michele
Situation: o client connects to the server and after some time, something marks the connection 'idle' or dead. o client notices this and markes the connection state as 'dead'. so far so good... o further attempts by the client to publish succeed just fine, but get pushed into the save-queue to be published when the connection comes 'back' instead of actually re-initiating a connection to the server. Basically the client sort of goes zombie on me - living dead :-) Here's a relevant chunk of logging from the client side when this situation happens, just as it gets the reply from the server while attempting to publish a message: Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.protocol.socket.SocketCallbackImpl run FINEST: Receiving message > 1757**E**1dummyLoginName:1203708962442000000*publish*sessionId:172.23.254.12-null-1203703214979--1091490067-10**user.security.authentication.accessDenied*XmlBlasterException errorCode=[user.security.authentication.accessDenied] serverSideException=true location=[Authenticate] message=[#exported Your secretSessionId is invalid, no access to spiderman_test. : ] [See URL http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.errorcodes.listing.html#user.security.authentication.accessDenied]*1248*user.security.authentication.accessDenied*spiderman_test*Authenticate*en*#exported Your secretSessionId is invalid, no access to spiderman_test.*version=1.6.2,revision=exported,os.name=Linux,os.version=2.4.20,java.vm.vendor=Sun Microsystems Inc.,java.vm.version=1.5.0_06-b05,os.arch=i386,build.timestamp=12/03/2007 03:42 PM,build.java.vendor=Sun Microsystems Inc.,build.java.version=1.4.2_06*2008-02-22 14:36:02.459*errorCode=user.security.authentication.accessDenied message=#exported Your secretSessionId is invalid, no access to spiderman_test. at org.xmlBlaster.authentication.Authenticate.check(Authenticate.java:852) at org.xmlBlaster.engine.XmlBlasterImpl.publishArr(XmlBlasterImpl.java:189) at org.xmlBlaster.util.protocol.RequestReplyExecutor.receiveReply(RequestReplyExecutor.java:408) at org.xmlBlaster.protocol.socket.HandleClient.handleMessage(HandleClient.java:231) at org.xmlBlaster.protocol.socket.HandleClient$1.run(HandleClient.java:389) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) at java.lang.Thread.run(Thread.java:595)**<transaction/>*true*< , checksum=false, compressed=false, type=69, byte4=0, byte5=0, version=1, requestId=dummyLoginName:1203708962442000000, methodName=publish, sessionId=sessionId:172.23.254.12-null-1203703214979--1091490067-10 Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.protocol.RequestReplyExecutor receiveReply FINE: Receiving 'EXCEPTION' message publish(dummyLoginName:1203708962442000000) Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.protocol.RequestReplyExecutor removeResponseListener FINE: removeResponseListener(dummyLoginName:1203708962442000000) done Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.protocol.RequestReplyExecutor$1 incomingMessage FINE: RequestId=dummyLoginName:1203708962442000000: return value arrived ... Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.protocol.RequestReplyExecutor requestAndBlockForReply FINE: Waking up, got response for publish(requestId=dummyLoginName:1203708962442000000) Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.protocol.RequestReplyExecutor requestAndBlockForReply FINEST: Response for publish(dummyLoginName:1203708962442000000) is: errorCode=user.security.authentication.accessDenied message=#exported Your secretSessionId is invalid, no access to spiderman_test. Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchConnectionsHandler removeDispatchConnection FINER: connection:client/ejb_test1203703214006: removeDispatchConnection(ClientDispatchConnection-connection:client/ejb_test1203703214006) ... Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchConnection shutdown FINER: DispatchConnection-connection:client/ejb_test1203703214006 Entering shutdown ... Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.protocol.socket.SocketConnection shutdown FINER: Entering shutdown of callback server Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.protocol.socket.SocketCallbackImpl shutdownSocket FINE: Entering shutdownSocket() Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.protocol.socket.SocketConnection shutdown FINE: InputStream.close(): java.net.SocketException: Socket is closed Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.protocol.socket.SocketConnection shutdown FINE: OutputStream.close(): java.net.SocketException: Socket is closed Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchConnectionsHandler removeDispatchConnection FINE: connection:client/ejb_test1203703214006: Destroyed one callback connection, 0 remain. Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchConnectionsHandler updateState FINE: connection:client/ejb_test1203703214006: updateState() oldState=ALIVE conList.size=0 Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchManager shutdownFomAnyState FINER: connection:client/ejb_test1203703214006: Switch from ALIVE to DEAD Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.XmlBlasterAccess toDead FINER: client/ejb_test/-42: Changed from connection state ALIVE to DEAD connectInProgress=false Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchManager givingUpDelivery FINE: connection:client/ejb_test1203703214006: Entering givingUpDelivery(), state is DEAD Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.ClientErrorHandler handleError FINER: Entering handleError for 0 messages Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.protocol.socket.SocketCallbackImpl run FINE: Terminating socket callback thread Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchManager shutdown FINER: connection:client/ejb_test1203703214006: Entering shutdown ... Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchConnectionsHandler shutdown FINER: connection:client/ejb_test1203703214006: Entering shutdown ... Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchManager handleSyncWorkerException FINER: connection:client/ejb_test1203703214006: Sync delivery failed connection state is DEAD: errorCode=communication.noConnection.dead message=#exported Your secretSessionId is invalid, no access to spiderman_test. : O riginal erroCode=user.security.authentication.accessDenied Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchManager checkSending FINE: connection:client/ejb_test1203703214006: The dispatcher is shutdown, can't activate callback worker thread <DispatchManager id='connection:client/ejb_test1203703214006' numEntries='0' isShutdown='true'> <DispatchConnectionsHandler state='DEAD'> <noDispatchConnection/> </DispatchConnectionsHandler> <dispatchWorkerIsActive>false</dispatchWorkerIsActive> </DispatchManager> Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchManager switchToASyncMode INFO: connection:client/ejb_test1203703214006: Switched to asynchronous message delivery Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.dispatch.ClientDispatchConnectionsHandler createFakedReturnObjects FINER: Entering createFakedReturnObjects() for 1 entries Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.dispatch.ClientDispatchConnectionsHandler createFakedReturnObjects FINE: Creating faked return for 'publish' invocation Feb 22, 2008 2:36:02 PM org.xmlBlaster.util.dispatch.DispatchManager handleSyncWorkerException FINE: connection:client/ejb_test1203703214006: Delivery failed, pushed 1 entries into tail back queue Feb 22, 2008 2:36:02 PM org.xmlBlaster.client.XmlBlasterAccess queueMessage FINE: client/ejb_test/-42: Forwarded one 'publish' message, current state is DEAD Feb 22, 2008 2:36:59 PM org.xmlBlaster.util.dispatch.DispatchConnection finalize FINE: DispatchConnection-connection:client/ejb_test1203703214006 finalize - garbage collected Feb 22, 2008 2:36:59 PM org.xmlBlaster.util.queuemsg.MsgQueueEntry finalize FINE: finalize - garbage collect At this point, the client is still running, but it never reconnects back to the server, regardless of how many publish() calls are made - the messages are effectively lost in the client-side queue now. Is this a bug, or a configuration issue or is there some method I should be calling to 'kick' the connection back up and allow the queued messages to get published to the server?
-- Marcel Ruff http://www.xmlBlaster.org http://watchee.net Phone: +49 7551 309371