Oracle GoldenGate · Arazzo Workflow

Oracle GoldenGate Provision Distribution Path

Version 1.0.0

Create a distribution path, confirm it, and poll its statistics until data flows.

1 workflow 1 source API 1 provider
View Spec View on GitHub CDCData IntegrationData SynchronizationDatabaseEnterpriseReal-Time ReplicationArazzoWorkflows

Provider

oracle-goldengate

Workflows

provision-distribution-path
Create a distribution path and verify data is flowing through it.
Creates a distribution path from a source trail to a target receiver, confirms it, and polls statistics until bytes have been processed.
3 steps inputs: authorization, distpath, source, target outputs: bytesProcessed, messagesProcessed, pathName
1
createPath
createDistributionPath
Create the distribution path from the source trail to the target receiver.
2
getPath
getDistributionPath
Retrieve the distribution path to confirm its configuration.
3
pollStats
getDistributionPathStats
Poll the path statistics until bytes have been processed, looping while no data has flowed yet.

Source API Descriptions

Arazzo Workflow Specification

oracle-goldengate-provision-distribution-path-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Oracle GoldenGate Provision Distribution Path
  summary: Create a distribution path, confirm it, and poll its statistics until data flows.
  description: >-
    Provisions a distribution path that moves a source trail to a target
    receiver. It creates the path, retrieves it to confirm the configuration,
    and polls the path statistics until bytes have been processed. Every step
    spells out its request inline so the flow can be read and executed without
    opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: goldengateApi
  url: ../openapi/oracle-goldengate-rest-api-openapi.yml
  type: openapi
workflows:
- workflowId: provision-distribution-path
  summary: Create a distribution path and verify data is flowing through it.
  description: >-
    Creates a distribution path from a source trail to a target receiver,
    confirms it, and polls statistics until bytes have been processed.
  inputs:
    type: object
    required:
    - authorization
    - distpath
    - source
    - target
    properties:
      authorization:
        type: string
        description: HTTP Basic Authorization header value.
      distpath:
        type: string
        description: Name of the distribution path to create.
      source:
        type: string
        description: Source trail file the path reads from.
      target:
        type: string
        description: Target receiver URL the path writes to.
  steps:
  - stepId: createPath
    description: Create the distribution path from the source trail to the target receiver.
    operationId: createDistributionPath
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: distpath
      in: path
      value: $inputs.distpath
    requestBody:
      contentType: application/json
      payload:
        source: $inputs.source
        target: $inputs.target
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      pathName: $response.body#/name
      pathStatus: $response.body#/status
  - stepId: getPath
    description: Retrieve the distribution path to confirm its configuration.
    operationId: getDistributionPath
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: distpath
      in: path
      value: $inputs.distpath
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
  - stepId: pollStats
    description: >-
      Poll the path statistics until bytes have been processed, looping while no
      data has flowed yet.
    operationId: getDistributionPathStats
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: distpath
      in: path
      value: $inputs.distpath
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      bytesProcessed: $response.body#/bytesProcessed
      messagesProcessed: $response.body#/messagesProcessed
    onSuccess:
    - name: noDataYet
      type: goto
      stepId: pollStats
      criteria:
      - context: $response.body
        condition: $.bytesProcessed == 0
        type: jsonpath
  outputs:
    pathName: $steps.createPath.outputs.pathName
    bytesProcessed: $steps.pollStats.outputs.bytesProcessed
    messagesProcessed: $steps.pollStats.outputs.messagesProcessed