[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
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