...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
StatMap Sync – the synchronisation proxy
Overview
Sync is used in environments where data synchronisation between data stores is required. The most common case is an isolated StatMap Aurora environment with its dedicated database which requires data to be transferred from and to the main database store on regular basis. Sync is also incorporated into StatMap Comet software and allows this application to pull/push data between its local database and the master environment’s database. Sync acts as a proxy application for the two environments which cannot communicate directly.
...
- TCP port 80 must be open on source/target server.
- Synchronisation service (synchronizationsevice.svc) must be accessible from outside the server hosting the source/target environment.
- Due to a possible necessity of transferring large files (up to 1GB) any limitations on size of single file upload/download should be disabled on both servers.
Configuration
sync.xml
Let’s start with the sync.xml file which is the configuration file for the synchronisation process.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?xml version="1.0" encoding="utf-8"?> <Synchronizer> <SourceSynchronizationService>http://local/map/SynchronizationService.svc</SourceSynchronizationService> <SourceDeviceId>Test</SourceDeviceId> <SourceRepository>Main Repository</SourceRepository> <TargetSynchronizationService>http://remote/map/SynchronizationService.svc</TargetSynchronizationService> <TargetDeviceId>Aurora</TargetDeviceId> <TargetRepository>Main Repository</TargetRepository> <Profile>default</Profile> <WorkingDirectory></WorkingDirectory> <Debug>false</Debug> <ResultPollIntervalInSeconds>10</ResultPollIntervalInSeconds> </Synchronizer> |
Description of each element can be found below:
SourceSynchronizationService | This entry contains the URL address of synchronisation service of the local (source) environment. |
SourceDeviceId | The designation of the source environment. It can be found in the environment’s web.config. It is the value of the <ThisServerId> entry e.g.: |
SourceRepository | The repository (source database) from which the tables requested to be synchronised are read. Please leave as is. |
TargetSynchronizationService | This entry contains the URL address of synchronisation service of the remote (target) environment. |
TargetDeviceId | The designation of the target environment. It can be found in the target environment’s web.config. It is the value of the <ThisServerId> entry similar to the SourceDeviceId. |
TargetRepository | The repository (destination database) to which the tables requested to be synchronised are written. Please leave as is. |
Profile | This is the synchronisation profile which will be used during the synchronisation process to determine what data should be transferred. Synchronisation profiles are configured on the source environment in Earthlight. The tool Devices on Administration tab is used for this. |
WorkingDirectory | Points sync software to a directory where operational data is written during synchronisation process. If not set the temporary data folders are created within the Sync main folder. |
Debug | This is an optional parameter which increases the granularity of synchronisation progress logging. |
ResultPollIntervalInSeconds | This is an optional parameter which controls the time interval (in seconds) between requests for individual task completion. If not set the requests are send every 2 seconds. |
sync.bat
Sync.bat batch file, located next to the sync.exe program, is responsible for executing the application, pointing it to the configured file as well as redirecting the console output (synchronisation progress log) to a file.
1 | sync.exe sync.xml > sync_results.txt |
Explanation:
- sync.exe – synchronisation application
- sync.xml – configuration file
- sync_results.txt – synchronisation progress report file
sync_results.txt
Sync_result.txt is a text file which contains the progress report logged during the last synchronisation run. Successfully run synchronisation process should log the following entries at the end of its report:
...
If instead you see and error logged, please check the error message. In general errors require intervention of StatMap Support but errors described in the next section can be dealt with by you.
Known errors
1. Non-existent schema issue
This error is associated with multiple schemas. If you have multiple schemas in your source database it is required to re-create the schemas in the destination database. If a schema is absent or the user doesn’t have permission to access a schema a message is logged by Sync software in its report. If this occurs please create the schema in the destination database and re-run synchronisation process. Depending on the number of different schemas required in the destination database you may see the error again however it should be listing another schema. The message will look similar to the one below.
2. Communication issue on the target server
From time to time you may get the following communication error when running synchronisation process. The cause of this is being investigated but the best thing to do in this situation is to give it couple of minutes and re-run synchronisation.It seems that sometimes the target server denies data upload.
...