Automatic Alert and Recovery Capabilities Configuration
Introduction
Oracle Health Insurance applications effectively manage unexpected interruptions when processing tasks, ensuring seamless operation with an optional alert/notification. This document outlines the features and configuration options available in Oracle Health Insurance applications and focuses explicitly on the tasks' automatic alert and recovery capabilities.
When a task is found to be stuck in a specific status for an extended period (due to some unforeseen reasons), the application responds as follows:
-
Pending: A notification is sent.
-
Processing: The task is automatically re-queued (put back into the AQ), and a notification is sent.
-
Errored: The task is automatically re-queued (put back into the AQ), and a notification is sent.
These capabilities are designed to improve system resilience and minimize manual intervention to ensure that tasks are processed efficiently and any disruptions are promptly addressed and notified.
Task Types Monitored
The scheduler currently supports the following task types:
- In Policies
-
-
IntegrationEventAggregateCreator
-
IntegrationTransformation
-
RepublishingFailedMessages
-
PolicyUpdateRequestPolling
-
- In Claims, Authorizations, and Capitation
-
-
DataReplicationTargetSynchronization
-
Initial Configuration Properties
To customize the behavior of the scheduler to meet your specific requirements, you can configure the following properties:
Scheduler Frequency
Determines how frequently tasks are auto-recovered and notifications are sent.
- Following is an example to set the scheduler frequency:
POST "/api/generic/properties" { "name": "ohi.taskprocessing.scheduler.frequency", "value": 6400 }
The default value
is 3600 seconds (1 hour); lowering this value is not recommended.
Notification Endpoint
Sets the endpoint where notifications about task status are sent.
- Following is an example to set the notification endpoint:
POST "/api/generic/properties" { "name": "ohi.taskprocessing.notification.endpoint", "value": "https://example.com/notification" }
Following is an example of a notification response body for a task of type IntegrationTransformation stuck in PENDING status:
{ "workId" : "16157128", "status" : "In Process", "links" : [ { "rel" : "self", "href" : "http://localhost:8080/api/generic/tasks/16157128", "httpMethod" : "GET" } ], "taskStatus" : "PENDING", "taskType" : "IntegrationTransformation" }
Authentication Mechanism
Configures the authentication type to send notifications.
- Following is an example to set the authentication:
POST "/api/generic/properties" { "name": "ohi.service.StuckTasksNotificationClient.client.authentication", "value": "BasicAuthentication" }
The authentication options available are None, BasicAuthentication, and OAuth. The default authentication is BasicAuthentication.
Configuration by Task Type
IntegrationEventAggregateCreator
Tasks are recovered, and notifications are sent if event aggregation is enabled.
- To enable event aggregation, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.connector.event.aggregation.activated", "value": true }
- To configure the aggregation interval, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.connector.event.aggregation.interval", "value": 300 }
The default interval value
is 300 seconds.
- To configure processing interval, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.taskprocessing.IntegrationEventAggregateCreator.processing.timeinterval", "value": 300 }
The default interval value
is 300 seconds.
IntegrationTransformation
Tasks are recovered, and notifications are sent only if any connector configuration is enabled.
- To configure processing time interval, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.taskprocessing.IntegrationTransformation.processing.timeinterval", "value": 300 }
The default interval value
is 300 seconds.
RepublishingFailedMessages
Tasks are recovered, and notifications are sent if message republishing is activated.
- To enable message republishing, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.connector.message.republishing.activated", "value": true }
- To configure the republishing interval, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.connector.message.republishing.interval", "value": 300 }
The default interval value
is 300 seconds.
- TO configure the processing interval, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.taskprocessing.RepublishingFailedMessages.processing.timeinterval", "value": 300 }
The default interval value
is 300 seconds.
PolicyUpdateRequestPolling
Tasks are recovered, and notifications are sent if policy update request polling is enabled.
- To enable policy update request polling, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.policyupdaterequest.polling.enabled", "value": true }
- To configure the polling interval, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.policyupdaterequest.polling.interval", "value": 60 }
The default interval value
is 60 seconds.
- To configure processing interval, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.taskprocessing.PolicyUpdateRequestPolling.processing.timeinterval", "value": 300 }
The default interval value
is 300 seconds.
DataReplicationTargetSynchronization
Tasks are recovered, and notifications are sent only if any enabled entities are configured and the base URL is set.
- To set the base URL, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.ws.sourcesystem.{0}.baseurl", "value": "https://example.com" }
The entity name needs to be entered in the placeholder. |
- To configure the retrieval interval, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.datareplication.event.retrieval.interval", "value": 300 }
The default interval value
is 300 seconds.
- To configure processing interval, run the following
POST
request:
POST "/api/generic/properties" { "name": "ohi.taskprocessing.DataReplicationTargetSynchronization.processing.timeinterval", "value": 300 }
The default interval value
is 300 seconds.
It is recommended not to change the intervals unless required. |
Examples of scenarios where the scheduler kicks in:
-
If a task of the type
DataReplicationTargetSynchronization
is created at 10:00 AM and stuck at PROCESSING status and the propertyohi.taskprocessing.DataReplicationTargetSynchronization.processing.timeinterval
is set to3600
, then after 11:00 AM, the task is automatically re-queued, and a notification is sent out. -
If a task of the type
PolicyUpdateRequestPolling
is created at 8:00 PM whileohi.policyupdaterequest.polling.enabled
is set totrue
and is stuck at PENDING status and the propertyohi.policyupdaterequest.polling.interval
is set to600
, then after 8:10 PM, a notification is sent out.