Agentpublic interface Agent This interface exposes the call flow agent API.
This is intended to be called by various container trap points. An
implementation of the call flow agent would collect the data supplied, and
persist it, for later querying and analysis.
Further, it is possible to set filters, based on client side attributes
such as caller IP address and caller security principal (USER).
The trap point call sequence has a specific order:
{
requestStart, addRequestInfo*, requestInfoComplete,
(startTime, (webMethodStart|ejbMethodStart))*,
((ejbMethodEnd|webMethodEnd), endTime)*,
requestEnd
}
Data schema: Tables
RequestStart: { RequestId, Timestamp, CallerIPAddress, RemoteUser }
RequestEnd : { RequestId, Timestamp }
StartTime : { RequestId, TimeStamp, ContainerTypeOrApplicationType }
EndTime : { RequestId, TimeStamp, ContainerTypeOrApplicationType }
MethodStart : { MethodName, RequestId, Timestamp, ComponentType, ThreadId,
AppId, ModuleId, ComponentId, TransactionId, SecurityId }
MethodEnd : { RequestId, Timestamp, Exception } |
Methods Summary |
---|
public void | addRequestInfo(RequestInfo requestInfo, java.lang.String value)This method may be called by the container during request dispatch,
to add request information such as caller IP address, and remote
user name. This method is not required to be called by the container.
This method may be called many times by the container, but only before
startTime is called.
| public void | clearData()Clear all accumulated data collected in the previous CallFlow runs
from the database. This is only called from AMX APIs.
| public boolean | deleteRequestIds(java.lang.String[] requestIds)Delete request ids from the database
| public void | ejbMethodEnd(CallFlowInfo info)This method is called by a request processor thread, after invoking a
business method on a target EJB. This trap point gathers information
about the outcome of the invocation such as exception, if any.
| public void | ejbMethodStart(CallFlowInfo info)This method is called by a request processor thread, before invoking a
business method on a target EJB. This trap point must be called after
the transaction and security context for the invocation has been
established.
This trap point collects information about the target EJB invocation.
| public void | endTime()This method is called by a request processor thread, when the thread
of execution transitions out of the container code. That is,
this method is called from a method postInvoke point, after the
container has completed all method call related cleanup activity.
| public void | entityManagerMethodEnd()This method is called the persistence container on a request processor
thread, after invoking a method on the
| public void | entityManagerMethodStart(EntityManagerMethod entityManagerMethod)This method is called the persistence container on a request processor
thread, before invoking a method on the
| public void | entityManagerQueryEnd()This method is called the persistence container on a request processor
thread, after invoking a method on the
| public void | entityManagerQueryStart(EntityManagerQueryMethod queryMethod)This method is called the persistence container on a request processor
thread, before invoking a method on the
| public java.util.List | getCallStackForRequest(java.lang.String requestId)
| public java.lang.String | getCallerIPFilter()Gets the IP address of the client, only for which, call flow
information would be collected.
| public java.lang.String | getCallerPrincipalFilter()Gets the caller principal, only for which, call flow information
would be collected.
| public java.util.Map | getPieInformation(java.lang.String requestID)
| public java.util.List | getRequestInformation()
| public ThreadLocalData | getThreadLocalData()
| public boolean | isEnabled()Get enabled information of call flow's persistent logging. Only user of
this API is Web Services Managament. Please check with author before
using this API.
| public void | registerListener(Listener listener)Register a listener.
Registered listeners are notified during the following call trap points:
{ requestStart, requestEnd, methodStart, methodEnd }.
| public void | requestEnd()This method is called by a request processor thread, after completion
of request processing. Upon being called, this method releases the
thread local state.
| public void | requestStart(RequestType requestType)This method is called by a request processor thread, dispatched by the
container to process a new request on behalf of a client, before any
request processing activity begins.
Allowed request types are:
1. Remote HTTP Web request.
2. Remote EJB request.
3. MDB request.
4. Timer EJB.
Upon being called, this method allocates a unique request id, and
associates it with the thread local state.
| public void | setCallerIPFilter(java.lang.String ipAddress)Specifies the IP address of the client, only for which, call flow
information would be collected. That is, call flow information is
gathered, only for calls originating from the client IP address.
Others calls are ignored.
Note, there may be other filters that may be further applied to narrow
the scope of call flow data collection.
| public void | setCallerPrincipalFilter(java.lang.String callerPrincipal)Specifies the caller principal, only for which, call flow information
would be collected. That is, call flow information is gathered, only for
calls originating from the caller principal. Others calls are ignored.
Note, there may be other filters that may be further applied to narrow
the scope of call flow data collection.
| public void | setEnable(boolean enable)Enable or disable call flow. This is typically called from AMX MBean.
| public void | startTime(ContainerTypeOrApplicationType type)This method is called by a request processor thread, when the thread
of execution transitions into the container code. That is,
this method is called from a method preInvoke point, before the
container begins method call setup activity.
| public void | unregisterListener(Listener listener)Unregister a listener.
| public void | webMethodEnd(java.lang.Throwable exception)This method is called by a request processor thread, after invoking a
target method on a filter or servlet. This trap point gathers information
on the outcome of the invocation such as exception, if any.
| public void | webMethodStart(java.lang.String methodName, java.lang.String applicationName, java.lang.String moduleName, java.lang.String componentName, ComponentType componentType, java.lang.String callerPrincipal)This method is called by a request processor thread, before invoking a
target method on a filter or servlet. This trap point must be called
after the invocation context for the invocation is established.
This trap point collects information such as method name, component
name, component type, application name, module name, callerPrincipal.
|
|