BT Orchestrations Test
Orchestrations are executable business processes that can subscribe to (receive) and publish (send) messages through the MessageBox database. In addition, orchestrations can construct new messages. Messages are received using the subscription and routing infrastructure.
When subscriptions are filled for orchestrations, a new instance is activated and the message is delivered, or in the case of instance subscriptions, the instance is rehydrated if necessary and the message is then delivered. When messages are sent from an orchestration, they are published to the MessageBox in the same manner as a message arriving on a receive location with the appropriate properties getting inserted into the database for use in routing.
Messages that are constructed in an orchestration must be placed in the MessageBox database and referenced by the orchestration instance, but they should not be published because they have not yet been sent. The XLANG/s subservice makes calls to the Message Agent API to insert messages directly. This allows the orchestration engine to insert the message body into the MessageBox and have it directly associated with the running orchestration instance. The persistence of the constructed message in the MessageBox database is coordinated with persistence points in the orchestration as an additional optimization of database operations.
This test helps you determine the number of orchestrations that were created on each host instance, and also tracks the status of these orchestrations over time, thereby promptly alerting you when too many orchestrations are suspended or discarded. The test also tracks the memory usage of the orchestrations, and alerts you if excessive memory is being consumed.
Target of the test : A BizTalk Server 2010
Agent deploying the test : An internal agent
Outputs of the test : One set of results for each host instance on the BizTalk server being monitored
Parameters | Description |
---|---|
Test period |
This indicates how often should the test be executed. |
Host |
The host for which this test is to be configured. |
Port |
The port at which the host listens to. |
Ispassive |
If this parameter is set to Yes, then it means that, by default, all BizTalk servers being monitored by the eG system are the passive servers of a BizTalk cluster. No alerts will be generated if the servers are not running. Measures will be reported as "Not applicable" by the agent if the servers are not up. |
Measurement | Description | Measurement Unit | Interpretation |
---|---|---|---|
Idle orchestrations |
Indicates the number of idle orchestration instances currently hosted by this host instance. |
Number |
This refers to orchestrations that are not making progress but are not dehydratable, as when the orchestration is blocked waiting for a receive, listen, or delay in an atomic transaction. |
Orchestrations created |
Indicates the number of orchestration instances that were created since this host instance was started. |
Number |
|
Orchestrations created |
Indicates the rate at which the orchestration instances were created on this host instance. |
Orchestrations / Sec |
|
Running orchestrations |
Indicates the number of orchestration instances that are currently executing on this host instance. |
Number |
|
Orchestrations completed |
Indicates the number of orchestration instances that were completed since this host instance was started. |
Number |
|
Orchestration completed rate |
Indicates the rate at which the orchestration instances are completed. |
Orchestrations/Sec |
A high value is desired for this measure. A low value or a steady decline in the value of this measure could indicate an execution bottleneck. |
Orchestrations discarded |
Indicates the number of orchestration instances discarded from memory since this host instance was started. |
Number |
An orchestration can be discarded if the engine fails to persist in its state. |
Orchestrations discarded rate |
Indicates the rate at which orchestrations instances were discarded from the memory of this host instance. |
Orchestrations/Sec |
|
Orchestrations suspended |
Indicates the number of orchestration instances that are suspended since this host instance was started. |
Number |
All failures encountered in orchestrations appear as exceptions. If an orchestration does not include any CatchException shape for an exception, the exception causes the orchestration to be Suspended, but not resumable. This means that message and service instance tracking, or a WMI script, cannot recover the instance. However, you can save all messages associated with the Suspended (not Resumable) instance using tracking (or WMI script) for diagnostic and manual retry. To diagnose the problem, use the Orchestration Debugger to see the last shape executed before the instance was suspended. You can also view exception details using the Orchestration Debugger. |
Orchestrations suspended rate |
Indicates the rate at which orchestrations were suspended on this host instance. |
Orchestrations/Sec |
|
Orchestrations rehydrated |
Indicates the number of orchestration instances that were rehydrated since this host instance was started. |
Number |
Rehydration is the process of deserializing the last running state of an orchestration from the database. The orchestration engine can be triggered to rehydrate an orchestration instance by the receipt of a message or by the expiration of a time-out specified in a Delay shape. It then loads the saved orchestration instance into memory, restores its state, and runs it from the point where it left off. |
Orchestrations rehydrated rate |
Indicates the rate at which orchestrations instances were rehydrated on this host instance. |
Orchestrations/Sec |
|
Orchestrations dehydrated |
Indicates the number of orchestration instances that were dehydrated since this host instance was started. |
Number |
Dehydration is the process of serializing the state of an orchestration into a SQL Server database. The orchestration engine might determine that an orchestration instance has been idle for a relatively long period of time. It calculates thresholds to determine how long it will wait for various actions to take place, and if those thresholds are exceeded, it dehydrates the instance. This can occur under the following circumstances:
The engine dehydrates the instance by saving the state, and frees up the memory required by the instance. By dehydrating dormant orchestration instances, the engine makes it possible for a large number of long-running business processes to run concurrently on the same computer. This implies that the larger the number and rate of dehydrations minimal will be the use of system resources. |
Orchestrations dehydrated rate |
Indicates the rate at which orchestration instances were dehydrated on this host instance. |
Orchestrations/Sec |
|
Pending messages |
Indicates the number of received messages for which receipt has not yet been acknowledged to the message box from the orchestration. |
Number |
A very large value could indicate a processing bottleneck. |
Pending work items |
Indicates the number of code execution blocks that are scheduled for execution in the orchestration. |
Number |
|
Failure connections |
Indicates the number of attempted database connections that has failed since this host instance was started. |
Number |
Ideally, the value of this measure should be 0. |
Database transactions |
Indicates the number of database transactions performed since the host instance was started. |
Number |
|
Database transaction rate |
Indicates the rate of database transactions performed by the orchestrations hosted by this host instance. |
Trans/Sec |
|
Current Orchestrations Instances |
Indicates the number of orchestration instances currently hosted by this host instance. |
Number |
|
Private memory |
Indicates the allocated private memory for this host instance. |
MB |
This is the current size of memory that this process has allocated that cannot be shared with other processes. |
Virtual memory |
Indicates the reserved virtual memory for this host instance. |
MB |
This is the current size of the virtual address space the process is using. Use of virtual address space does not necessarily imply corresponding use of either disk or main memory pages. Virtual space is finite, and the process can limit its ability to load libraries. |
Total physical memory |
Indicates the percentage of total physical memory used on this host instance. |
Percent |
The dehydration behavior of BizTalk Server depends entirely on how much memory is available and how much memory is being used. The dehydration behavior is different with different amounts of memory and differences in memory use between 32-bit and 64-bit hosts. |