[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[xmlblaster] RE: client not responding to sever pings??
Hi All,
Ignore the spam. I was compiling with an older version.
All the best
Martin
>-----Original Message-----
>From: Martin Johnson [mailto:mjohnson at quickcut.com.au]
>Sent: Saturday, June 25, 2005 9:04 AM
>To: xmlblaster at server.xmlblaster.org
>Subject: client not responding to sever pings??
>
>
>Hi All,
>
>
>I'm trying to work through a troublesome networking evironment. Since
>logging is so verbose I have selectivly enabled in critical areas that
>I wish to trace for and have recompiled.
>
>Now having done so the client is no longer responding to server pings.
>Though pre built versions do so. Stepping through the code I can see
>why my build is not. Please see below.
>
>try { // Executor
> super.initialize(this.sockCon.getGlobal(),
>this.callbackAddress, sock, null);
> }
>
>The snippet above is from SocketCallbackImpl the clue is last
>parameter being a null.
>The snippet below is from Executor it is the code that runs when the
>client recv's a PING request for the server. The clue here is
>xmlBlasterImpl this is set to null by the
>above snippet. Therefore the response to the server ping is never
>excuted. Where/How does the client respond to the server pings. As far
>as I can see this is the only place that initializes the
>xmlBlasterImpl member var.
>
>else if (MethodName.PING == receiver.getMethodName()) {
> MsgUnitRaw[] arr = receiver.getMessageArr();
> if (this.cbClient == null && !glob.isServerSide()) {
> XmlBlasterException xmlBlasterException = new
>XmlBlasterException(glob,
>ErrorCode.COMMUNICATION_NOCONNECTION_CALLBACKSERVER_NOTAVAILABLE,
>ME, "No SOCKET callback driver is available, can't process the
>remote invocation.");
> executeException(receiver, xmlBlasterException);
> return true;
> }
> if (xmlBlasterImpl != null) { <<<<< how does it
>respond to ping.
> String response =
>
>xmlBlasterImpl.ping(/*receiver.getSecretSessionId(),*/
>(arr.length>0)? arr[0].getQos() : "<qos/>");
> executeResponse(receiver, response);
>//Constants.RET_OK="<qos><state id='OK'/></qos>" or current run level
> }
> }
>
>
>WorkerThread t = new WorkerThread(glob, this, receiver); runs whenever
>a recv.isInvoke detected.
>
>XmlBlaster rocks.
>
>Regards
>
>Martin