Reputation: 2927
The syncronization works fine in both ways, but when a data is inserted into the server, before the client registers, that data is not synced.
My scripts:
--------------------------------------------------------------------------
-- Node Groups
------------------------------------------------------------------------------
insert into sym_node_group (node_group_id) values ('client');
------------------------------------------------------------------------------
-- Node Group Links
------------------------------------------------------------------------------
-- server sends changes to client when client pulls from server
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action, is_reversible)
values ('server', 'client', 'W', 0);
-- client sends changes to server when client pushes to server
insert into sym_node_group_link (source_node_group_id, target_node_group_id, data_event_action, is_reversible)
values ('client', 'server', 'P', 0);
------------------------------------------------------------------------------
-- Channels
------------------------------------------------------------------------------
insert into sym_channel
(channel_id, processing_order, max_batch_size, enabled, description)
values('XXX', 1, 100000, 1, 'Everything');
------------------------------------------------------------------------------
-- Routers
------------------------------------------------------------------------------
insert into sym_router
(router_id,source_node_group_id,target_node_group_id,router_type,create_time,last_update_time)
values('server_2_client', 'server', 'client', '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('client_2_server', 'client', 'server', 'default',current_timestamp, current_timestamp);
------------------------------------------------------------------------------
-- Triggers
------------------------------------------------------------------------------
insert into SYM_TRIGGER (trigger_id, source_table_name,
channel_id, last_update_time, create_time)
values ('client_2_server', '*', 'XXX', current_timestamp, current_timestamp);
insert into SYM_TRIGGER (trigger_id, source_table_name,
channel_id, last_update_time, create_time)
values ('server_2_client', '*', 'XXX', current_timestamp, current_timestamp);
------------------------------------------------------------------------------
-- SYM_TRIGGER_ROUTER
------------------------------------------------------------------------------
insert into SYM_TRIGGER_ROUTER (trigger_id, router_id, initial_load_order, create_time, last_update_time)
values ('client_2_server', 'client_2_server', 100, current_timestamp, current_timestamp);
insert into SYM_TRIGGER_ROUTER (trigger_id, router_id, initial_load_order, create_time, last_update_time)
values ('server_2_client', 'server_2_client', 200, current_timestamp, current_timestamp);
These are my server properties:
external.id=server
engine.name=server
sync.url=http://localhost:8080/sync/server
group.id=server
db.url=jdbc:h2:mem:serverdb;LOCK_TIMEOUT=60000
db.driver=org.h2.Driver
db.user=XXX
registration.url=
db.password=XXX
job.purge.period.time.ms=7200000
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
auto.registration=true
initial.load.create.first=true
auto.config.database=true
start.refresh.cache.job=true
auto.sync.triggers=true
auto.reload = true;
And this is my Java code:
URL url = classloader.getResource("server.properties");
ServerSymmetricEngine serverEngine = new ServerSymmetricEngine(new File(url.getPath()));
serverEngine.setDeploymentType("server");
holder.getEngines().put(properties.getProperty(ParameterConstants.EXTERNAL_ID), serverEngine);
servletContext.setAttribute(WebConstants.ATTR_ENGINE_HOLDER, holder);
serverEngine.setup();
serverEngine.start();
flyway.migrate();
serverEngine.syncTriggers();
How can I define to SymmetricDS that after a data is inserted to the server (master node), before the client registers, that it should send that data as well?
The only strange INFO log what i see is :
INFO [server-job-1] o.j.s.service.impl.RouterService - The 'MyChannel' channel for the 'server' node group has only default routers assigned to it. Change data won't be selected during routing
What does this mean?
Upvotes: 1
Views: 965