Software AG Products 10.7 | Integrating On-Premises and Cloud Applications | Service Development | Building Services that Retry | Requirements for Retrying a Service
 
Requirements for Retrying a Service
If you want a service to catch a transient error, re-throw it as an ISRuntimeException, and then re-execute, the following criteria must be met:
*You must configure the Transient error handling properties for the top-level service. For more information about configuring service retry and how Integration Server retries services, see Configuring Service Retry.
*If the service functions as a trigger service (the service is invoked by a trigger), you must configure the Transient error handling properties for the trigger. In this situation, Integration Server uses the trigger retry properties instead of the service retry properties. For more information about configuring retry for webMethods Messaging Triggers, see the Configuring Transient Error Handling for a webMethods Messaging Trigger . For information about configuring retry for JMS triggers, see the Configuring Transient Error Handling for a Non-Transacted JMS Trigger.
*If the service is a flow service, the service must invoke pub.flow:throwExceptionForRetry to throw the ISRuntimeException. For more information about the pub.flow:throwExceptionForRetry service, see the webMethods Integration Server Built-In Services Reference.
*If the service is written in Java, the service can use com.wm.app.b2b.server.ISRuntimeException() to throw the ISRuntimeException. For more information about constructing ISRuntimeExceptions in Java services, see webMethods Integration Server Java API Reference for the com.wm.app.b2b.server.ISRuntimeException class.
*If the service invokes an adapter service, ensure that the service catches transient errors that the adapter service detects.
When an adapter service built on Integration Server 6.0 or later, and based on the ART framework, detects a transient error, for example, if their back-end server is down or the network connection is broken, the adapter service propagates an exception that is based on ISRuntimeException. When creating a service that invokes an adapter service, ensure that the logic that catches errors and determines whether they are transient errors can interpret the adapter service exception that signals a retry.
For more information about adapter services, see the relevant adapter guides.