Introduction
OIC flow instances can abort for the following reasons -
- timeout - e.g. async flow taking longer than 6 hours.
- flow aborted by OIC admin.
So how can I see such instances?
OIC Observability
https://design.integration.us-phoenix-1.ocp.oraclecloud.com/ic/api/integration/v1/monitoring/instances?integrationInstance=yourOICInstance&q={timewindow: '1h', status:'ABORTED'}
{
"dataFetchTime": "2025-10-28T07:44:29.235+0000",
"hasMore": false,
"id": "instances",
"items": [
{
"creationDate": "2025-10-28T07:44:06.204+0000",
"date": "2025-10-28T07:44:21.311+0000",
"duration": 109,
"fifo": false,
"flowType": "ASYNC_ONE_WAY",
"hasRecoverableFaults": false,
"id": "4cIoOrPREfCH0M9O6IAqnQ",
"instanceId": "4cIoOrPREfCH0M9O6IAqnQ",
"instanceReportingLevel": "Production",
"integration": "ASYNCTEST|01.00.0000|AA_PROJECT2",
"integrationId": "ASYNCTEST",
"integrationName": "asyncTest",
"integrationVersion": "01.00.0000",
"invokedBy": "niall.commiskey@oracle.com",
"isDataAccurate": true,
"isLitmusFlow": false,
"isLitmusSupported": false,
"isPurged": false,
"lastTrackedTime": "2025-10-28T07:44:21.311+0000",
"links": [
{
"href": "https://.../ic/api/integration/v1/monitoring/instances/4cIoOrPREfCH0M9O6IAqnQ?integrationInstance=....",
"rel": "self"
},
{
"href": "https://.../ic/api/integration/v1/monitoring/instances/4cIoOrPREfCH0M9O6IAqnQ?integrationInstance=....",
"rel": "canonical"
}
],
"litmusResultStatus": "",
"mepType": "ASYNC_ONE_WAY",
"nonScheduleAsync": true,
"opcRequestId": "5OLUCU9R8EPMK53I4O9J4P9OHQS3WWSI/X3PTAN6JYB3GKUVWIYHYWMYVOJBRBIFG/1Y53WJY8OE8WF8TYR5X7GSR8PWXE27VM",
"outboundQueueNames": [],
"processingEndDate": "2025-10-28T07:44:06.671+0000",
"projectCode": "AA_PROJECT2",
"projectFound": true,
"projectName": "AA-Project2",
"receivedDate": "2025-10-28T07:44:06.562+0000",
"replayable": false,
"replayed": false,
"status": "ABORTED",
"trackings": [
{
"name": "orderNr",
"primary": true,
"value": "123"
}
]
}
],
"links": [
{
"href": "https://.../ic/api/integration/v1/monitoring/instances?integrationInstance=....",
"rel": "self"
},
{
"href": "https://.../ic/api/integration/v1/monitoring/instances?integrationInstance=....",
"rel": "canonical"
}
],
"totalRecordsCount": 1,
"totalResults": 1
}
The above response is for an async flow I aborted. Note the following -
"hasRecoverableFaults": false,
"mepType": "ASYNC_ONE_WAY",
"nonScheduleAsync": true,
...
"replayable": false,
"replayed": false,
"status": "ABORTED",
"trackings": [
{
"name": "orderNr",
"primary": true,
"value": "123"
}
Aborted flows cannot be recovered (re-submitted). Note the message exchange pattern value, it is set to "ASYNC_ONE_WAY". Also note the tracking fields.
Now to scheduled integrations - here is an extract from the response -
"mepType": "SCHEDULED",
"nonScheduleAsync": false,
"opcRequestId": "oci-...",
"outboundQueueNames": [],
"processingEndDate": "2025-10-28T09:56:35.832+0000",
"projectCode": "AA_PROJECT2",
"projectFound": true,
"projectName": "AA-Project2",
"receivedDate": "2025-10-28T09:56:35.750+0000",
"replayable": false,
"replayed": false,
"status": "ABORTED",
"trackings": [
{
"name": "param_dateLastRun",
"primary": true,
"value": "2025-10-27T00:00:00.000Z"
}
]
Note the message exchange pattern value, it is set to "SCHEDULED". Also note the tracking fields.
I've used a scheduled parameter, that holds the value of data last run as my primary tracking field.
OCI Logging
This is the relevant activity stream log entry in OCI Logging -
{
"datetime": 1761645414299,
"logContent": {
"data": {
"actionName": "ABORT",
"actionType": "Abort",
"eventId": "buZXXrPkEfCgjGnZvXiYSA",
"executedTime": "2025-10-28T09:56:54.299Z",
"instanceId": "Y7JMh7PkEfConmFtqrFmpg",
"integrationFlowIdentifier": "LOADNEWORDERS!01.00.0000",
"message": "Instance aborted by niall.commiskey@oracle.com , Source: User , Reason: Abort the in-progress/recoverable instances",
...
"parentEventId": "ALAFIN",
"projectCode": "AA_PROJECT2",
"userId": "niall.commiskey@oracle.com"
},
"id": "702f03b0-b3e4-11f0-a6d2-ff2cb7d37a5c",
"oracle": {
...
"specversion": "1.0",
"time": "2025-10-28T09:56:54.299Z",
"type": "com.oraclecloud.integration.integrationinstance.activitystream"
},
"regionId": "us-phoenix-1"
}
Note the message value - "Instance aborted by niall.commiskey@oracle.com ,
Source: User ,
Reason: Abort the in-progress/recoverable instances",
Also note the actionName & actionType values. I can use these in a search filter -
However, I can click the open with logging search link -
OCI Log Analytics
Let's try out the following query in Log Explorer -
'Log Source' = 'OCI Integration Activity Stream Logs' and 'Action Type' in (Abort) | stats distinctcount(Instance) as 'Aborted Flow Instances', trend(distinctcount(Instance))
Summa Summarum
AS my auld grandmother from the Monaghan/Armagh border used to say - there's many ways to skin a cat!
I hope you find the observability options I've covered useful. Next step is to raise an alarm on aborted instances, the topic of a future post.

No comments:
Post a Comment