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 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.