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

Configurable parameters for the test
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.

Measurements made by the test
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:

  • When the orchestration is waiting to receive a message, and the wait is longer than a threshold determined by the engine.

  • When the orchestration is "listening" for a message, as it does when you use a Listen shape, and no branch is triggered before a threshold determined by the engine. The only exception to this is when the Listen shape contains an activation receive.

  • When a delay in the orchestration is longer than a threshold determined by the engine.

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.