[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xmlblaster] 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
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
SOCKET callback driver is available, can't process the remote invocation.");
               executeException(receiver, xmlBlasterException);
               return true;
            if (xmlBlasterImpl != null) { <<<<<  how does it respond to
               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.