Provisioning Reference Guide › SPML Service › SPML Service Configuration › Retrying SPML Requests › Configure Retry for a Request
Configure Retry for a Request
The process of configuring an SPML request to be retried is the following:
- In the SPML Manager or Command-line RA, you submit a request for asynchronous execution including the caIamRetry operational attribute. This attribute can be referenced in Java as com.ca.commons.spml.IAMSpmlUtil.CA_IAM_ATTR_RETRY.
- The SPML server schedules the request for immediate execution. If the processing is completely successful or any sub-operation fails with a hard failure, a success or failure SPML response is stored.
Otherwise if one or more sub-operations fail with a soft failure, the SPML server will return true from the actionFailed() method of the com.ca.iam.spml.ProcessingDetails instance assigned as the IAMCommitObserver for the current session, which informs JIAM that there is an interest in retrying.
- You can track processing of an asynchronous request by submitting an SPML status request quoting the request ID. The status eventually changes to complete, signifying either complete success or a non-retriable failure. The non-retriable state could be due to the retry limit being exhausted as set by retryMaximumCount in hivemodule-plugin-deploy.xml.
- Results for asynchronous requests are cached for a configurable period after their processing completes (refer scheduledHoldingIntervalMinutes in hivemodule-plugin-deploy.xml)
- When the status of a request which is being, or has been, retried is queried, the operational attribute caIamRetryDetails appears in its operational attributes and provides a rough summary of progress suitable for a human reader.
- JIAM then analyses the operation that failed and determines if it does indeed support retrying for it. If retrying is supported, JIAM will remove any successful sub-operations and use the HSQLDBPersister configured by the SPML server to save the retry operation to the database named db_spml_retry. The IAMSession.commit() call then completes and a pending SPML response is returned to the RA that submitted the request.
- The JIAM retry subsystem periodically retries the request based on the retryDelayMinutes setting in hivemodule-plugin-deploy.xml. assuming retryMaximumCount limit is not exhausted.
- If a soft failure is encountered, the retry process repeats at step 4.
- If a hard failure is encountered or the limit is exhausted, the retry sequence terminates and the SPML server is informed via the failed() method of the registered QueueObserver. Future status requests targeting the retried request will report failure.
- If no failures are encountered, JIAM informs the SPML server that the request was processed successfully via the completed() method of the registered QueueObserver. Future status requests targeting the retried request will report success.