Map<String, Object> callProps = new HashMap<String, Object>(getRequestContext());
EndpointInfo epInfo = new EndpointInfo(epMetaData, targetAddress, callProps);
if (shouldMaintainSession())
addSessionInfo(reqMessage, callProps);
RemoteConnection remoteConnection = new RemoteConnectionFactory().getRemoteConnection(epInfo);
MessageAbstraction resMessage = remoteConnection.invoke(reqMessage, epInfo, oneway);
if (shouldMaintainSession())
saveSessionInfo(callProps, getRequestContext());
// At pivot the message context might be replaced