Configuring applications for resiliency
Client applications that use the HBRRULE API to call the zRule Execution Server for z/OS wait indefinitely for the server to respond.
This might not be ideal in failure scenarios, so you can set the HBRTIMEOUT
parameter so that the client does not wait for a server that never responds.
About this task
The HBRTIMEOUT runtime variable specifies the number of seconds to wait for a
response. If the zRule Execution Server for z/OS takes longer than
the HBRTIMEOUT value to respond to the client, the client receives a completion
code of 8 and a reason code of 3034
(HBR_RC_RULE_TIMEOUT).
The client application can attempt the rule execution again on a backup zRule Execution Server for z/OS, specified on the
HBRSSIDLIST, by issuing the HBRRULE API call again with the same
HBRA-CONN-AREA. The zRule Execution Server for z/OS
that timed out is ignored for this and all future HBRRULE calls until a
HBRDISC and HBRCONN are issued.
If all of the zRule Execution Server for z/OS in the
HBRSSIDLIST either time out or are unavailable, the client application receives a
completion code of 8 and a reason code of 3022
(HBR_RC_NO_SERVER_AVAILABLE). The client application must issue the
HBRDISC and HBRCONN API calls to attempt further rule executions
on the servers in the HBRSSIDLIST.
Although the server continues to run the rule even after the client times out, a record can be
made of this execution in the server log by setting the property HBRLOGTIMEOUTS to
YES (see Configuring properties to monitor for excessive execution time).
Procedure
-
Locate the
HBRTIMEOUTproperty value.For batch, see the ++HBRWORKDS++.SHBRPARM(HBRBATCH) member. For CICS®, see the ++HBRWORKDS++.SHBRPARM(HBRCICSZ) member. - Specify the number of seconds to wait for a response from the zRule Execution Server for z/OS stand alone, where 0 means no timeout and 1 to 60000 expresses the number of seconds to wait for rule execution to complete.