- The heart of the TIBCO ActiveMatrix BusinessWorks is the TIBCO ActiveMatrix BusinessWorks Engine which handles a continuous stream of processes, each with a number of activities, in an operating environment with finite resources.
-Apart from scheduling process instances (jobs), the BusinessWorks engine also performs other functions like data validation, connection management, flow control, job recovery, logging, managing and monitoring services.
- Performance Factors are
-Hardware (CPU, memory and disk resources)
-Java (JVM and JVM Configuration)
-Engine (Number of engines, number of threads, job creators, floe control, job pool)
- Job/Message (Job Size)
-Process Design (sub-processes,inline processes,checkpoints,logging activities)
-Other Software (External software, like relational DB, other TIBCO Software product)
-Process instances created are typically held in memory. However, this may not be the case if the following parameters are set:
-Max Jobs. If the number of process instances in memory have reached the value of Max Jobs, then the process instances created are temporarily held on a disk. These process instances will be moved back into memory when sufficient memory is available.
-Flow Limit. When set, this properrty limits the number of process instances that can be created. If the number of process instances eing created exceeds the value of FlowLimit, the engine suspends the creation of new process instances. However, it continues executing the process instances in memory. The engine resumes creating new process instances when completed process instances count is approximately half the value specified for Flow Limit.
The number of process instances that can be created in memory is also limited by the memory available on the machine and the allocated to the JVM on which the process engine executes.
The process instances in memory are executed by the BusinessWorks engine. The number of process instances that can be executed concurrntly by the engine is limited by the maximum number of threads, specified by property ThreadCount. Threads execute a finite number of tasks or activities uninterrupted and then yield to the next process instance that is ready.
The engine property StepCount determines the number of tasks that are executed by a thread uninterruptedly. However, the exceptions to StepCount occur when the job is blocked or in a transaction. When a job is in a transaction, the thread will not be released even if the StepCount is exceeded. However, if a process instance is waiting or is in a blocked state, it can be [paged out and the freed memory used to process another process instance.
- Activation Limit can be set if a process instance that is blocked should remain in memory till completion. Setting the ActivationLimit affects the engine performance substantially.
- Performace of the BusinessWorks engine is also affected by external factors
-rate of incoming messages.
-network latency
-performance of external applications with whim BW processes communicate
-other OS processes that may be running on the system.
- Characteristics of BusinessWorks Activities. Activities in BusinessWorks can be grouped as blocking and non-blocking, based on how each activity works with threads.
- Blocking Activity. When an activity is waiting for an event or executes the Sleep command, the activity continues to execute on the same thread and affects the performance of the engine.
- Non-blocking activity. When an activity is waiting for an event or executes the Sleep command, a thread switch occurs and the activity continues to execute on its private thread. When the activity is ready again, it is picked up by an engine thread available at that time. These activities do not affect the performance of the engine.
Process starters such as HTTP Receiver, JMS Receiver and activities like WaitFor and Sleep are all non-blocking activities. They listen for incoming events on their private threads. However, activities like JMS Sender and JDBC Query are blocking in nature. These activities execute on the engine and do not work on private threads.
-Memory Considerations.
-Engine parameters.
-Max Jobs. If the number of process instances in memory have reached the value of Max Jobs, then the process instances are temporarily held on a disk. These process instances will be moved back to memory when sufficient memory is available.
-Flow Limit. When the job processing starts lagging, the memory allocated to the job pool is utilized by the new jobs created and can exhaust the job pool. The FlowLimit property can be set to specify the number of jobs that can reside in the job pool. Once the job pool is full, the job creator is suspended and is in a FLOW_CONTROLLED state. The job creator comes out of the FLOW_CONTROLLED state after approximately half the value specified for FlowLimit jobs are executed to completion.
-Activation Limit. Activation Limit can be set if a job that is blocked should remain in memory until completion. Setting the ActivationLimit affects the engine performance substantially.
-JVM Parameters. Every BusinessWorks engine runs in a Java Virtual Machine. As a result, the setting on the JVM influence the engine performance. Java provides some parameters to tune the memory usage and optimize engine performance.
-Heap size. In order to set the heap size for the engine.
-Xms:Minimum amount of memory used
-Xmx:Maximum amount of memory used.
TIBCO BusinessWorks 5.2.0 and higher versions may see an increase in memory footprint and a potential memory sizing issue. This is because TIBCO BusinessWorks 5.2.0 and above point to server JVM, while versions older than TIBCO BW 5.2.0 point to client JVM in the bwengine.tra file. While sizing and tuning the environment consider the following
- The totalmemory used by the JVM (memory footprint) is dependent on the type of JVM used (Server JVM or Client JVM), the JVM version and the JVM vendor.
- A Server JVM occupies a higher memory footprint and may result in higher performance when compared to a Client JVM.
- A Client JVM may have a lower startup time and memory footprint.
- Garbage Collection. The java object, such as a job, occupies memory from the time it is created to the time it is destroyed. Java provides garbage collection, an automated mechanism to clean up objects that still exist but are not longer used.
To retrieve the garbage collection metrics for the BusinessWorks engine, specify the -verbose:gc option when starting the JVM used by the engine.
Java memory parameters can be set by using the java.extended.properties option in the bwengine.tra file.
- Throughput Considerations. Throughput of the BusinessWorks engine is the rate at which the engine can execute and complete processes. The throughput of the engine is determined by factors that can be grouped into engine parameters and HTTP parameters
-Engine parameters
- Thread Count. Specifies the number of process instances (jobs) that can be executed concurrently by BusinessWorks engine. Default is 8. It is recommended to measure the CPU and memory resources under a typical processing load to determine if the default value is suitable for the environment. If the engine has reached a plateau, but the CPU and memory are not fully utilized, increasing the thread count to have a positive effect on the throughput. However, specifying too high value can cause CPU thrashing, or an increase in latency caused by a large number of messages in the queue. Specifying a too low value can cause higher memory use and lower engine throughput as some CPU resources remain unutilized. Each process instance consists of multiple activities that have to be executed in a sequence for the process instance to complete. If one of these activities is a blocking activity the thread that is executing this process instance is idle and resources are under-utilized. This affects engine throughput.
-Step Count. Specifying the parameter Engine.StepCount controls the maximum number of steps executed (unless the job is in a transaction) for a job after which the thread yields to another job ready in the job pool. A low value of StepCount can degrade the engine performance due to frequent thread switches. A high value of StepCount may cause less concurrency in executing jobs and hence, result in an inefficient use of CPU
-HTTP specific parameters
-minProcessors. Specifies the number of threads created when the HTTP server is started. These threads process HTTP requests. Default is 10. Setting a high value can produce a large number of excessive threads and hence block the system resources.
-maxProcessors. Specifies the number of threads that can be created by the HTTP Server to process incoming HTTP requests. Default is 75. Setting a low value results in the following
-limiting the number of threads in the system and therefore limiting the number of requests that can be processed simultaneously.
-reduced memory contention.
-less number of context switches
-increased throughput.
Setting a high value results in the following.
-more number of requests can be processed simultaneously
-degraded throughput for all processes.
-acceptCount. Specifies the maximum number of incoming connection requests that can be accepted when all HTTP processors are in use. Incoming requests received after the acceptCount limit is reached are rejected. Default is 100. When maxProcessors value is low, acceptValue can be a higher value so that more client requests are accepted and queued, rather than being rejected.
-Enable DNS Lookups. Checking this field enables a Domain Name System (DNS) lookup for HTTP clients so that the IP address is resolved to a DNS name. Setting this property adds latency to every request because it requires the DNS lookup to complete before the request can be completed. Since throughput is adversely affected, this field should be set only when required.
- Processor Affinity. On a multi-CPU machine, process(es) can be configured to run only on a dedicated set of CPUs using processor affinity. Processor affinity takes advantage of the fact that some remnants of process may remain in one processor’s state (in particular in its cache) from the last time the process ran. Scheduling it to run on the same processor the next time could result in the process running more efficiently than if it were to run on another processor.
-JDBC Activities. Every JDBC Connection shared resource has a connection pool. The parameter Maximum Connections determines the connection pool size and hence, the maximum number of connection requests that can be processed by a JDBC shared resource.
JDBC Activities use engine threads to connect to a database configured in the JDBC Connection shared resource and process requests. The engine threads are released once the operation in the JDBC Activity completes and the connection is closed. For a typical scenario using a single JDBC Connection shared resource, ensure that the parameter Maximum Connections specified is inline with the engine thread pool size specified by the property engine engine.ThreadCount.
- TIBCO Administrator is the preferred monitoring and management application for TIBCO ActiveMatrix BusinessWorks. However, The process engine is instrumented with a TIBCO Hawk microagent that can be used to perform most administrative functions.
- Before using TIBCO Hawk with TIBCO ActiveMatrix BusinessWorks, the TIBCO Hawk microagent must be enabled in the process engine. To do this, set the Hawk.Enabled property to true. This can only be set for deployed process engines. Process engines in the test environment are not normally monitored and administered, therefore TIBCO Hawk is not recommended for use in the testing environment.
- If using non-default transport parameters for TIBCO Hawk, also Hawk.Service, Hawk.Network and Hawk.Daemon properties must also be set to the values for the transport used.
- Some microagent methods require memory and processor overhead for gathering statistics or for getting information on the current state of the process. Because of the performance implications, certain instrumentation is disabled by default. Instrumentation can be enabled for specific process definition with the Instrumentatiorn.
- TIBCO Hawk MicroAgent Methods.
-ConfigureActivityTracing. Enables/Disables tracing for specified activity. Activities can be specified by process definition and activity name or by class name. The class name is the Java implementation class name.
-Input
-ProcessDefinition. Name of the process definition for which to configure tracing. Specifying * signifies all process definitions. If ActivityClass is specified, this argument is optional
-Activity. Name of the activity for which to configure tracing. Specifying * signifies all activities. If ActivityClass is specified, this argument is optional.
-ActivityClass. Java implementation class name of the activity for which to configure tracing. This argument is optional if ProcessDefinition and Activity arguments exist.
-Enable. Specify true to enable tracing. false to disable tracing.
-Output
-NONE
-ConfigureAllTracing. Controls tracing for all activities and process starters
-Input
-EnableAllActivities. If true, tracing is enabled for all activities, If false, tracing will be disabled for all activities.
-EnableAllStarters. If true, tracing is enabled for all process starters. If false, tracing is disabled for all process starters.
-EnableAllUserRoles. If true, tracing is enabled for all user-defined roles. If false, tracing will be disabled for all user-defined roles.
-Output
-NONE
-ConfigureProcessStarterTracing. Enables/Disables tracing for specified process starter. Process starters can be specified by name or class name. The class name is the Java implementation class’ name.
-Input
-ProcessStarter. Name of the process starter for which to configure tracing. Specifying * signifies all process starters. If StarterClass is specified, this argument is optional.
-StarterClass. Java implementation class name of the process starter for which to configure tracing. This argument is optional if ProcessStarter argument is specified.
-Enable. Specify true to enable tracing, false to disable it.
-Output
-NONE
-ConfigureRole. Enables/disables tracing for the specified role.
-Input
-Role. Name of the role for which to configure tracing. Specifying * signifies all roles.
-Enable. Specify true to enable tracing, false to disable it.
-Output
-NONE
-ConfigureUserDefinedTracing. Enables/disables tracing for the specified user-defined role.
-Input
-Role. Name of the user-defined role for which to configure tracing. Specifying * signifies all user-defined roles.
-Enable. Specify true to enable tracing, false to disable it
-Output
-NONE
-DelayedStopApplicationInstance. Instructs all process starters to stop further job creation but stay active. The engine shuts down after all process instances have completed or the specified maximum delay has been reached. After shutdown any remaining checkpoint files are preserved and the engine’s operating system process exits.
-Input
-MaxDelay. Specifies the amount of time (in seconds) to wait before shutting down the process engine.
-WaitForCheckpoints. When true is specified, the engine waits for any checkpointed process instances to complete before shutting down.
-Output
-NONE
-GetActivities. Retrieves information about the activities that have been executed for a given process definition since the engine was started. The activity information is cumulative. A single activity name represents all executions of that activity. The min/max fields can be reset with the ResetActivityStats method. ExecutionTime computation for the Call Process Activity includes the sum of the execution times for all activities in the called process, not just the execution time for the call process activity itself.
-Input
-ProcessDefinition. Process definition name.
-Output
-ProcessDefName. Name of the process definition.
-Name. Name of the acivity.
-ActivityClass. Name of the class that implements the activity.
-ExecutionCount. Number of times the activity has been executed.
-ElapsedTime. Total clock time (in milliseconds) used by all executions of this activity. This includes waiting time for Sleep, Call Process, and Wait For... activities.
-ExecutionTime. Total clock time (in milliseconds) used by all executions of this activity. This does not include waiting time for Sleep, Call Process and Wait For... activities
-ErrorCount. Total number of executions of the activity that have returned an error.
-LastReturnCode. Status code returned by mosr recent execution of this activity. This can be either OK, DEAD, or ERROR.
-Tracing. True if tracing is enabled for this actviity, false if tracing is disabled.
-MinElapsedTime. Elapsed clock time (in milliseconds) of the activity execution that has completed in the shortest amount of elapsed time.
-MaxElapsedTime. Elapsed click time (in milliseconds) of the activity execution that has completed in the longest amount of elapsed time.
-MinExecutionTime. Execution time (in milliseconds) of the activity execution that has completed in the shortest amount of execution time.
-MaxExecutionTime. Execution time (ni milliseconds) of the activity execution that has completed in the longest ampunt of execution time.
-MostRecentElapsedTime. Elapsed clock time (in milliseconds) of the most recently completed activity execution.
-MostRecentExecutionTime. Execution time (in milliseconds) of the most recently completed activity execution.
-TimeSinceLastUpdate. Time (in milliseconds) since the statistics have been updated.
-CalledProcessDefs. A comma-separated list of names of process definitions called by this activity.
-ExecutionCountSinceReset. Number of activity executions thta have completed since the last reset of the statistics.
-GetExecInfo. Retrieves the process engine execution information.
-Input
-NONE
-Output
-Status. Engine status. Can be : ACTIVE, SUSPENDED, STANDBY, STOPPING
-Uptime. Elapsed time (in milliseconds) since the process engine was started.
-Threads. Number of worker threads used by the process engine.
-Version. Version of the process engine.
-getHostInformation. Returns the value of the specified property on the host machine on which the process engine is running.
-Input
-Name. Name of the property to return. Leave this argument blank to return all properties. The following are the properties that ca be returned.
- Application instance. name of the project that is running in the process engine.
- Application name. TIBCO Hawk display name if the process engine. This is set by the engine property Hawk.AMI.DisplayName.
- Application State. State of the process engine. Can be UNINITIALIZED. INITIALIZING, RUNNING, STOPPING or STOPPED.
-Output
-Name. Name of the property returned.
-Value. Value of the property.
-GetMemoryUsage. Retrieves information about the process engine’s memory usage.
-Input
-NONE
-Output
-TotalBytes. Total number of bytes allocated to the process engine.
-FreeBytes. Total number of bytes that are not currently in use.
-UsedBytes. Total number of bytes that are currently in use.
-PercentUsed. Percentage of total bytes that are in use.
-GetProcessCount. Returns the total number of running process instances.
-Input
-NONE
-Output
-TotalRunningProcesses. Total number of currently executing process instances.
-GetProcessDefinitions. Retrieves information about process definitions
-Input
-NONE
-Output
-Name. Name of the process definition.
-Starter. Noame of the process starter for the process.
-Created. Number of process instances created for this process definition.
-Suspended. Number of times process instances have been suspended.
-Swapped. Number of times process instances have been swapped to disk.
-Queued. Number of times process instances have been queued for execution.
-Aborted. Number of times process instances have been aborted.
-Completed. Number of process instances that have been successfully completed
-Checkpointed. Number of times process instances have executed a checkpoint.
-TotalExecution. Total execution time (in milliseconds) for all successfully completed process instances.
-AverageExecution. Average execution time (in milliseconds) for all successfully completed process instances.
-TotalElapsed. Total elapsed time (in milliseconds) for all successfully completed process instances.
-AverageElapsed. Average elapsed clock time (in milliseconds) for all successfully completed process instances.
-MinElapsed. Elapsed clock time (in milliseconds) of the process instance that has completed in the shortest amount of elapsed time.
-MaxElapsed. Elapsed clock time (in milliseconds) of the process instance that has completed in the shortest amount of time.
-MinExecution. Execution time (in milliseconds) of the process instance that has completed in the shortest amount of time.
-MaxExecution. Execution time (in milliseconds) of the process instance that has completed in the longest amount of execution time.
-MostRecentExecutionTime. Execution time (in milliseconds) of the most recently completed process instance.
-MostRecentElapsedTime. Elapsed clock time (in milliseconds) of the most recetly completed process instance).
-TimeSinceLastUpdate. Time (in milliseconds) since the statistics have been updated.
-CountSinceReset. Number of process instances that have completed since the last reset of the statistics.
-GetProcesses. Retrieves information about active process instances. If arguments are
specified, information for process instances that match the specified arguments is returned.
-Input
-Id. Id for the process instance.
-Name. Name of the process definition used by the process instance.
-EarliestStartTime. Earliest time (in milliseconds) at which the process instance started. All process instances started after the specified time will be retrieved.
-MinimumDuration. Minimum time (in milliseconds) in elapsed clock time since the process instance started. All process instances that have elapsed times greater than the specified minimum duration will be retrieved.
-MainProcessName. Name of the main process definition.
-Output
-Id. Id for the process instance.
-Name. Name of the process definition used by the process instance.
-TrackingId. Tracking ID for the process instance.
-CustomId. Custom ID for the process instance.
-Status. Status of the process.
-StartTime. Time when the process instance started.
-Duration. Elapsed clock time (in milliseconds) since the process instance started.
-MainProcessName. Name of the main process definition.
-CurrentActivityName. Name of the currently executing activity in the process instance.
-StarterName. Name of the process starter that started this process instance.
-SubProcessName. Name of the process definition for the sub-process.
-GetProcessesExceptions. Retrieves error information reported by the specified process.
-Input
-Id. Id for the process instance. If not specified, or if 0 is specified, exceptions for all process instances are returned.
-Output
-Seq. Sequence number of the exception, with the most recent exception first.
-Id. Id for the process instance.
-Message. Exception message.
-StackTrace. Exception stack trace.
-ExceptionClass. Exception class name.
-ProcessStack. Process Stack at exception. This displays the [ProcessName/GroupName/ActivityName] of the activity issuing the exception. If the activity is in a called sub-process, then the calling activity’s process stack plus a ‘>’ separator character will be pre-pended to the normal information to produce the process stack of the activity issuing the exception.
-TrackingId. Tracking Id for the process instance.
-ProcessDef. Name of the process definition.
-State. State of the process.
-GetProcessStarters. Retrieves information about either active or inactive process starters. The information is cumulative. A single process starter name represents all executions of that process starter.
-Input
-ActiveOrInactive. Specify Active to retrieve information about process starters with the ACTIVE or READY status. Specify Inactive to retrieve information about process starters with the INACTIVE status.
-Output
-ProcessDef. Name of the process definition.
-Name. Name of the process starter.
-Status. Status of the process starter. The status can be INACTIVE, ACTIVE or READY.
-Created. Number of process instances created by this process starter.
-CreationRate. Number of process instances per hour created by this process starter.
-Running. Number of process instances currently executing.
-Completed. Number of process instances that have completed.
-StartTime. Time (in milliseconds) at which the process starter was started.
-Duration. Elapsed clock time since the process starter was started.
-CheckpointedStart.True if the process was restarted from a checkpoint.
-Tracing. True if tracing is enabled for this process starter, false if tracing is disabled.
-GetRecoverableProcesses. Retrieves the process instances that can be recovered. Use the returned process instance ID in the RestartRecoverableProcess or RemoveRecoverableProcess commands.
-Input
-NONE
-Output
-Id. Id for the process instance.
-Status. Status of the process instance. Can be one of the following.
-faulted. this status occurs when the process instance is terminated due to an unhandled excetpion.
-interrupted. this status occurs when the process instance is terminated due to engine failure (and the instance did not automatically restart when the engine restarted) or a manual termination.
-TrackingId. Tracking ID for the process instance.
-CustomId. Custom ID for the process instance.
-ProcessName. Process definition for this process instance.
-RestartActivity. Name of the last executed Checkpoint activity in the process instance. This is the point at which the process instance will begin executing when it is restarted.
-getRvCmConfig. Get information about all the TIBCO Rendezvous certified message transports.
-Input
-NONE
-Output
-certifiedName. Name used for certified delivery.
-service. Service parameter for the Rendezvous daemon.
-daemon. Daemon parameter for the Rendezvous daemon.
-network. Network parameter for the Rendezvous daemon.
-ledgerFile. Name of the ledger file for the Rendezvous daemon.
-cmTimeout. Timeout value for certified delivery.
-GetStaticActivityInfo. retrieves design time activity information for all activities in a given process definitions.
-Input
-ProcessDefinition. Name of the process definition.
-Output
-Name. Name of the activity as specified in TIBCO Designer.
-Type. A Java class name, for the type of the activity.
-GetStatsCollectorDestination. Retrieves the file where activity statistics are currently being collected.
-Input
-NONE
-Output
-fileName. Name of the file where activity statistics are currently collected. This value is blank if statistics are not currently being collected.
-GetStatus. Retrieves basic status information about the engine.
-Input
-NONE
-Output
-InstanceID. Name of this instance of the process engine.
-AdapterName. Name of the application.
-Uptime. Nomber of seconds since this process engine was started.
-NewErrors. Total number of errors encountered since the last time this method was called.
-TotalErrors. Total number of errors encountered since the process engine was started.
-ProcessID. Operating system process ID of the process engine.
-Host. Name of the host machine on which the process engine is runnning.
-GetTransactionStatistics. Retrieves statistics for XA transactions initiated using the TIBCO XA Transaction Manager or Arjuna Transaction Manager. Statistics are totals collected for the lifetime of the process engine.
-Input
-NONE
-Output
-Total Transactions. Total number of transactions since the process engine started.
-Total Commited. Total number of committed transactions since the process engine started.
-Rolledback. Total number of rolled back transactions since the process engine started.
-Timeout Rollback. Total number of transactions rolled back because of a timeout since the process engine started. Timeout rollback occurs when the transaction or resource times out. Java transaction APIs do not provide explicit information about timeouts. Therefore the timeout rollback also covers scenarios that represent other illegal transaction states.
-Resource Rollback. Total number of transactions rolled back due to resource issues since the process engine started.
-Application Rollback. Total number of transactions rolled back due to resource issues since the process engine started.
-Heuristics. Total number of transactions with a heuristic outcome.
-IsActivityTracingEnabled. Reports whether tracing is enabled or disabled for the specified activity. If tracing is enabled for all activities by way of a wildcard (*), this methods returns false because tracing is not enabled for the activity specifically.
-Input
-ProcessDefinition. Name of the process definition for which to determine tracing status.
-Activity. Name of the activity for which to determine tracing status.
-Output
-Enabled. true if tracing is enabled for the specified activity. false if tracing is disabled.
-IsAllTracingEnabled. Reports whether tracing is enabled or disabled for all activities and process starters. True is returned when tracing is enabled using a wildcard (*). If tracing is enabled for all activities and/or process starters by specifying a tracing parameter individually for each one, this method will return false.
-Input
-NONE
-Output
-ActivityTracingEnabled. true when tracing is enabled for all activities. false when tracing is disabled for all activities.
-ProcessStarterTracingEnabled. true when tracing is enabled for all process starters. false when tracing is disablde for all process starters.
-IsProcessStarterTracingEnabled. Reports whether tracing is enabled or disabled for the specified process starter. If tracing is enabled for all process starters by way if a wildcard (*), this method returns false because tracing is not enabled for the process starter specifically.
-Input
-ProcessStarter. Name of the process starter for which to determine tracing status.
-Output
-Enabled. true if tracing is enabled for the specified process starter, false if tracing is disabled.
-IsRoleEnabled. Reports whether tracing is enabled or disabled for the specified role. If tracing is enabled for all roles by way of a wildcard (*), this method returns false because tracing is not enabled for the role specifically.
-Input
-Role. Name of the role for which to determine tracing status.
-Output
-Enabled. true if tracing is enabled for the specified role, false if tracing is disabled.
-KillAllProcesses. Kills all process instances. All process instances are stopped immediately and are permanently removed from the engine.
-Input
-ProcessDefinition. Name of the process definition. Only process instances for the specified process definition are killed. If unspecified, this action applies to all process definition.
-Output
-NONE
-KillProcess. Kills the specified process instance. The process instance is stopped immediately and permanently removed from the engine.
-Input
-ProcessNameOrId. Name or process id of the process instance to kill. ProcessId can be retrieved by using GetProcesses method.
-Output
-NONE
-ListAllRoles. Returns a list of all roles, along with the current state (enabled or disabled) of each role.
-Input
-NONE
-Output
-Role Name of the role
-Enabled. True if the role is enabled, false if the role is disabled.
-ListDbConnections. Returns a list of open and idle JDBC connections that have been opened by a single instance of ActiveMatrix businessWorks engine.
-Input
-NONE
-Output
-Connection-State. State of the JDBC Connection. Connection state can be Active or Idle.
-Connection-Name. Name of the JDBC Connection.
-User-Name. Username used by the JDBC Connection resource to connect the database.
-Connection-Owner. Owner of the JDBC Connection. For active connections, this field displays the activity name and the job-id for which the connection has been acquired. For idle connections, this field is empty.
-Idle-Time. Time in milliseconds for which the JDBC Connection has been idle. For active connections, this value is 0.
-ListInflightTransactions. Retrieves information about the currently in-flight XA transactions being processed by the TIBCO XA Transaction Manager or Arjuna Transaction Manager. In-flight transactions are all transactions that have not completed or rolled back.
-Input
-NONE
-Output
-Format ID. Format identifier part of the XID
-Global Transaction IDGlobal transaction identifier part of XID
-Branch Qualifier. Transaction branch identifier part of XID
-Status. Current status of the transaction.
-Transaction Duration. Amount of time (in milliseconds) since this transaction has initiated.
-Enlisted Resource. XA Resources enlisted in the transaction.
-ListInstrumentProperties. Retrieves the current settings for all Instrumentation properties.
-Input
-NONE
-Output
-Property. List the Instrumentation properties that are currently set in the form
-ListTraceProperties. Returns the names and current values for all engine trace properties.
-Input
-NONE
-Output
-Property. Lists the tracing properties and their values in the form
-ListUserDefinedRoles. Returns a list of user-defined roles, along with the current state (enabled or disabled) of each role.
-Input
-NONE
-Output
-Role. Name of the role.
-Enabled. True if the role is enabled, false if the role is disabled.
-OnProcessActivity. This method is called when a process executes an activity and it is only called when instrumentation is on.
-Input
-NONE
-Output
-ProcessId. ID of the process instance.
-ProcessDef. Process definition name.
-ActivityName. Name of the activity.
-TrackID. ID of the execution track in which the activity was executed.
-OnProcessAdded. This method is called whenever a process instance is added, and it is only called when instrumentation is on.
-Input
-NONE
-Output
-ProcessId. Process ID of the process instance that was added.
-OnProcessRemoved.This method is called whenever a process instance is removed, and it is only called when instrumentation is on.
-Input
-NONE
-Output
-ProcessId. Process ID of the process instance that was removed.
-OnProcessStatusChanged. This method is called when a process is suspended or resumed, and it is only called when instrumentation is on.
-Input
-NONE
-Output
-ProcessId. ID of the process instance.
-When. Date and time when the status of the process instance changed.
-Active. Status of the process instance. True when the process instance is active, false when it is inactive.
-TrackingID. Tracking ID for the process instance
-ProcessDef. Process Definition name.
-PreRegisterListener. Pre-register a listener for certified delivery.
-Input
-Publisher CM Name. Publisher certified name.
-Subject. Subject used for certified delivery.
-Listener CM Name. Listener certified name.
-Output
-NONE
-RemoveRecoverableProcess. Removes the specified recoverable process instance from the list of potential recoverable processes. After executing this method, the checkpoint data of the specified process instance is removed and the process instance will no longer be able to be recovered. Obtain the process ID of the recoverable process with the GetRecoverableProcess method.
-Input
-ProcessId
-Output
-NONE
-ResetActivityStats. Resets the min and max time calculations for each activity in the specified process definition. This method is for internal use only and should not be invoked.
-Input
-ProcessDefinition. Name of the process definition
-Output
-NONE
-ResetProcessDefinitionStats. Resets the minimum, maximum, and average time gathered for process instances.
-Input
-ProcessDefinition. Name of the process definition whose statistics to reset.
-Output
-NONE
-RestartRecoverableProcess. Restarts the specified recoverable process.
-Input
-ProcessId. Process ID of the process to restart. The process will be restarted from and its last saved checkpoint.
-Output
-NONE
-ResumeAll. Resumes all process starters and/or processes.
-Input
-Action- Specifies what to resume. Can be one of the following.
-AllProcessStarters. Resumes all processes.
-AllProcesses. Resume all process.
AllProcessStartersAndProcesses. resumes all processes and process starters.
-ProcessDefinition. Name of the process definition.
-Output
-NONE
-ResumeProcess. Resumes the specified process instance.
-Input
-ProcessNameOrId. Name or process ID of the process instance for to resume.. Process Id can be retrieved by using GetProcesses method.
-Output
-Status.Status of the process instance after executing this operation.
-ResumeProcessStarter. Resumes the specified process starter.
-Input
-ProcessDefinition. Name of the process definition whose process starter to continue.
-Output
-Status. Status of the process starter executing this operation.
-reviewLedger. Returns information retrieved from the certified message ledger for the given CM name and subject. If no values are supplied for the method arguments, all ledgers are returned.
-Input
-CM Name. Certified name.
-Subject. Subject used for certified delivery.
-Output
-CM Name. Name used for certified delivery
-Subject. Subject used for certified delivery.
-Last Sent Message. Sequence number of the most recent message sent with this subject name.
-Total Messages. Total number of messages with this subject name for the given CM name.
-Total Size. Total storage in bytes occupied by all messages with this subject name.
-Listener CM Name. Name of the delivery-tracking listener for this subject.
-Last Confirmed. Sequence number of the last message confirmed by the listener.
-Unacknowledged Messages. Number of messages pending for this listener.
-SetInstrumentProperty. Sets the Instrumentation property for the specified process definition to a given value. The OnProcessActivity and OnProcessStateChanged methods will be called for the specified process definition names.
-Input
-Name. Name of the process definition for which to alter the Instrumentation property. Specify * for this argument to enable or disable instrumentation for all process definitions.
-Value. true to enable instrumentation for the given process definition. false to disbale instrumentation for the given process definition.
-Output
-NONE
-SetTraceProperty. Sets the specified engine tracing property to the specified value. While properties can be set with this method, ConfigureActivityTracing, ConfigureProcessStarterTracing and ConfigureUserDefinedTracing are simpler to use for setting trace properties.
-Input
-Name. Name of the tracing property to set.
-Value. true to enable the property, false to disable it.
-Output
-NONE
-StartStatsCollection. Enables collection of statistics for each executed activity.
-Input
-NONE
-Output
-NONE
-stopApplicationInstance. Shuts down the process engine immediately. All checkpoint files are preserved and the engine’s operating system process exits.
-Input
-NONE
-Output
-NONE
-StopStatsCollection. Disables collection of statistics for each executed activity.
-Input
-NONE
-Output
-NONE
-SuspendAll. Suspends all process starters and/or processes
-Input
-Action. Specifies what to suspend. Can be one of the following
-AllProcessStarters. Suspends all process starters.
-AllProcesses. Suspends all processes.
-AllProcessStartersAndProcesses. Suspends all processes and process starters.
-ProcessDefinition. Name of the process definition.
-Output
-NONE
-SuspendProcess. Suspends the specified process instance.
-Input
-ProcessNameOrId. The name of the process ID of the process instance to suspend. Process ID can be retrieved by using GetProcess method.
-Output
-Status. Status of the process instance after executing this operation.
-SuspendProcessStarter. Suspends the specified process starter.
-Input
-ProcessDefintion. Name of the process definition whose proess starter to suspend.
-Output
-Status. Status of the process starter after executing this operation.
-unRegisterListener. Unregister a certified delivery listener.
-Input
-Publisher CM Name. Publisher certified name.
-Subject. Subject for certified delivery
-Listener CM Name. Listener certified name.
-Output
-NONE.
-_onUnsolicitedMsg. Subscribing to this method returns any unsolicited notifications that are sent from the managed application corresponding to this microagent. Invoking this method returns the last such message that was received (if any).
-TIBCO ActiveMatrix BusinessWorks processes are deployed on TIBCO Administrator can be monitored using the Java Management Extensions (JMX) API. This is possible only for projects deployed on TIBCO Administrator.
- To enable JMX monitoring for the BusinessWorks engine, set the following property in bwengine.tra:
Jmx.Enabled=true
- To enable remote monitoring using JMX, set the following properties in bwengine.tra:
java.property.com.sun.management.jmxremote=true
java.property.com.sun.management.jmxremote.port=
java.property.com.sun.management.jmxremote.authentication=false
java.property.com.sun.management.jmxremote.ssl=false
- Java monitoring tools such as JConsole can be used instead of TIBCO Hawk to monitor the BusinessWorks engine.
-Perform the following tasks to monitor a BusinessWorks engine using JConsole.
- Set the properties mentioned in the previous section
- Deploy the BusinessWorks project on TIBCO Administrator. Ensure that the TIBCO Hawk Agent has been started.
- Start JConsole and connect to the application thta needs to be monitored. By default, JConsole is available in the installation location of Java Development Kit (JDK) for 1.5.0 and higher versions.
- On the JConsole windows, click the MBeans tab. Select the node com.tibco.bw in the tree on the right-hand side. The methods available to monitor the BusinessWorks engine are displayed under the Operations tab. These methods are the TIBCO Hawk Microagent methods that can also be invoked using TIBCO Hawk.
Activity Name
Threads Used
HTTP Receiver
Private
Invoke An Adapter Request Response Service
Private
JMS Sender
Engine
JMS Receiver
Private
JMS Topic/Queue Requestor
Private
JDBC Query
Engine
Send HTTP Request
Private
Send Rendezvous Request
Private
SOAP Request Reply
Private
Wait, Wait For... and Sleep activities
Private