Activate, Refresh, and Compare Interface
Check replication activation status of channels
GET/api/v6.1/hubs/{hub}/activate
| Query parameters | Prototype:
'channels' ?: ( chn+ )
'locs' ?: ( loc+ )
|
| Request headers | None |
| Request body | None |
| Response headers | None |
| Response body (JSON) | Prototype:
chn *: {
loc +: {
'enroll' ?: {
'found' :
'missing' :
'tstamp' ?: oldest
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'jobs' : {
'found' :
'missing' :
'tstamp' ?: oldest
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
'running' ?:
'active_refresh_target' ?:
}
'router_files' : {
'found' :
'missing' :
'tstamp' ?: scan_start
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'state_tables' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'change_tables' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'triggers' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'db_procs' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'supplemental_logging' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'state_files' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
}
}
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request |
| Required permissions | ReadOnly access level on hub |
Check replication activation status of channel
GET/api/v6.1/hubs/{hub}/channels/{channel}/activate
| Query parameters | Prototype:
|
| Request headers | None |
| Request body | None |
| Response headers | None |
| Response body (JSON) | Prototype:
loc *: {
'enroll' ?: {
'found' :
'missing' :
'tstamp' ?: oldest
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'jobs' : {
'found' :
'missing' :
'tstamp' ?: oldest
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
'running' ?:
'active_refresh_target' ?:
}
'router_files' : {
'found' :
'missing' :
'tstamp' ?: scan_start
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'state_tables' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'change_tables' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'triggers' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'db_procs' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'supplemental_logging' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'state_files' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
}
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request |
| Required permissions | ReadOnly access level on hub |
Post an HVR activate event
POST/api/v6.1/hubs/{hub}/channels/{channel}/activate
| Query parameters | None |
| Request headers | None |
| Request body (JSON) | Prototype:
'locs' ?: ( + )
'tables' ?: ( + )
'parallel_locs' ?:
'components' ?: (
'state_tables'
| 'change_tables'
| 'triggers'
| 'db_procs'
| 'router_files'
| 'enroll'
| 'supplemental_logging'
| 'jobs'
| 'state_files'+
)
'start_immediate' ?:
'replace_enroll' ?:
'rewind_scan_start' ?: {
'tstamp' :
}
| {
'oldest_tx' :
}
'rewind_emit' ?: {
'tstamp' :
}
| {
'hvr_tx_seq' :
}
| {
'scn' :
}
| {
'integrate_point' : {
integloc +: {
'integ_hvr_tx_seq' :
'integ_hvr_tx_countdown' ?:
'burst_busy_table' ?:
'burst_busy_table_busy' ?:
'burst_busy_tx_seq' ?:
}
}
}
'start_next_jobs' ?: ( task+ )
'start_next_ev_ids' ?: ( ev_id+ )
|
| Response headers | None |
| Response body (JSON) | Prototype:
'posted_ev_id' :
'job' :
'canceled_ev_ids' ?: ( * )
|
| Status codes | ✅ 201 Created ❌ 400 Bad Request |
| Required permissions | ReadWrite access level on hub |
| Events | Creates the following event Activate
'locs' ?: ( + )
'tables' ?: ( + )
'parallel_locs' ?:
'components' ?: (
'state_tables'
| 'change_tables'
| 'triggers'
| 'db_procs'
| 'router_files'
| 'enroll'
| 'supplemental_logging'
| 'jobs'
| 'state_files'+
)
'start_immediate' ?:
'replace_enroll' ?:
'rewind_scan_start' ?: {
'tstamp' :
}
| {
'oldest_tx' :
}
'rewind_emit' ?: {
'tstamp' :
}
| {
'hvr_tx_seq' :
}
| {
'scn' :
}
| {
'integrate_point' : {
integloc +: {
'integ_hvr_tx_seq' :
'integ_hvr_tx_countdown' ?:
'burst_busy_table' ?:
'burst_busy_table_busy' ?:
'burst_busy_tx_seq' ?:
}
}
}
'start_next_jobs' ?: ( task+ )
'start_next_ev_ids' ?: ( ev_id+ )
|
Post Compare event and schedule a job for it
POST/api/v6.1/hubs/{hub}/channels/{channel}/compare
| Query parameters | None |
| Request headers | None |
| Request body (JSON) | Prototype:
'source_loc' :
'target_loc' :
'contexts' ?: ( + )
'granularity' ?: 'bulk' | 'rowwise'
'difference_filter' ?: {
'inserts' ?:
'updates' ?:
'deletes' ?:
}
'quota_run' ?: njobs
'parallel_sessions' ?:
'db_sequences' ?:
'slicing' ?: {
table *: {
'type' : 'boundary'
| 'count'
| 'modulo'
| 'series'
'col' ?:
'slices' ?:
'str_boundaries' ?: ( vals+ )
'int_boundaries' ?: ( vals+ )
'date_boundaries' ?: ( vals+ )
'series_values' ?: ( + )
'selection' ?: ( + )
}
}
'tables' ?: ( + )
'task' ?:
'context_variables' ?: {
name *: value
}
'file_preread_subtasks' ?:
'start_immediate' ?:
'online_compare' ?: 'diff_diff' | 'diff_cap'
'online_compare_sleep' ?:
'select_moment' ?:
'save_diff_file' ?:
'prereader_intermediate_files' ?: {
'keep' ?:
'reuse' ?:
}
|
| Response headers | None |
| Response body (JSON) | Prototype:
'posted_ev_id' :
'job' :
'canceled_ev_ids' ?: ( * )
|
| Status codes | ✅ 201 Created ❌ 400 Bad Request ❌ 403 Forbidden: User does not have Exec access |
| Required permissions | ReadExec access level on hub |
| Events | Creates the following event Compare
'channel' :
'source_loc' :
'target_loc' :
'contexts' ?: ( + )
'granularity' ?: 'bulk' | 'rowwise'
'difference_filter' ?: {
'inserts' ?:
'updates' ?:
'deletes' ?:
}
'quota_run' ?: njobs
'parallel_sessions' ?:
'db_sequences' ?:
'slicing' ?: {
table *: {
'type' : 'boundary'
| 'count'
| 'modulo'
| 'series'
'col' ?:
'slices' ?:
'str_boundaries' ?: ( vals+ )
'int_boundaries' ?: ( vals+ )
'date_boundaries' ?: ( vals+ )
'series_values' ?: ( + )
'selection' ?: ( + )
}
}
'tables' ?: ( + )
'task' ?:
'context_variables' ?: {
name *: value
}
'file_preread_subtasks' ?:
'start_immediate' ?:
'online_compare' ?: 'diff_diff' | 'diff_cap'
'online_compare_sleep' ?:
'select_moment' ?:
'save_diff_file' ?:
'prereader_intermediate_files' ?: {
'keep' ?:
'reuse' ?:
}
|
Get event ids for tables results of recent Compare
GET/api/v6.1/hubs/{hub}/channels/{channel}/compare/tables_results_ids
| Query parameters | Prototype:
'result_pattern' ?:
'source_loc' ?:
'target_loc' ?:
'table' ?: ( + )
'ev_tstamp_begin' ?:
'ev_tstamp_end' ?:
|
| Request headers | None |
| Request body | None |
| Response headers | None |
| Response body (JSON) | Prototype:
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request |
| Required permissions | ReadOnly access level on hub |
Show contexts and context variables
GET/api/v6.1/hubs/{hub}/channels/{channel}/contexts
| Query parameters | None |
| Request headers | None |
| Request body | None |
| Response headers | None |
| Response body (JSON) | Prototype:
'contexts' : ( * )
'context_variables' : ( varname* )
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request ❌ 404 Not Found: Channel does not exist |
| Required permissions | ReadOnly access level on hub |
Post an HVR deactivate event
POST/api/v6.1/hubs/{hub}/channels/{channel}/deactivate
| Query parameters | None |
| Request headers | None |
| Request body (JSON) | Prototype:
'locs' ?: ( + )
'tables' ?: ( + )
'parallel_locs' ?:
'components' ?: (
'state_tables'
| 'change_tables'
| 'triggers'
| 'db_procs'
| 'router_files'
| 'enroll'
| 'supplemental_logging'
| 'jobs'
| 'state_files'+
)
'start_immediate' ?:
|
| Response headers | None |
| Response body (JSON) | Prototype:
'posted_ev_id' :
'job' :
'canceled_ev_ids' ?: ( * )
|
| Status codes | ✅ 201 Created ❌ 400 Bad Request |
| Required permissions | ReadWrite access level on hub |
| Events | Creates the following event Deactivate
'locs' ?: ( + )
'tables' ?: ( + )
'parallel_locs' ?:
'components' ?: (
'state_tables'
| 'change_tables'
| 'triggers'
| 'db_procs'
| 'router_files'
| 'enroll'
| 'supplemental_logging'
| 'jobs'
| 'state_files'+
)
'start_immediate' ?:
|
Show open transactions
GET/api/v6.1/hubs/{hub}/channels/{channel}/locs/{loc}/capture_open_tx
| Query parameters | None |
| Request headers | None |
| Request body | None |
| Response headers | None |
| Response body (JSON) | Prototype:
'request_time' :
'request_tx_seq' ?:
'request_scn' ?:
'num_open_tx' :
'oldest_open_tx_begin_tstamp' ?:
'oldest_open_tx_begin_scn' ?:
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request |
| Required permissions | ReadOnly access level on hub |
Show integrate point
GET/api/v6.1/hubs/{hub}/channels/{channel}/locs/{loc}/integrate_point
| Query parameters | Prototype:
'orig_channel' ?:
'orig_integ_loc' ?:
|
| Request headers | None |
| Request body | None |
| Response headers | None |
| Response body (JSON) | Prototype:
caploc *: {
'scan_start_tstamp' :
'integ_tstamp' :
'integ_hvr_tx_seq' :
'integ_hvr_tx_countdown' ?:
'burst_busy_table' ?:
'burst_busy_table_busy' ?:
'burst_busy_tx_seq' ?:
}
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request ❌ 404 Not Found: Channel or Location does not exist |
| Required permissions | ReadOnly access level on hub |
Suggest slicing, based on old table results and Oracle DBMS stats
POST/api/v6.1/hubs/{hub}/channels/{channel}/locs/{loc}/slicing_suggest
| Query parameters | None |
| Request headers | None |
| Request body (JSON) | Prototype:
'rows_per_slice' ?:
'max_slices_per_table' ?:
'repeat_last_refresh_slicing' ?:
'repeat_last_compare_slicing' ?:
'suggest_from_last_refresh_rows' ?:
'suggest_from_last_compare_rows' ?:
'suggest_from_db_stats' ?:
'tables' ?: ( + )
|
| Response headers | None |
| Response body (JSON) | Prototype:
table *: {
'based_on' : 'no_data'
| 'repeat_last_refresh_slicing'
| 'repeat_last_compare_slicing'
| 'suggest_from_last_refresh_rows'
| 'suggest_from_last_compare_rows'
| 'suggest_from_db_stats'
'ev_id' ?:
'row_estimate' ?:
'no_slicing' ?:
'slicing' ?: {
'type' : 'boundary'
| 'count'
| 'modulo'
| 'series'
'col' ?:
'slices' ?:
'str_boundaries' ?: ( vals+ )
'int_boundaries' ?: ( vals+ )
'date_boundaries' ?: ( vals+ )
'series_values' ?: ( + )
}
}
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request ❌ 404 Not Found: Channel, location or table does not exist |
| Required permissions | ReadOnly access level on hub |
| Events | Creates no events. |
Suggest slicing boundaries based on Oracle DBMS stats. Can return empty
POST/api/v6.1/hubs/{hub}/channels/{channel}/locs/{loc}/tables/{table}/slicing_boundaries
| Query parameters | None |
| Request headers | None |
| Request body (JSON) | Prototype:
|
| Response headers | None |
| Response body (JSON) | Prototype:
'str_boundaries' ?: ( vals+ )
'int_boundaries' ?: ( vals+ )
'date_boundaries' ?: ( vals+ )
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request ❌ 404 Not Found: Channel, location, table or column does not exist |
| Required permissions | ReadOnly access level on hub |
| Events | Creates no events. |
Post Refresh event and schedule a job for it
POST/api/v6.1/hubs/{hub}/channels/{channel}/refresh
| Query parameters | None |
| Request headers | None |
| Request body (JSON) | Prototype:
'source_loc' :
'target_loc' :
'contexts' ?: ( + )
'granularity' ?: 'bulk' | 'rowwise'
'difference_filter' ?: {
'inserts' ?:
'updates' ?:
'deletes' ?:
}
'quota_run' ?: njobs
'parallel_sessions' ?:
'db_sequences' ?:
'slicing' ?: {
table *: {
'type' : 'boundary'
| 'count'
| 'modulo'
| 'series'
'col' ?:
'slices' ?:
'str_boundaries' ?: ( vals+ )
'int_boundaries' ?: ( vals+ )
'date_boundaries' ?: ( vals+ )
'series_values' ?: ( + )
'selection' ?: ( + )
}
}
'tables' ?: ( + )
'task' ?:
'context_variables' ?: {
name *: value
}
'file_preread_subtasks' ?:
'start_immediate' ?:
'create_tables' ?: {
'keep_structure' ?:
'force_recreate' ?:
'index' ?:
'keep_existing_data' ?:
'recreate_if_mismatch' ?:
}
'data_refresh' ?:
'fire_db_triggers' ?:
'foreign_keys' ?: 'ignore' | 'disable'
'select_moment' ?:
'online_refresh' ?: 'read_write' | 'write_only' | 'no_skip'
'start_next_jobs' ?: ( 'cap' | 'integ'* )
|
| Response headers | None |
| Response body (JSON) | Prototype:
'posted_ev_id' :
'job' :
'canceled_ev_ids' ?: ( * )
|
| Status codes | ✅ 201 Created ❌ 400 Bad Request ❌ 403 Forbidden: User does not have Write or Refresh access |
| Required permissions | ReadExecRefresh access level on hub |
| Events | Creates the following event Refresh
'channel' :
'source_loc' :
'target_loc' :
'contexts' ?: ( + )
'granularity' ?: 'bulk' | 'rowwise'
'difference_filter' ?: {
'inserts' ?:
'updates' ?:
'deletes' ?:
}
'quota_run' ?: njobs
'parallel_sessions' ?:
'db_sequences' ?:
'slicing' ?: {
table *: {
'type' : 'boundary'
| 'count'
| 'modulo'
| 'series'
'col' ?:
'slices' ?:
'str_boundaries' ?: ( vals+ )
'int_boundaries' ?: ( vals+ )
'date_boundaries' ?: ( vals+ )
'series_values' ?: ( + )
'selection' ?: ( + )
}
}
'tables' ?: ( + )
'task' ?:
'context_variables' ?: {
name *: value
}
'file_preread_subtasks' ?:
'start_immediate' ?:
'create_tables' ?: {
'keep_structure' ?:
'force_recreate' ?:
'index' ?:
'keep_existing_data' ?:
'recreate_if_mismatch' ?:
}
'data_refresh' ?:
'fire_db_triggers' ?:
'foreign_keys' ?: 'ignore' | 'disable'
'select_moment' ?:
'online_refresh' ?: 'read_write' | 'write_only' | 'no_skip'
'start_next_jobs' ?: ( 'cap' | 'integ'* )
|
Get event ids for tables results of recent Refresh
GET/api/v6.1/hubs/{hub}/channels/{channel}/refresh/tables_results_ids
| Query parameters | Prototype:
'result_pattern' ?:
'source_loc' ?:
'target_loc' ?:
'table' ?: ( + )
'ev_tstamp_begin' ?:
'ev_tstamp_end' ?:
|
| Request headers | None |
| Request body | None |
| Response headers | None |
| Response body (JSON) | Prototype:
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request |
| Required permissions | ReadOnly access level on hub |
Get event ids for tables results of recent Compare for all channels
GET/api/v6.1/hubs/{hub}/compare/tables_results_ids
| Query parameters | Prototype:
'channel' ?: ( + )
'result_pattern' ?:
'source_loc' ?:
'target_loc' ?:
'table' ?: ( + )
'ev_tstamp_begin' ?:
'ev_tstamp_end' ?:
|
| Request headers | None |
| Request body | None |
| Response headers | None |
| Response body (JSON) | Prototype:
channel *: {
ev_id *: ( table+ )
}
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request |
| Required permissions | ReadOnly access level on hub |
Check replication activation status of loc
GET/api/v6.1/hubs/{hub}/locs/{loc}/activate
| Query parameters | None |
| Request headers | None |
| Request body | None |
| Response headers | None |
| Response body (JSON) | Prototype:
chn *: {
'enroll' ?: {
'found' :
'missing' :
'tstamp' ?: oldest
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'jobs' : {
'found' :
'missing' :
'tstamp' ?: oldest
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
'running' ?:
'active_refresh_target' ?:
}
'router_files' : {
'found' :
'missing' :
'tstamp' ?: scan_start
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'state_tables' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'change_tables' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'triggers' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'db_procs' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'supplemental_logging' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
'state_files' ?: {
'lossy_reactivate' :
'activating' ?: jobstate
'deactivating' ?: jobstate
}
}
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request |
| Required permissions | ReadOnly access level on hub |
Get event ids for tables results of recent Refresh for all channels
GET/api/v6.1/hubs/{hub}/refresh/tables_results_ids
| Query parameters | Prototype:
'channel' ?: ( + )
'result_pattern' ?:
'source_loc' ?:
'target_loc' ?:
'table' ?: ( + )
'ev_tstamp_begin' ?:
'ev_tstamp_end' ?:
|
| Request headers | None |
| Request body | None |
| Response headers | None |
| Response body (JSON) | Prototype:
channel *: {
ev_id *: ( table+ )
}
|
| Status codes | ✅ 200 OK ❌ 400 Bad Request |
| Required permissions | ReadOnly access level on hub |