this.serverPeer.getConnectionManager().
registerConnection(jmsClientVMID, remotingClientSessionID, this);
this.callbackHandler = callbackHandler;
Client callbackClient = callbackHandler.getCallbackClient();
if (callbackClient != null)
{
// TODO not sure if this is the best way to do this, but the callbackClient needs to have
// its "subsystem" set, otherwise remoting cannot find the associated
// ServerInvocationHandler on the callback server
callbackClient.setSubsystem(CallbackManager.JMS_CALLBACK_SUBSYSTEM);
// We explictly set the Marshaller since otherwise remoting tries to resolve the marshaller
// every time which is very slow - see org.jboss.remoting.transport.socket.ProcessInvocation
// This can make a massive difference on performance. We also do this in
// JMSRemotingConnection.setupConnection
callbackClient.setMarshaller(new JMSWireFormat());
callbackClient.setUnMarshaller(new JMSWireFormat());
}
else
{
log.debug("ServerInvokerCallbackHandler callback Client is not available: " +
"must be using pull callbacks");