public class AcsORBProfilerImplBase
extends java.lang.Object
If registered with the ORB, this class will collect ORB callbacks and log statistics every 10 seconds,
see checkAndLogStatus().
To get logs for every ORB callback (only available for stdout), use DEBUG_CONFIG_PROPERTYNAME.
| Modifier and Type | Field and Description |
|---|---|
protected int |
connectionPoolUsePercent
Percentage of busy threads in the connection thread pool.
|
static java.lang.String |
DEBUG_CONFIG_PROPERTYNAME
This property can optionally be set to one or more (comma and/or space separated) names of
callback methods as defined in
AcsORBProfiler, whose invocations will then be printed to stdout
in addition to the normal profiling summary statistics that gets logged. |
protected boolean |
debugConnectionThreadPoolSizeChanged
Can be set via
DEBUG_CONFIG_PROPERTYNAME. |
protected boolean |
debugRequestFinished |
protected boolean |
debugRequestQueueSizeChanged |
protected boolean |
debugRequestStarted |
protected boolean |
debugThreadPoolSizeChanged |
protected boolean |
debugUndeliveredRequest |
protected AcsLogger |
logger
Logger passed in the c'tor.
|
| Constructor and Description |
|---|
AcsORBProfilerImplBase(AcsLogger logger) |
| Modifier and Type | Method and Description |
|---|---|
void |
connectionThreadPoolSizeChanged(int idleThreads,
int totalThreads,
int maxThreads) |
protected void |
logStatus(java.lang.String defaultLogMessage,
java.util.logging.Level defaultLogLevel,
int connectionPoolUsePercent,
int undeliveredRequests,
int requestQueueMaxUsePercent,
java.lang.String requestQueueMaxUsePOA)
This method is broken out from
checkAndLogStatus() so that subclasses can change or suppress the log message,
without having to worry about log repeat guard or synchronization. |
void |
requestFinished(int requestId,
java.lang.String poaName,
java.lang.String operation) |
void |
requestQueueSizeChanged(int requestId,
java.lang.String poaName,
int queueSize,
int maxQueueLength)
Only records the maximum queue length and the POA name owning that queue.
|
void |
requestStarted(int requestId,
java.lang.String poaName,
java.lang.String operation) |
void |
threadPoolSizeChanged(java.lang.String poaName,
int idleThreads,
int totalThreads,
int maxThreads) |
void |
undeliveredRequest(int messageSize,
java.lang.String poaName,
java.lang.String operation,
boolean causedByQueueFull) |
public static final java.lang.String DEBUG_CONFIG_PROPERTYNAME
AcsORBProfiler, whose invocations will then be printed to stdout
in addition to the normal profiling summary statistics that gets logged.
Example: -Dalma.acs.profiling.orb.debugLogs='requestFinished,undeliveredRequest requestQueueSizeChanged'"
protected final AcsLogger logger
protected volatile int connectionPoolUsePercent
protected boolean debugConnectionThreadPoolSizeChanged
DEBUG_CONFIG_PROPERTYNAME.
We convert to explicit booleans instead of string-based lookup to improve performance.protected boolean debugUndeliveredRequest
protected boolean debugRequestQueueSizeChanged
protected boolean debugThreadPoolSizeChanged
protected boolean debugRequestStarted
protected boolean debugRequestFinished
public AcsORBProfilerImplBase(AcsLogger logger)
public void connectionThreadPoolSizeChanged(int idleThreads,
int totalThreads,
int maxThreads)
public void undeliveredRequest(int messageSize,
java.lang.String poaName,
java.lang.String operation,
boolean causedByQueueFull)
public void requestQueueSizeChanged(int requestId,
java.lang.String poaName,
int queueSize,
int maxQueueLength)
org.jacorb.orb.acs.AcsORBProfiler#requestQueueSizeChanged(int, java.lang.String, int, int)public void threadPoolSizeChanged(java.lang.String poaName,
int idleThreads,
int totalThreads,
int maxThreads)
public void requestStarted(int requestId,
java.lang.String poaName,
java.lang.String operation)
public void requestFinished(int requestId,
java.lang.String poaName,
java.lang.String operation)
protected void logStatus(java.lang.String defaultLogMessage,
java.util.logging.Level defaultLogLevel,
int connectionPoolUsePercent,
int undeliveredRequests,
int requestQueueMaxUsePercent,
java.lang.String requestQueueMaxUsePOA)
checkAndLogStatus() so that subclasses can change or suppress the log message,
without having to worry about log repeat guard or synchronization.defaultLogMessage - A default log message, that can be used or replaced by another message.defaultLogLevel - A suggested log level.connectionPoolUsePercent - See connectionPoolUsePercent. Can be used to build a custom message.undeliveredRequests - See undeliveredRequests. Can be used to build a custom message.requestQueueMaxUsePercent - See requestQueueMaxUsePercent. Can be used to build a custom message.requestQueueMaxUsePOA - See requestQueueMaxUsePOA. Can be used to build a custom message.