I’m trying to create a table on destination DB from source db using it’s load function. As a documentation SymmetricDS_load it should seed the table on the destination DB but it’s keep giving me this error
[master-engine] - DataService - Queueing up a load to node 002
[master-engine] - DataService - Cancelling load 7
[master-engine] - DataService - Table reload request submitted which does not have a valid trigger/router combination in sym_trigger_router. Request trigger id: 'pablo' router id: 'default' create time: 2024-11-25 03:48:35.72
[master-engine] - PushService - Push data sent to destination:002:002
My sym_router is:
router_id | target_catalog_name | target_schema_name | target_table_name | source_node_group_id | target_node_group_id | router_type | router_expression | sync_on_update | sync_on_insert | sync_on_delete | use_source_catalog_schema | create_time | last_update_by | last_update_time | description |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
destination to source | NULL | NULL | NULL | destination | source | default | NULL | 1 | 1 | 1 | 0 | 05:59.6 | NULL | 05:59.6 | NULL |
source to destination | NULL | NULL | simple_table | source | destination | default | NULL | 1 | 1 | 1 | 0 | 05:59.6 | NULL | 05:59.6 | NULL |
default | NULL | NULL | NULL | source | destination | default | NULL | 1 | 1 | 1 | 1 | 43:01.3 | NULL | 43:01.3 | NULL |
Sym_router_trigger:
trigger_id | router_id | enabled | initial_load_order | initial_load_select | initial_load_delete_stmt | ping_back_enabled | create_time | last_update_by | last_update_time | description | data_refresh_type |
---|---|---|---|---|---|---|---|---|---|---|---|
pablo | source to destination | 1 | 1 | NULL | NULL | 0 | 47:08.0 | NULL | 47:08.0 | NULL | NULL |
Sym_trigger:
trigger_id | source_catalog_name | source_schema_name | source_table_name | channel_id | reload_channel_id | sync_on_update | sync_on_insert | sync_on_delete | sync_on_incoming_batch | name_for_update_trigger | name_for_insert_trigger | name_for_delete_trigger | sync_on_update_condition | sync_on_insert_condition | sync_on_delete_condition | custom_before_update_text | custom_before_insert_text | custom_before_delete_text | custom_on_update_text | custom_on_insert_text | custom_on_delete_text | external_select | tx_id_expression | channel_expression | excluded_column_names | included_column_names | sync_key_names | use_stream_lobs | use_capture_lobs | use_capture_old_data | use_handle_key_updates | stream_row | time_based_column_name | create_time | last_update_by | last_update_time | description |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pablo | NULL | public | sample_table | default | reload | 1 | 1 | 1 | 1 | NULL | NULL | NULL | 1=1 | 1=1 | 1=1 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 0 | 0 | 1 | 1 | 0 | NULL | 12:41.0 | NULL | 12:41.0 | NULL |
It’s not working until I create the table on destination by manually. BTW it’s Postgres to Oracle.
2
Answers
I just found that the cause of the error is I misconfigured the router_id. It was default -> source to destination
and I have now error that
Error Message = ORA-00942: table or view does not exist. It should create the table on the destination right?
You will need to request the tables are created as part of the load request.
This is done by setting the following parameter to true:
If this parameter is set in the engine file, then a restart will be required. If it is set in the database, no restart will be required.
This will send the creation of each table to the target before sending the data.