Pause/Resume OIC Integrations as per Oracle Fusion Patch Cycle

1. Summary

Lot of times we have a need to pause all OIC integrations, primarily for ex. when there are scheduled downtimes.

Below is a tentative, production‑ready solution design for managing pause and resume of scheduled integrations in Oracle Integration Cloud (OIC).

In this solution, integration state is persisted in a database table, enabling stronger consistency, transactional control, reporting, and operational governance. The solution supports controlled operational scenarios such as maintenance windows, downstream system outages, cut‑over activities, or disaster‑recovery exercises, ensuring predictable and auditable handling of OIC scheduled integrations.

2. Objectives

Primary Objectives

  • Pause all active, schedule‑based OIC integrations in a controlled and auditable manner
  • Resume previously paused integrations safely and consistently based on database state
  • Maintain a single source of truth for paused/resumed integration state

3. Scope

In Scope

  • OIC freeform scheduled integrations with active schedules
  • REST‑based interaction with OIC Integration APIs
  • Centralized persistence using a relational database table (e.g. Oracle DB, Autonomous DB, RDS)
  • Controlled resume operations driven by persisted integration state

Out of Scope

  • Event‑based or app‑driven integrations
  • Business process orchestration changes
  • Integration payload transformation logic

4. High‑Level Architecture

Logical Components:

  • OIC REST API Layer
    • Integration discovery
    • Schedule status management (pause/resume)
  1. Control Orchestration (OIC Integration / OCI Function / Script)
    • Looping and conditional execution
    • Transaction handling and retries
  • Database Layer
    • Persistent storage of pause/resume state
    • Query‑driven resume operations
    • Audit and reporting
  • Observability & Logging
    • Integration Insight / OCI Logging / APM
    • Error and execution tracking

4.1 Sequence Diagrams

4.1.1 Pause Scheduled Integrations – Sequence Flow

4.1.2 Resume Scheduled Integrations – Sequence Flow

4.1.3 Failure & Retry Handling – Sequence Flow

1 Control Orchestration        |        | POST pause / resume        vOIC REST API        |        | Error / Timeout        vControl Orchestration        |        | Retry (exponential backoff)        |        | Max retries exceeded        vDatabase        |        | UPDATE status = FAILED        | UPDATE error_message

5. Data Model Design

5.1 Integration Control Table

Table Name: OIC_INTEGRATION_SCHEDULE_CTRL

Column Name

Description

INTEGRATION_CODE

OIC integration identifier

INTEGRATION_VERSION

Integration version

INTEGRATION_NAME

Human‑readable name

ACTION

PAUSE / RESUME

CURRENT_STATUS

ACTIVE / PAUSED / RESUMED / FAILED

REQUESTED_AT

Timestamp of pause request

EXECUTED_AT

Timestamp of execution

EXECUTION_STATUS

SUCCESS / FAILED

ERROR_MESSAGE

Error details (if any)

REQUEST_ID

Execution correlation ID

COMMENTS

Operational reason or notes

Key Constraints:

  • Unique active pause record per integration

6. Detailed Functional Design

6.1 Pause Scheduled Integrations

Step 1: Discover Eligible Integrations

1 GET /ic/api/integration/v1/integrations?q={status:’ACTIVATED’,style:’freeform_scheduled’}&integrationInstance={OicInstanceName}

Filtering Logic:

  • scheduleApplicableFlag = true
  • scheduleDefinedFlag = true

Step 2: Fetch Schedule Details

GET /ic/api/integration/v1/integrations/{IntegrationCode}|{IntegrationVersion}/schedule?integrationInstance={OicInstanceName}

Proceed only if:

  • Schedule status = ACTIVE

Step 3: Persist Pause Intent (Database)

Insert or update record in OIC_INTEGRATION_SCHEDULE_CTRL:

  • ACTION = PAUSE
  • CURRENT_STATUS = ACTIVE
  • REQUESTED_AT = current UTC timestampThis ensures idempotency and prevents duplicate pause attempts.

Step 4: Pause Integration Schedule

POST /ic/api/integration/v1/integrations/{IntegrationCode}|{IntegrationVersion}/schedule/pause?integrationInstance={OicInstanceName}

Step 5: Update Execution Status (Database)

On success:

  • CURRENT_STATUS = PAUSED
  • EXECUTED_AT = timestamp
  • EXECUTION_STATUS = SUCCESS

On failure:

  • EXECUTION_STATUS = FAILED
  • ERROR_MESSAGE populated

6.2 Resume Scheduled Integrations

Step 1: Identify Integrations to Resume

Query database:

SELECT * FROM OIC_INTEGRATION_SCHEDULE_CTRLWHERE CURRENT_STATUS = ‘PAUSED’

Step 2: Resume Integration Schedule

POST /ic/api/integration/v1/integrations/{IntegrationCode}|{IntegrationVersion}/schedule/resume?integrationInstance={OicInstanceName}

Step 3: Update Resume Status (Database)

On success:

  • CURRENT_STATUS = RESUMED
  • ACTION = RESUME
  • EXECUTED_AT updated

On failure:

  • EXECUTION_STATUS = FAILED
  • ERROR_MESSAGE populated

7. Error Handling & Resilience

Scenario

Handling Strategy

OIC API failure

Retry with exponential backoff; update failure state

Partial execution

Continue processing remaining integrations

Database failure

Rollback transaction; retry execution

Duplicate execution

Prevented via primary key and status checks

8. Security Considerations

9. Audit & Observability

  • Database‑driven audit trail
  • Full lifecycle timestamps (requested, executed, resumed)
  • Supports reporting, dashboards, and compliance exports

10. Operational Usage Scenarios

  • Planned maintenance windows
  • ERP or downstream system outages
  • DR testing and cut‑over rehearsals
  • Controlled production freezes

11. Future Enhancements (Optional)

  • UI‑based operational console
  • Role‑based approval workflow before resume
  • Tag‑ or domain‑based pause control
  • Dry‑run and simulation mode
  • Notification via email / Teams / Slack

Leave a Reply

Your email address will not be published. Required fields are marked *