protected boolean createPerfLogContextForWSRequest( MessageContext context, SOAPMessage message, PerfLogContextTrackingData perfLogContextTrackingData) { logger.debug("handleRequest - createPerfLogContextForWSRequest"); PerfLogContextHelper.startPerfLogTxnMonitor(perfLogContextTrackingData); // This context is deleted when handling the response in handleMessage() or // in handleFault() method // Note: there may be a chance that the context may not get deleted // However that is ok, because if a new context is created on the same // thread and if it finds a zombie context, it will be deleted next time around // PerfLogContextHelper.pushInfoContext( PerfLogContextConstants.CALLING_JVM_HOST_ID, perfLogContextTrackingData.getCallingJvmHostId()); PerfLogContextHelper.pushInfoContext( PerfLogContextConstants.CALLING_JVM_CLONE_ID, perfLogContextTrackingData.getCallingJvmCloneId()); String tmpValueStr; PerfLogContextHelper.pushInfoContext( ContextHandlerConstants.PROPERTY_NAME_JAXRPC_INBOUND_URL, (tmpValueStr = (String) context.getProperty(ContextHandlerConstants.PROPERTY_NAME_JAXRPC_INBOUND_URL))); PerfLogContextHelper.addToTxnList(tmpValueStr); PerfLogContextHelper.pushInfoContext( ContextHandlerConstants.PROPERTY_NAME_JAXRPC_SOAP_ACTION, (tmpValueStr = (String) context.getProperty(ContextHandlerConstants.PROPERTY_NAME_JAXRPC_SOAP_ACTION))); PerfLogContextHelper.addToTxnList(tmpValueStr); PerfLogContextHelper.setUserId(perfLogContextTrackingData.getUserId()); PerfLogContextHelper.setRequestSessionId( perfLogContextTrackingData.getSessionId()); // calling JVM session id if set addMessagePropertiesToPerfLogContext(context); // add any current filter specific info here.. e.g. from the message // data. return true; }
@Override public boolean handleRequest(MessageContext context) { logger.debug("JaxRpcLogContextServerHandler.handleRequest()"); String soapMessageString = getSOAPMessageString(context); SOAPMessageContext soapContext = (SOAPMessageContext) context; SOAPMessage message = soapContext.getMessage(); PerfLogContextTrackingData perfLogContextTrackingData; perfLogContextTrackingData = retrieveLogContextFromSOAPHeader(context); // create a thread context logger.debug( "JaxRpcLogContextServerHandler: guid = " + perfLogContextTrackingData.getGuid() + " sessionId=" + perfLogContextTrackingData.getSessionId() + " callingJVMHostId=" + perfLogContextTrackingData.getCallingJvmHostId() + " callingJVMCloneId=" + perfLogContextTrackingData.getCallingJvmCloneId() + " callingJVMDepth=" + perfLogContextTrackingData.getCallingJvmDepthStr() + " userId=" + perfLogContextTrackingData.getUserId() + " createTime=" + perfLogContextTrackingData.getCreateTimeInMillisStr()); createPerfLogContextForWSRequest(context, message, perfLogContextTrackingData); if (LoggerProperties.getInstance().isPerfLogWSCacheSOAPMessage()) addSOAPMessageStringToPerfLogContextRequestData("JaxRpcServerSOAPRequest", soapMessageString); // track elapsed time for this web service... context.setProperty( ContextHandlerConstants.PROPERTY_NAME_startTime, new Long(System.currentTimeMillis())); return super.handleRequest(context); }