# Trigger and Recipe Performance

The following section gives a general description of the components that affect the performance of Substation ES trigger and recipe processes.

## Trigger Processing

Substation ES triggers make heavy use of the CICS intrapartition file called DFHINTRA, whose physical record size can have a significant effect on the performance of Substation ES trigger and HVT processes.

Note the following items:

- The standard Substation ES trigger size is limited by the record size of DFHINTRA.
- Substation ES HVT segments large messages into multi-TDQ records. The larger the DFHINTRA record size (maximum 32 KB), the less segmentation is required. Less segmentation improves performance.
- Reliable trigger messages do not use the RRS facility. In case of an error in message delivery to the EMS server or Rendezvous endpoint, the message could be lost. Because of the reduced recovery, there is less overhead in processing a reliable message. HVT Reliable Triggers that must be segmented (because the message does not fit in one TDQ buffer) also use the TSQ. For those types of messages, TSQ tuning might be required.

  Guaranteed trigger messages must use the RRS facility to ensure message delivery to the EMS server. Rendezvous does not support guaranteed delivery.

- The HVT TSQ facility only uses TSQ records. It does not use the RRS facility. If the message cannot be delivered to the ESB, the message is lost. If Substation ES is unavailable, HVT TSQ are stored in CICS Temporary Storage File (`DFHTEMP`). If CICS is re-cycled, the messages in TSQ are lost unless the system uses recoverable TSQs.
- Specify the TS = (,buffers, strings) parameter on the CICS SIT to monitor the TSQ (`DFHTEMP`) statistics on the use of resources. A good starting point for the `TS` setting is as follows:

      buffers = 5 + WORKERS in CICS definition + HVT-WORKERS
      strings = WORKERS in CICS definition + HVT-WORKERS

- Specifying TD = (buffers, strings) parameter on the CICS SIT to monitor the `DFHINTRA` statistics on the use of resources. A good starting point for the `TD` setting is as follows:

      buffers = 5 + WORKERS in CICS definition + HVT-WORKERS
      strings = WORKERS in CICS definition + HVT-WORKERS

- Trigger use based on ServiceName lookup is more efficient than Buffer Value Match. This is because the Trigger list is kept sorted in alphabetic order and the match process stops after either finding a ServiceName match or going past the first possible location in the sorted order.

  For faster matching, frequently used Trigger ServiceNames should be at the beginning of the list. That is, the service names should begin with "A".

Following is an example of the CICS Transient Data statistics. The highlighted numbers must always be zero for best performance.

    Transient
    Data
      Transient data reads. . . . . . . . . . . . : 1,380,551
      Transient data writes . . . . . . . . . . . : 2,179,981
      Transient data formatting writes. . . . . . :         0
      Control interval size . . . . . . . . . . . :    18,432
      Control intervals in the DFHINTRA dataset . :    94,320
      Peak control intervals used . . . . . . . . :    94,320
      Times NOSPACE on DFHINTRA occurred. . . . . :        11
      Transient data strings. . . . . . . . . . . :         3
      Times Transient data string in use. . . . . : 3,560,530
      Peak Transient data strings in use. . . . . :         3
      Times string wait occurred. . . . . . . . . : 1,958,001
      Peak users waiting on string. . . . . . . . :        12
      Transient data buffers. . . . . . . . . . . :        40
      Times Transient data buffer in use. . . . . : 7,379,700
      Peak Transient data buffers in use. . . . . :        15
      Peak buffers containing valID data. . . . . :        40
      Times buffer wait occurred. . . . . . . . . :         0
      Peak users waiting on buffer. . . . . . . . :         0

## Recipes (Request or Reply)

The WORKERS parameter specifies the number of concurrent CICS sessions that are started to service Substation ES requests. For CICS business applications, this is the maximum number of transactions that can be run in CICS concurrently.

To raise the level of concurrency, increase that number. Bear in mind that the WORKERS setting affects the value you specify on the CICS MAXTASK parameter.

## SXEX CICS Priority

The default priority for the `SXEX` transaction is 1, and it must be changed to your installation normal business transactions priority plus 1. For example, if your normal business transaction priority is 20, you must set your `SXEX` priority to 21.

This gives Substation ES transactions better execution and faster response time.

Copyright © TIBCO Software Inc. All rights reserved.