Example: Framework stats for server
asadmin display-jbi-statistics --framework
server framework statistics
------------------------------
Framework Uptime: 6 hours
Framework Startup time: 100 ms
Example: Framework stats for standalone instance instance1
asadmin display-jbi-statistics --framework --target=instance1
instance1 framework statistics
------------------------------
Framework Uptime: 6 hours
Framework Startup time: 100 ms
Example: Framework stats for a cluster with two instances
asadmin display-jbi-statistics --framework --target=cluster1
cluster1-inst1 framework statistics
-----------------------------------
Framework Uptime: 6 hours
Framework Startup time: 100 ms
cluster1-inst2 framework statistics
-----------------------------------
Framework Uptime: 6 hours
Framework Startup time: 100 ms
Example: NMR statistics for server
asadmin display-jbi-statistics --nmr
NMR Statistics for server
-------------------------
No. of active channels: 3
sun-http-binding
sun-bpel-engine
sun-javaee-engine
No. of active endpoints: 3
http://localhost/SynchronousSample,service1,endpoint1
http://localhost/New,service1,endpoint2
http://localhost/Old,service1,endpoint3
Example: NMR Statistics for instance1
asadmin display-jbi-statistics --nmr --target=instance1
NMR Statistics for instance1
----------------------------
No. of active channels: 3
sun-http-binding
sun-bpel-engine
sun-javaee-engine
No. of active endpoints: 3
http://localhost/SynchronousSample,service1,endpoint1
http://localhost/New,service1,endpoint2
http://localhost/Old,service1,endpoint3
Example: NMR Statistics for cluster with two instances
asadmin display-jbi-statistics --nmr --target=cluster1
NMR Statistics for cluster1-inst1
---------------------------------
No. of active channels: 3
sun-http-binding
sun-bpel-engine
sun-javaee-engine
No. of active endpoints: 3
http://localhost/SynchronousSample,service1,endpoint1
http://localhost/New,service1,endpoint2
http://localhost/Old,service1,endpoint3
NMR Statistics for cluster1-inst2
---------------------------------
No. of active channels: 3
sun-http-binding
sun-bpel-engine
sun-javaee-engine
No. of active endpoints: 3
http://localhost/SynchronousSample,service1,endpoint1
http://localhost/New,service1,endpoint2
http://localhost/Old,service1,endpoint3
Examples:
asadmin display-jbi-statistics --component sun-iep-engine
sun-iep-engine statistics in server
-----------------------------------
Component Up time : 1 hour
No. of activated endpoints: 10
No. of received requests: 5
No. of sent requests: 5
No. of received replies: 5
No. of sent replies: 10
No. of received faults: 5
No. of sent faults: 10
No. of received errors: 5
No. of sent errors: 10
No. of received DONE: 5
No. of sent DONE: 10
No. of completed exchanges: 10
No. of active exchanges: 4
No. of error exchanges: 1
Message exchange statistics:
Avg. response time : 20 ns
Avg. time spent in sun-http-binding: 10 ns
Avg. time spent in Delivery Channel: 10 ns
Avg. time spent in Message Service : 10 ns
Component extension statistics
ReceivedRequest : 10
Sent Request : 10
Custom Field 1 : 1000
Custom Field 2 : 2000
List of consuming endpoints:
http://localhost/SynchronousSample,service1,endpoint1
http://localhost/SynchronousSample,service1,endpoint2
List of provisioning endpoints:
http://localhost/SynchronousSample,service1,endpoint3
Note:
Output for target 'server' will be similar to the list above.
Output for target 'cluster' will have a list for each instance in the cluster.
Example: example for consuming endpoint statistics
asadmin display-jbi-statistics --endpoint http://localhost/SynchronousSample,service1,endpoint1
http://localhost/SynchronousSample,service1,endpoint1 statistics
----------------------------------------------------------------
No. of sent requests: 5
No. of received replies: 5
No. of received faults: 5
No. of sent faults: 10
No. of received DONE: 5
No. of sent DONE: 10
No. of received ERRORs: 5
No. of sent ERRORs: 10
Message Exchange Statistics:
Avg. Status Time (ns) : 10
Avg. Component Time (ns) : 10
Avg. DeliveryChannel Time (ns): 10
Avg. MessageService Time (ns) : 10
Performance instrumentation Data:
Median time (ns): 10
First time (ns) : 15
Sub topic : Denormalization
Example: example for providing endpoint statistics
asadmin display-jbi-statistics --endpoint http://localhost/SynchronousSample,service1,endpoint1
http://localhost/SynchronousSample,service1,endpoint1 statistics
----------------------------------------------------------------
Activation Time : 100 ms
UpTime : 200 ms
No. of active exchanges : 5
No. of received requests : 5
No. of sent replies : 5
No. of received faults : 5
No. of sent faults : 10
No. of received DONE : 5
No. of sent DONE : 10
No. of received ERRORs : 5
No. of sent ERRORs : 10
Message Exchange Statistics:
Avg. Response Time (ns) : 10
Avg. time spent in sun-bpel-engine : 10
Avg. DeliveryChannel Time (ns) : 10
Avg. MessageService Time (ns) : 10
Performance instrumentation Data:
Median time (ns): 10
First time (ns) : 15
Note:
Output for target 'server' will be similar to the list above.
Output for target 'cluster' will have a list for each instance in the cluster.
Example: example for Service Assembly statistics
asadmin list-jbi-statistics --serviceassembly CompositeApp1
CompositeApp1 statistics in server
----------------------------------
Service Assembly UpTime : 2 hours
Last startup time : 9 Dec. 2007 11.00 AM
Avg. Startup Time : 200 ms
Avg. Stop Time: 100 ms
Avg. Shutdown Time: N/A
CompositeApp1-SU1 Statistics
----------------------------
Avg. Startup Time : 200 ms
Avg. Stop Time: 100 ms
Avg. Shutdown Time: N/A
CompositeApp1-Su2 Statistics
----------------------------
Avg. Startup Time : 200 ms
Avg. Stop Time: 100 ms
Avg. Shutdown Time: N/A
Note:
Output for target 'server' will be similar to the list above.
Output for target 'cluster' will have a list for each instance in the cluster.
JBIStatiticsMBeanImpl
public class JBIStatisticsMBeanImpl
extends AbstractUIMBeanImpl
implements JBIStatisticsMBean
{
/**
* This method is used to provide JBIFramework statistics in the
* given target.
* @param target target name.
* @returns TabularData table of framework statistics in the given target.
*
* If the target is a standalone instance the table will have one entry.
* If the target is a cluster the table will have an entry for each instance.
*
* Each entry in this tabular data is of the following composite type
*
* String - "InstanceName",
* Long - "StartupTime",
* Long - "UpTime"
*/
public TabularData getFrameworkStats(String targetName)
throws JBIRemoteException
{
}
/**
* This method is used to provide statistics for the given component
* in the given target
* @param targetName target name
* @param componentName component name
* @returns TabularData table of component statistics
*
* If the target is a standalone instance the table will have one entry.
* If the target is a cluster the table will have an entry for each instance.
*
* Each entry in this tabular data is of the following composite type
*
*
* SimpleType.STRING - "InstanceName",
* SimpleType.LONG - "ComponentUpTime",
* SimpleType.LONG - "NumActivatedEndpoints",
* SimpleType.LONG - "NumReceivedRequests",
* SimpleType.LONG - "NumSentRequests",
* SimpleType.LONG - "NumReceivedReplies",
* SimpleType.LONG - "NumSentReplies",
* SimpleType.LONG - "NumReceivedDONEs",
* SimpleType.LONG - "NumSentDONEs",
* SimpleType.LONG - "NumReceivedFaults",
* SimpleType.LONG - "NumSentFaults",
* SimpleType.LONG - "NumReceivedErrors",
* SimpleType.LONG - "NumSentErrors",
* SimpleType.LONG - "NumCompletedExchanges",
* SimpleType.LONG - "NumActiveExchanges",
* SimpleType.LONG - "NumErrorExchanges",
* SimpleType.LONG - "ME-ResponseTime-Avg",
* SimpleType.LONG - "ME-ComponentTime-Avg",
* SimpleType.LONG - "ME-DeliveryChannelTime-Avg",
* SimpleType.LONG - "ME-MessageServiceTime-Avg",
* CompositeType - "ComponentExtensionStats"
*
*/
public TabularData getComponentStats(String componentName, String targetName)
throws JBIRemoteException
{
}
/**
* This method is used to provide statistic information about the given
* endpoint in the given target
* @param targetName target name
* @param endpointName the endpoint Name
* @return TabularData table of endpoint statistics
*
* If the target is a standalone instance the table will have one entry.
* If the target is a cluster the table will have an entry for each instance.
*
* Each entry in this tabular data is of the following composite type
*
* A providing endpoint will have
*
* SimpleType.STRING - "InstanceName"
* SimpleType.LONG - "ActivationTime"
* SimpleType.LONG - "UpTime"
* SimpleType.LONG - "NumActiveExchanges"
* SimpleType.LONG - "NumReceivedRequests"
* SimpleType.LONG - "NumSentReplies"
* SimpleType.LONG - "NumReceivedDONEs"
* SimpleType.LONG - "NumSentDONEs"
* SimpleType.LONG - "NumReceivedFaults"
* SimpleType.LONG - "NumSentFaults"
* SimpleType.LONG - "NumReceivedErrors"
* SimpleType.LONG - "NumSentErrors"
* SimpleType.STRING - "ComponentName"
* SimpleType.LONG - "ME-ResponseTime-Avg" //time in ns
* SimpleType.LONG - "ME-ComponentTime-Avg" //time in ns
* SimpleType.LONG - "ME-DeliveryChannelTime-Avg" //time in ns
* SimpleType.LONG - "ME-MessageServiceTime-Avg" //time in ns
* TabularType - "PerformanceMeasurements" //OJC Components only
*
* A consuming endpoint will have
*
* SimpleType.STRING - "InstanceName"
* SimpleType.LONG - "NumSentRequests"
* SimpleType.LONG - "NumReceivedReplies"
* SimpleType.LONG - "NumReceivedDONEs"
* SimpleType.LONG - "NumSentDONEs"
* SimpleType.LONG - "NumReceivedFaults"
* SimpleType.LONG - "NumSentFaults"
* SimpleType.LONG - "NumReceivedErrors"
* SimpleType.LONG - "NumSentErrors"
* SimpleType.LONG - "ME-StatusTime-Avg" //time in ns
* SimpleType.LONG - "ME-ComponentTime-Avg" //time in ns
* SimpleType.LONG - "ME-DeliveryChannelTime-Avg" //time in ns
* SimpleType.LONG - "ME-MessageServiceTime-Avg" //time in ns
* TabularType - "PerformanceMeasurements" //OJC Components only
*/
public TabularData getEndpointStats(String endpointName, String targetName)
throws JBIRemoteException
{
}
/**
* This method is used to provide statistics about the message service in the
* given target.
* @param target target name.
* @returns TabularData table of NMR statistics in the given target.
*
* If the target is a standalone instance the table will have one entry.
* If the target is a cluster the table will have an entry for each instance.
*
* Each entry in this tabular data is of the following composite type
*
* String - "InstanceName",
* String[] - "ListActiveChannels",
* String[] - "ListActiveEndpoints"
*/
public TabularData getNMRStats(String targetName)
throws JBIRemoteException
{
}
/**
* This method is used to provide statistics about a Service Assembly
* in the given target.
* @param target target name.
* @param saName the service assembly name.
* @returns TabularData table of NMR statistics in the given target.
*
* If the target is a standalone instance the table will have one entry.
* If the target is a cluster the table will have an entry for each instance.
*
* Each entry in this tabular data is of the following composite type
*
* String - "SAName",
* Long - "SAStartTime",
* Long - "SAStopTime",
* Long - "SAShutdownTime",
* CompositeData[] - "SUTimes"
*
* Each entry in SUTimes would be of the following type
*
* String - "SUName"
* Long - "SUStartTime"
* Long - "SUStopTime"
* Long - "SUShutdownTime"
*/
public TabularData getServiceAssemblyStats(String saName, String targetName)
throws JBIRemoteException
{
//1.lookup frameworkMBean -> com.sun.jbi:JbiName=instanceName,ServiceName=Framework,
//ControlType=Statistics,ComponentType=System
// saStats = frameworkMBean.getSAStats(saName)
//2. InstanceName -> instanceName
// SAName -> saStats.getvalue("SAName")
// SAStartTime -> saStats.getValue("SAStartTime")
// SAStopTime -> saStats.getValue("SAStopTime")
// SAShutdownTime -> saStats.getValue("SAShutdownTime")
// SUTimes -> saStats.getValue("SUTimes");
}
Use Cases
These are the interface level user cases.
Actor Inventory
- Administrator โ this is the administrative user using asant, asadmin, or the admin console
- JBI runtime โ the entire JBI runtime including the common client code used by the admin clients (asant, asadmin, admin console)
- Installed JBI component โ a JBI Binding Component or Service Engine installed in the JBI runtime
| Use Case Name |
| JBIStats01 |
| Description |
| Successful listing of JBI Framework Statistics |
| Actors |
| Administrator, JBI Runtime |
| Preconditions & Assumptions |
| JBI Framework is up and running. |
| Basic Flow: User Action |
| Administrator initiates query to get the framework statistics through either asant, asadmin, or admin console |
| asant list-statistics --type=framework |
| asadmin list-jbi-statistics --framework |
| Basic Flow: System Action |
| JBI runtime queries the framework MBeans and collects required statistics. Expected outputs for different targets are listed in "Framework" tab. |
| Post Conditions |
| No change in the runtime state. |
| JBIStats02 |
| Description |
| Successful listing of NMR Statistics |
| Actors |
| Administrator, JBI Runtime |
| Preconditions & Assumptions |
| JBI Framework is up and running, some components are installed, SAs are deployed, endpoints are created and messages are exchanged between components |
| Basic Flow: User Action |
| Administrator initiates query to get the nmr statistics through either asant, asadmin, or admin console. |
| asant list-statistics --type=nmr |
| asadmin list-jbi-statistics --nmr |
| Basic Flow: System Action |
| JBI runtime queries the MessageService MBeans and collects required statistics. NMR reports all active delivery channels and active endpoints. For every started component there is a delivery channel. Expected outputs for different targets are listed in "NMR" tab. |
| Post Conditions |
| No change in the runtime state. |
| JBIStats03 |
| Description |
| Successful listing of component statistics |
| Actors |
| Administrator, JBI Runtime, Installed Component |
| Preconditions & Assumptions |
| JBI Framework is up and running, some components are installed, SAs are deployed, endpoints are created and messages are exchanged between components, MessageService's timing statistics collection is enabled |
| Basic Flow: User Action |
| Administrator enables timing statistics in MessageService as "asadmin set-jbi-runtime-configuration msgSvcTimingStatisticsEnabled=true" Administrator initiates query to get the nmr statistics through either asant, asadmin, or admin console. |
| asant list-statistics --type=component -Djbi.component.name=sun-http-binding |
| asadmin list-jbi-statistics --component sun-http-binding |
| Basic Flow: System Action |
| JBI runtime queries the Framework Component MBeans, MessageService MBeans and Custom Component MBeans and collects statistics. In addition to the standard statistics recorded by the framework and message service, any attribute in the component's custom statistics MBean is collected. Components can register custom extension MBeans to provide component specific statistics. Expected outputs for different targets are listed in "Component" tab. |
| Alternate Flow |
| If the component is not running, an exception is thrown. |
| Post Conditions |
| No change in the runtime state. |
| JBIStats04 |
| Description |
| Successful listing of endpoint statistics |
| Actors |
| Administrator, JBI Runtime, Installed Component |
| Preconditions & Assumptions |
| JBI Framework is up and running, some components are installed, SAs are deployed, endpoints are created and messages are exchanged between components, MessageService's timing statistics collection is enabled. |
| Basic Flow: User Action |
| Administrator enables timing statistics in MessageService as "asadmin set-jbi-runtime-configuration msgSvcTimingStatisticsEnabled=true" Administrator initiates query to get the nmr statistics through either asant, asadmin, or admin console. |
| asant list-statistics --type=endpoint -Djbi.endpoint.name="http://ping,PingService,PingPort" |
| asadmin list-jbi-statistics --endpoint "http://ping,PingService,PingPort" |
| Basic Flow: System Action |
| JBI runtime queries the MessageService MBean and Custom Component MBeans and collects statistics. In addition to the standard statistics recorded by the message service, for OJC components, getPerformanceInstrumentationMeasurement() method in the component's custom statistics MBean is invoked to get the hulp statistics. Expected outputs for different targets are listed in "Endpoint" tab. Depending upon the endpoint type, provisioning or consuming endpoint, the statistics fields presented may be different. |
| Alternate Flow |
| If the given endpoint is not active, an exception is thrown. |
| Post Conditions |
| No change in the runtime state. |
| JBIStats05 |
| Description |
| Successful listing of Service Assembly Statistics |
| Actors |
| Administrator, JBI Runtime, Installed Component |
| Preconditions & Assumptions |
| JBI Framework is up and running, some components are installed, SAs are deployed. |
| Basic Flow: User Action |
| Administrator initiates query to get the SA statistics through either asant, asadmin, or admin console. |
| asant list-statistics --type=serviceassembly -Djbi.service.assembly.name=CompositeApp1 |
| asadmin list-jbi-statistics --serviceassembly CompositeApp1 |
| Basic Flow: System Action |
| JBI runtime queries the DeploymentService and collects statistics. Expected output for different targets is shown in the ServiceAssembly tab. |
| Alternate Flow |
| If the given service assembly is not deployed, an exception is thrown. |
| Post Conditions |
| No change in the runtime state. |
| JBIStats05 |
| Description |
| Successful listing of all statistics available for an instance |
| Actors |
| Administrator, JBI Runtime, Installed Component |
| Preconditions & Assumptions |
| JBI Framework is up and running, some components are installed, SAs are deployed, endpoints are created and messages are exchanged between components, MessageService's timing statistics collection is enabled. |
| Basic Flow: User Action |
| Administrator enables timing statistics in MessageService as "asadmin set-jbi-runtime-configuration msgSvcTimingStatisticsEnabled=true". Administrator initiates query to get the nmr statistics through either asant, asadmin, or admin console. |
| asant list-statistics --type=all |
| asadmin list-jbi-statistics --all |
| Basic Flow: System Action |
| The clients collect the framework statistics, nmr statistics, component statistics for all available components, endpoint statistics for all available endpoints and SA statistics for all available SAs. |
| Post Conditions |
| No change in the runtime state. |
1)By default timing statistics collection in message exchanges is disabled.
2)This behavior is configurable using the configuration property msgSvcTimingStatisticsEnabled.
3)Example to enable timing statistics collection
asadmin set-jbi-runtime-configuration msgSvcTimingStatisticsEnabled="true"
Additional statistics available in Component Statistics
"MessageExchangeResponseTime Avg (ns)"
"MessageExchangeComponentTime Avg (ns)"
"MessageExchangeDeliveryTime Avg (ns)"
"MessageExchangeNMRTime Avg (ns)"
Additional statistics available in ConsumingEndpoint Statistics
"MessageExchangeStatusTime Avg (ns)"
"MessageExchangeComponentTime Avg (ns)"
"MessageExchangeDeliveryTime Avg (ns)"
"MessageExchangeNMRTime Avg (ns)"
Additional statistics available in ProvidingEndpoint Statistics
"MessageExchangeResponseTime Avg (ns)"
"MessageExchangeComponentTime Avg (ns)"
"MessageExchangeDeliveryTime Avg (ns)"
"MessageExchangeNMRTime Avg (ns)"