Skip to main content
edited title
Link

symmetricds 3 tiers one way registration problem

Source Link

3 tiers one way registration problem

i am trying to setup a one way 3 tiers replication using symmetricds like so enter image description here

the company, intermediate, web servers have respectively these ip addresses

192.168.173.1 /
192.168.173.15 /
192.168.173.16

the engines folder in the intermediate server contain these two node files

engine.name=company-000

db.driver=org.firebirdsql.jdbc.FBDriver
db.url=jdbc:firebirdsql:192.168.173.1/3050:c:/bdd/replications/source/D2018.gdb

db.user=SYSDBA
db.password=masterkey

registration.url=http://192.168.173.15:8080/sync/company-000
sync.url=http://192.168.173.15:8080/sync/company-000

group.id=company
external.id=000
job.purge.period.time.ms=7200000
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
initial.load.create.first=true


engine.name=interm-001

db.driver=org.firebirdsql.jdbc.FBDriver
db.url=jdbc:firebirdsql:192.168.173.15/3050:c:/bdd/replications/D2018.gdb

db.user=SYSDBA
db.password=masterkey

registration.url=http://192.168.173.15:8080/sync/company-000
sync.url=http://192.168.173.15:8585/sync/interm-001

group.id=interm
external.id=001
job.purge.period.time.ms=7200000
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
initial.load.create.first=true

made the basic setup

insert into sym_node_group (node_group_id, description) 
values ('company', 'company server');
insert into sym_node_group (node_group_id, description) 
values ('interm', 'interm server');
insert into sym_node_group (node_group_id, description) 
values ('web', 'web');

insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action)
values ('company', 'interm', 'W');
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action)
values ('interm', 'web', 'W');

insert into sym_node (node_id, node_group_id, external_id, sync_enabled)
values ('000', 'company', '000', 1);
insert into sym_node_identity values ('000');

insert into sym_channel 
(channel_id, processing_order, max_batch_size, enabled, description)
values('all_tables', 1, 100000, 1, 'All the tables');

insert into sym_trigger 
(trigger_id,source_table_name,channel_id,last_update_time,create_time, sync_on_incoming_batch)
values('all_tables','*','all_tables',current_timestamp,current_timestamp, 1);

insert into sym_router 
(router_id,source_node_group_id,target_node_group_id,router_type,create_time,last_update_time)
values('company_2_interm', 'company', 'interm', 'default',current_timestamp, current_timestamp);
insert into sym_router 
(router_id,source_node_group_id,target_node_group_id,router_type,create_time,last_update_time)
values('interm_2_web', 'interm', 'web', 'default',current_timestamp, current_timestamp);

insert into sym_trigger_router 
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('all_tables','company_2_interm', 100, current_timestamp, current_timestamp);
insert into sym_trigger_router 
(trigger_id,router_id,initial_load_order,last_update_time,create_time)
values('all_tables','interm_2_web', 100, current_timestamp, current_timestamp);

and launched the company and intermediate engines and allowed registration like so

"..\bin\sym"  --engine company-000 --port 8080
"..\bin\sym" --engine interm-001 --port 8585
"..\bin\symadmin" --engine company-000 open-registration interm 001

and it worked so if i make a change in the company server database it replicate to the intermediate server .

now i want to replicate the changes from the intermediate server to the web server the web server contain this

engine.name=web-002

db.driver=org.firebirdsql.jdbc.FBDriver
db.url=jdbc:firebirdsql:192.168.173.16/3050:c:/bdd/replications/D2018.gdb

db.user=SYSDBA
db.password=masterkey

registration.url=http://192.168.173.15:8585/sync/interm-001
sync.url=http://192.168.173.16:9696/sync/web-002

group.id=web
external.id=002

job.purge.period.time.ms=7200000
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
initial.load.create.first=true

but if if i launch this engine it cannot register , saying in the companay and virtual nodes that it's not allowed .

i have tried both

"..\bin\symadmin" --engine company-000 open-registration web 002
"..\bin\symadmin" --engine interm 001 open-registration web 002

also tried to make the registration url for the web node as the main company server any idea, help is welcome .

thanks .