/** * Return the current WorkerThread ID associated with this instance. */ public long getWorkerThreadID(){ return request.getRequestProcessor().getWorkerThreadID(); }
/** * Return the current WorkerThread ID associated with this instance. */ public long getWorkerThreadID(){ return request.getRequestProcessor().getWorkerThreadID(); }
/** * Unregisters the MBean corresponding to this * {@link ProcessorTask}. */ protected void unregisterMonitoring() { if ( selectorThread.getManagement() == null ) return; requestInfo = request.getRequestProcessor(); /* * Remove 'requestInfo' from 'requestGroupInfo'. * This will also update 'requestGroupInfo' with the current stats * of 'requestInfo', which is why we need to reset 'requestInfo' so * its current stats will not be considered when it is added back to * 'requestGroupInfo' next time registerMonitoring() is called. */ requestInfo.setGlobalProcessor(null); requestInfo.reset(); if (oname != null) { try { selectorThread.getManagement().unregisterComponent(oname); } catch (Exception ex) { if (logger.isLoggable(Level.WARNING)) { logger.log(Level.WARNING, LogMessages.WARNING_GRIZZLY_HTTP_PROCESSOR_TASK_REQUEST_DE_REGISTRATION_ERROR(), ex); } } } hasRequestInfoRegistered = false; }
/** * Register a new <code>RequestProcessor</code> instance. */ private void registerMonitoring(){ requestInfo = request.getRequestProcessor(); // Add RequestInfo to RequestGroupInfo requestInfo.setGlobalProcessor(selectorThread.getRequestGroupInfo()); hasRequestInfoRegistered = true; if ( selectorThread.getManagement() == null ) return; try { oname = new ObjectName(selectorThread.getDomain() + ":type=RequestProcessor,worker=http" + selectorThread.getPort() + ",name=HttpRequest" + requestCount++ ); selectorThread.getManagement(). registerComponent(requestInfo, oname,null); } catch(Exception ex) { if (logger.isLoggable(Level.WARNING)) { logger.log(Level.WARNING, LogMessages.WARNING_GRIZZLY_HTTP_PROCESSOR_TASK_REQUEST_REGISTRATION_ERROR(), ex); } } }
/** * Unregisters the MBean corresponding to this * {@link ProcessorTask}. */ protected void unregisterMonitoring() { if ( selectorThread.getManagement() == null ) return; requestInfo = request.getRequestProcessor(); /* * Remove 'requestInfo' from 'requestGroupInfo'. * This will also update 'requestGroupInfo' with the current stats * of 'requestInfo', which is why we need to reset 'requestInfo' so * its current stats will not be considered when it is added back to * 'requestGroupInfo' next time registerMonitoring() is called. */ requestInfo.setGlobalProcessor(null); requestInfo.reset(); if (oname != null) { try { selectorThread.getManagement().unregisterComponent(oname); } catch (Exception ex) { logger.log(Level.WARNING, sm.getString("processorTask.errorUnregisteringRequest"), ex); } } hasRequestInfoRegistered = false; }
/** * Post process the http request, after the response has been * commited. */ public void postProcess(InputStream input, OutputStream output) throws Exception { if (!recycle){ started = false; inputBuffer = null; outputBuffer = null; response = null; if (isMonitoringEnabled()) { request.getRequestProcessor().setWorkerThreadID(0); } request = null; } else { inputBuffer.recycle(); outputBuffer.recycle(); } // Recycle ssl info sslSupport = null; if (error){ keepAlive = false; connectionHeaderValueSet = false; } }
/** * Prepare this object before parsing the request. */ protected void configPreProcess() throws Exception { if(selectorThread.isMonitoringEnabled() && !hasRequestInfoRegistered ) { registerMonitoring(); } else if (!selectorThread.isMonitoringEnabled() && hasRequestInfoRegistered) { unregisterMonitoring(); } if (selectorThread.isMonitoringEnabled()) { requestInfo = request.getRequestProcessor(); requestInfo.setWorkerThreadID(Thread.currentThread().getId()); } if (request.getServerPort() == 0) { request.setServerPort(selectorThread.getPort()); } }
/** * Register a new <code>RequestProcessor</code> instance. */ private void registerMonitoring(){ if ( selectorThread.getManagement() == null ) return; requestInfo = request.getRequestProcessor(); // Add RequestInfo to RequestGroupInfo requestInfo.setGlobalProcessor(getRequestGroupInfo()); try { oname = new ObjectName(selectorThread.getDomain() + ":type=RequestProcessor,worker=http" + selectorThread.getPort() + ",name=HttpRequest" + requestCount++ ); selectorThread.getManagement(). registerComponent(requestInfo, oname,null); } catch( Exception ex ) { logger.log(Level.WARNING, sm.getString("processorTask.errorRegisteringRequest"), ex); } hasRequestInfoRegistered = true; }
request.getRequestProcessor().setRequestCompletionTime(0);
request.getRequestProcessor().setRequestCompletionTime(0);
requestInfo = request.getRequestProcessor(); requestInfo.setWorkerThreadID(Thread.currentThread().getId());