SOASYNC is the client side Graphical Application for SOALIB. By using SOASYNC, end users may find consuming SOALIB services easy and quick. SOASYNC provides all the necessary Graphical options to consume SOALIB services without knowledge of how SOALIB works.
Sharing data among global partners.
backup databases over the Internet.
Use subset of a large database.
Controlled file and database sync.
Copy databases of different types.
Use Soasync as a paid data synchronization service.
Map database to a business partner's database with completely different database design.
Synchronize multi-server distributed web sites with databases and files.
SOASYNC can be run on operating systems like Windows, MAC and Linux. Simply download the product from http://www.soalib.com/download.html website and unzip the zip file into a folder named Soasync.
Start SOASYNC, you will be presented with a screen similar to the following:
Here is a reference to the visible buttons and menu items in SOASYNC.
Bind to service
Use this button to bind to the service that appears on the service URL combo box. A already bound service may be rebound. While the service binds, the progress bar at the bottom left progresses.
Log into SOALIB
Log into SOALIB after a successful bind (see the progress bar at the bottom right. If it is filled, the service is bound). After the user logs in, this icon will be disabled and the logout icon will be enabled.
Create SOALIB account by visiting http://soalib.com (in the Account page). Simply type in your name, email address and the verification code. If the username (email) does not exist, then an account will be created and email with password of the account will be emailed to the email address provide.
Provide the service URL http://soalib.us/soalib/services in the combo box at the top left corner of SOASYNC. Click on the bind button (the green outlet icon). This will bind with the service and a login dialog will appear. Enter the username and password sent by email and click on the Login button. If you get error during login or you forgot your password, then go to http://soalib.com Password recovery page to recover the password. A successful login will display message in the Message tab in the bottom view. Maximize the tab to view the messages from the server. This message is useful as it shows the features and limitations of the user account.
Change the randomly generated password which was sent by SOALIB to something which can be remembered easily. Select Account → Change Password menu item. In the change password dialog, enter the old password (which was used to login) and a the new password twice.
If the password is forgotten, it can be recovered from http://soalib.com Account page. Go to the Login page in the website and click on the Forgot your password? Link. This will take you through the password recovery process.
A tunnel is required for SOALIB to connect to a firewall protected database. Tunnel forwards the packets to the SOALIB service bi-directionally allowing connection to the database located in a local network inside a firewall. A SOALIB user may create only one tunnel for the username and service URL and only one tunnel may be ran in a PC. It is only necessary to create one tunnel per user and service URL. Tunnel is required in the following situations:
The database is not accessible outside of the firewall
The database have a dynamic IP address
The database works
Open the Tunnel dialog (Soasync → Tunnel or press CTRL+SHIFT+T). Choose SOAP Forwarding Tab. Other tunnel tabs may not be used with Online SOALIB.
Accept the default values (recommended) for the tunnel alias.
Leave Auto Trust option unchecked. The Auto Trust option is only used for a licensed SOALIB server hosted in a different environment other than the ONLINE SOALIB.
Hit the Save button. The tunnel will be saved with name soap and will appear in the Tunnel Name combo box.
Close the tunnel dialog. At any time the tunnel may be edited by selecting the tunnel from the Tunnel Name combo box. The selected tunnel may also be deleted by hitting the Delete button.
In the Tunnel Dialog, there are two ways (three ways in Windows Operating System) to start the tunnel. Start Internally button will start the tunnel within Soasync. The Tunnel will stop as soon as Soasync is exited. This option is recommended in the following cases:
To test a tunnel
Perform unscheduled database synchronization (one time)
If leaving SOASYNC running is not an issue
Note that, in the following, the internal tunnel is running as indicated in the Tunnel tab at the bottom of the screen. The tunnel can be stopped by pressing the Stop button and then restarted.
The second option is to start the Tunnel externally, outside Soasync in a shell. This the recommended option when the tunnel would have to be executed for a long term and Soasync may be exited at any time without affecting the tunnel. Because the Tunnel runs inside its own shell, this option is the best option to use when running a sync for a long time with periodic schedule. To stop the tunnel, go to the Tunnel view tab at the bottom and hit the stop button. The tunnel can also be stopped by traditional DOS way by pressing CTRL+C on the keyboard. While the tunnel is running, if the user logs out or reboots the PC, the tunnel have to be restarted again.
Finally, in Windows, there is the third launching mode of the tunnel as a windows service. In order to set the service, you must run the Soasync.exe by right clicking on it and choosing “Run as administrator” and come to the Tunnel dialog and click on the option Set as Windows Service check box. If the service is set, then you will see that the service is running. To start the windows service, simply press the button “Start Service” or go to Windows service panel and start the service manually.
In the windows service mode of the tunnel, the service will be started automatically each time the windows starts. In addition, the service keep on running even the user has logged out. This is the preferred (for windows) method of tunneling if database have to be synced periodically without interruption. A running tunnel will generate tunnel.log file, which will indicate an active running tunnel. To check if the service is running, click on the Start menu and type in the Search area “services” and hit enter. Find the name “SoalibTunneler” as shown below. If a new version of Soasync is downloaded or Soasync service was already running, the service must first be stopped.
To stop a running service, simply press the “Stop Service” button in the Tunnel dialog. The tunnel.log will give all the clues to the reason for a service not running or the status of the service like connectivity and error state. When tunnel is setup as a service, it is no longer required to run Soasync with administrative privilege. The service could be started or stopped using the Windows services (see above). Alternatively, the service may also be stopped by pressing the stop button in the Tunnel view.
All existing connections are visible on the right view (Connection view). The Refresh button (on top of the Connection view) reloads the connections from the server.
First, create a tunnel if not already created. See Managing Tunnel to create a tunnel.
Click on the (Connection key) or Soasync → Connection (CTRL+SHIFT+C) to open the connection dialog.
Enter the connection information. The name field should be an identifiable name. It is suggested that the name should be self descriptive about the connection. For example, in our example the name is given as accounts.oracle.vonhas.org, which is given to mean the accounts database in the oracle DBMS for the organization called vonhas. Any naming scheme could be taken by the user. Only alpha-numeric, underscore (_), at-the-rate sign (@), hypen (-), period (.) is allowed in the name.
The hostname must be a fully qualified database server host name or an IP address. Both IPv4 or IPv6 may be provided. The database server must be accessible locally. If the database is running within the firewall, which is usually the case, the Tunnel must be running and the Security must be defined in the Security field. If the host is globally accessible using a domain name or a static IP address, Security selection is not required. The second blank field right next it is the Alias field. It is not required to put an alias to this field, but it will become useful if you password protect the field. This means, the user is not allowed to change the setting once it is password protected. When a connection is password protected, the actual host information will not be visible, but the user interface will display the alias only.
The username is the database username, which must exist in the database. Again, there is a second field to enter an optional username alias to be displayed when the database connection is password protected.
Resource is the database name (must exist in the database). Again, there is a second field to enter an optional resource alias to be displayed when the database connection is password protected.
The password is the database password for the username entered above.
The Instance field is required for a number of databases. For example, Ingres can be run with multiple instances. Typically, this field is automatically enabled or disabled based on the database selection. If instance is required, the instance name have to be typed here. An alternate instance alias may also be typed to protect connection.
Port number is automatically selected when the Database combo box is selected. So, in our example, we selected Oracle from the Database combo box, the port number automatically changed to 1521, which is the default port of Oracle. If an alternate port is used other than the default port, the alternate port may be entered after choosing the Database first. Some file based database does not use a port number. In that case, the path name should be used.
Path is necessary for those databases for which there are no port numbers. For example, Microsoft Access, Dbase, Text and Binary files does not have port numbers. This field is automatically enabled or disabled based on the database selection. An optional path alias may also be defined for protection.
The Grammar field is a special field which can be used to access the database by directly entering the database access grammar, for example, the JDBC connect string. This is an advanced topic explained later in this chapter. A grammar alias may be defined for protection.
If supported, the Connection Pool option may be checked to pool the connection. Its use depends on the selected database. Most advanced database have connection pool.
Selection of Expiration is optional. Enter a future date when you want the connection to expire. An expired connection will be automatically deleted by SOALIB.
Connection timeout may also be entered if higher timeout value more than 120 seconds is required. Timeout value may not be less than 120 seconds.
If the database is within a firewall, the security must be selected. The name of the security is the name of the tunnel which is presently running. For example, if a tunnel named “soalib” is running, you should choose “soalib” from this drop down. If you select a different security, then the tunnel with that name should be ran instead. The security creates the binding with the tunnel and the connection so that the databases within the firewall is connected through the tunnel and passed to the remote SOALIB. Select the first option “No Security” is security is not desired. Security is not necessary for globally accessible databases with static IP and well defined domain name and is accessible through the Internet directly. Alternatively, for databases which are file based and not hosted in a server does not need a security. Attach the tunnel which was created for the username and the service URL. Tunnels created by a different user or for a different service URL may not be used.
Save the connection. The connection will appear on the Connection view on the right. Clicking on this connection will automatically expand the connection and show the details. The connection may be edited at any time (if not password protected) by selecting the connection name from the Name combo box.
A selected connection may also be deleted by hitting the delete button. NOTE that deleting connection deletes all its associated cache in the server which was used for incremental synchronization. If the connection is deleted and then re-created, the database will be synchronized entirely for the first time (for Checksum engine), thereafter incremental mode will be used.
Hitting the Options button extends the dialog box. The Read and Write check boxes allow the user to make the connection both read/write and alternatively read only or write only. If Password is checked, the connection may not be edited without entering a valid password. The unlock password may be entered in the Password field.
After entering the protection password and hitting save button will display the connection information without using the true hostname, username, password, database and port information, but replacing them with the alias (port becomes 0). This protection prevents a third person from modifying the connection or viewing connection information. In a multi department, multi-organization database, a connection may be shared in a protected mode so that the connection could not be modified and details are hidden.
There are a few buttons in the Connection View as listed below.
Load Database: Loads the database referred by the selected connection key.
Edit Key: Brings the connection edit dialog with the selected key information. From menu, use Soasync → Connections, or CTRL+SHIFT+C.
Reload Keys: Reloads all the keys from the server. If any connection information is edited or deleted asynchronously (for example, but a different Soasync or by code), then this operation brings the latest connection information.
Delete: Deletes the selected connection. A delete operation also deletes all associated cache related to the connection.
Once a connection is created and the tunnel running (if necessary), then connection could be made to the database.
If the database is running within the firewall in which SOASYNC is running and is not globally visible, the Tunnel must be started first. If the tunnel is not already running, start the tunnel. See Starting Tunnel section to start the tunnel.
Hit the “Load Database” button in the Connection View to obtain database metadata. SOALIB will contact the Tunnel to connect to the database. After a few seconds, the database metadata will be loaded into the Database View. See Troubleshooting section to solve problems obtaining metadata.
If you notice the tunnel activity, it will show that SOALIB connected to the database through the tunnel.
Database metadata tree appear in the left Database view. It displays the details of the data type and relationship information. Also note that the node of the database tree contain the database name followed by the connection name in square brackets.
Other database related operations in the Database View are as follows:
Reload Database:: Re-loads the selected database by skipping the cache. The first time the database is loaded is cached. Then every successive loads are loaded from the cache without reading the database. The reload operation physically connects to the database and loads it as it is done the first time. For a large database, this operation may be slow.
Remove: Removes the database tree from view. This does not physically delete the database or any portions of it. A remove operation also does not delete the cache.
SQL Query Editor: Launches a SQL query editor for the selected database. (See Query Editor section for more details).
HTML View: Displays the database information in HTML form, which can be printed.
PDF View: Displays the database information in PDF form.
In SOALIB, a mapper is a relationship between the source and the target databases. At sync time, a mapper is required to be provided. A mapper may be created manually but if the source and the target databases are similar, the mapping may also be generated automatically. To create a mapper the database metadata must first be loaded in the Database view. If you do not load the metadata, you will get an error message shown here.
Open the database metadata for which mapping is to be created. Mapping can be done on the same database or two different databases.
Select Soasync → Mapper (CTRL+SHIFT+M) or the button in the toolbar to open a Mapper dialog.
Choose the Source and the Target database for the connection. Because this is the first time the mapper is created, hit the New button.
If a mapper has been previously created, then select the mapper from the “Mappers Name” combo box and hit Open. Alternatively, a mapper may be uploaded from the PC by using the browse button. In either case, the respective mapper will be opened or a blank mapper is opened if New pressed.
Drag the source database from the Database View into the mapper's source area and drag the target database from the Database View into the mapper's target area. The mapper view will look like something like below.
Expand the Source and the Target database and drag the table or column from the Source to the Target which you would like to map. Mapping from Target to Source is not allowed. Alternatively, select the source table or column and the target table or column and click on the button to map the selection. Table can be mapped with a table, and column can be mapped to a column. During mapping, no consistency check is done. To check consistency, click on the Consistency button, .
If the mapper is to be used for bi-directional sync, the same mapper may be used. However, attention is required not to map a single source column to multiple target column or tables. For bi-directional sync, mapping must be one-to-one.
Mapped entries appear at the bottom table. These entries may be moved up or down by using the arrow buttons near the entries or by using the popup menu (right click on the entry).
Save the mapper when mapping is complete by hitting the SOALIB button, , At the prompt, enter a mapper name which should be descriptive enough on which database or keys or the kind of mapping it defines. In SOALIB mappers are independent of any databases. It is simply a relationship between two array of table structures. At Sync time, the consistency check is done to determine if the mapper (i.e., the mapping defined between the two table structures are valid) is consistent and valid for the two database connection keys selected during sync.
A mapper that is no longer required can be deleted from the mapper opening dialog by first selecting the mapper and hitting the Delete button..
Mappers may be printed by converting it to HTML or PDF. The HTML can be generated by hitting the preview button. The PDF report may be generated by hitting the PDF button. The mappers may be printed either from HTML or PDF report.
HTML View: Displays the mapping information in HTML form, which can be printed.
PDF View: Displays the mapping information in PDF form.
When the database design is upon referential integrity with foreign key and self reference, the user may set up their own sync ordering. If sync ordering is not provided by the user, SOALIB will determine the best sync ordering. Typically, SOALIB will do a good job in order the sync, but the user may over ride it. The user defined sync ordering tells the mapper which tables should be synced before the other. The user may set the manual sync order by hitting the manual ordering button, . This is a toggle button. If the button is in the pressed state, the manual ordering is active. With this state, move selected map using the four buttons: up, ,; down, ; top, and bottom, . Save the mapper to save the ordering.
Check consistency before saving by hitting the Consistency button, . Consistency check ensures that the mapper could be used for syncing the two databases. If consistency fails at sync time, the database will not be synced. Inconsistent map may be save in its inconsistent state allowing a mapper to be mapped my multiple people or at different sessions. But, consistency checks are always done prior to syncing.
Schedules allows to control sync at user defined schedules. Open the Schedule dialog by clicking on menu item Soasync → Schedule... There are three schedule option and all of which may be used to create the schedule at the same time. The first option is setting the date and time for the schedule to start. The second option is to set a delay in seconds. If there is already a date and time set, then the delay will simply append to the time (delaying the overall schedule). If the first option was not selected, then delay happens every time the schedule arrives. Third the periodic repetition the amount of seconds elapsed between each schedule.
For example, in the example above, the “every-one-minute” is created by setting a user defined delay of 60 seconds. In the other example, we have all options checked. This tells that the schedule will start at the specified date and time (May 26, 2014 at 6PM) after which there will be a 20 second delay then repeated weekly (without the initial 20 second delay). Note that the first two option, the date-time and the delay are only one time.The date-time shown is
the server date-time, not the date time in the PC. When scheduling start at specified date time, the server time should be considered. Server time is shown in the top of the dialog with the number of hours and minutes in lead (positive) or lag (negative) from the user's time.
Syncing is one of the main task of SOASYNC. Syncing requires that you have the connection key setup for source and the target databases and the databases are up and running and connectable through SOALIB. This would require that the source and target connection keys be tested at least once before first sync. If the database username, passwords, port or any other information changes, the connection keys must have to updated for sync to be successful.
A sync operation must need a mapper. As explained above, a mapper must be there which defines which tables and columns have to be synced. If a mapper is not created, one must first be created for syncing.
If the sync have to be running on a schedule, for example, periodically or at a certain date and time (with or without delay), then a schedule must also be created.
To setup a sync, first connect the source and target database using the respective connection key. Once they are connected, they will appear on the Database view on the left. Bring up the Sync dialog box by clicking on Soasync → Sync... Sync dialog have two tabs: Sync and Options. Sync tab defines the source and target databases, instance, mapper and schedule information. The Options tab defines the sync options. Select the source database key from the Source Key combo box. Similarly, select the target database key using the Target Key combo box. An instance name is simply an alpha-numeric (hypen, underscore, period are allowed) name which is used to identify the running instance. SOALIB can instantiate multiple syncs and therefore, a good identifiable name is recommended. Select a schedule, if scheduling is necessary then click the Schedule check box. Checking the schedule check box is necessary, otherwise scheduling will be ignored. Finally select the mapper which was used to define the mapping between the two databases.
Go to the Options tab and select the kind of sync to use. The options Real-Time Mode and the Snapshot Modes are for future use. Auto-Commit option commits whatever is partially synced even when the sync is not finished. Rollback On Failure overrides this option (i.e., Auto-Commit is ignored). In Rollback On Failure, the entire sync operation is done as a single transaction. If the sync does not finish, then all sync done during the transaction is rolled back. This is the preferred method of syncing when the database is tight on referential constraints. Retry On Failure option retries the sync operation one more time if sync fails the first time before giving up. This option should be chosen carefully as a retry operation will not necessarily lead to fixing the sync if the network or database failure happen. Lock Table On Sync option locks the table which is being synced to. This prevents other database users into writing into this table. Some times this option is useful when the priority of sync is more important than allowing the users to write into the database. Keep in mind that when sync a large table, this locking may persist for a longer time. Bidirectional Mode is one of the most important option as it allows bi-directional sync. In this mode, first source to target is synced. After successful sync, target to source is synced. Note that, in bi-directional mode, both the source and the target connection key should be Read/Write. Delta Sync is the default option which only syncs the changes in the rows of the tables. This option works very well in major databases. But small databases like Access, DBF, files (binary or text), etc. it determines the changes by loading the entire database and determines the changes by comparison. For major databases, the database is not loaded, but SOALIB uses the database specific functions or features to find the changed rows. Validation option validates the mapper against the database each time sync operation starts. Validation increases the time to sync and is an over to the sync periodic sync is chosen. If period sync is chosen, it is not necessary to validate the mapper against the database at each sync period due to the fact that it already validated the mapper in the previous successful sync. The better option is to make sure that the sync works and then turn off validation by clearing the Validation check box. Then the validation stop will be skipped. However, if periodic sync is not being used, it is always recommended to validate.
Advanced sync options are Fetcher Chunk Size, Delta Fetch Size and Mixer. Fetcher Chunk Size is a delta engine parameter which tell it to fetch the number of rows to fetch in a batch. The higher the chunk size, the less number of fetches needed to be done in order to finish sync. However, high fetch size would need more memory and may be slower for some databases. The optimal value is obtained by trial and error. The default value of 1000 usually works very well for most databases. For Enterprise Oracle with large memory, a value of 5000 have been tested to be quite good.
Delta Fetch Size is another delta engine parameter used during batch writing to the target database. Increasing the value will cause large batch of rows to be written into the database. However, increasing the value have the same drawback as the Fetcher Chunk Size option. The optimal value is again a trial and error issue. The default value of 1000 works well with most databases.
Mixer is an option to be available in the future which will allow data to be transformed during sync time. Details of this option will be available when this feature will be implemented.
Sync profile (the bottom portion of the sync dialog) provide and option to save the sync settings under a profile name. Choosing a good name to identify the sync settings is very helpful. To save the sync profile, hit Save. To delete it, hit Delete. To select a sync profile, simply select the item from the combo box. If a sync profile is chosen in which one of the source or target key (or both keys) is (are) not found, it will display a warning saying that the key was not found. This indicate that the database with that key is not loaded into SOASYNC. If the key exists, load the database from that key into SOASYNC to fix the error.
With all the steps completed above, Syncing can be started by simply pressing the Begin Sync button. As soon as sync starts, it will display a tab with title Sync [instance], where instance is the name of the instance of the sync. First SOALIB will attempt to connect to the source database. If there is a tunnel attached with the connection key, it will have some activity as can
be viewed in the tunnel.log or Tunnel View. After successful connection to the source database, attempt will be made to connect to the target database. Again there will be another tunnel activity if the target connection has tunnel security attachment. After connection to both databases, there will be a Validation step if the Validation option is chosen in the sync options. The actual sync will begin according to the order of the mapper. If the mapper order (the sync order) was user defined, each table will be synced in the forward direction first then in reverse direction. All the tables in the mapping will be synced in this form until the sync is done.
If a schedule was selected at a certain date or time (with or without delay), the sync window will not have any useful message until the sync actually starts at the schedule. If the sync was scheduled every day or at hours interval, the sync window may be closed and then the sync status could be check later. To do that, select the instance name from the Instances list box and double click it or hit the Show Output button. This will open the output windows in SOASYNC's main work view.
Periodic sync is one of the powerful feature of SOALIB. Once the sync is scheduled to run periodically, it will never stop until the user destroys the instance. Even SOALIB server were restarted by the host or even if the host reboots and SOALIB server restarts, periodic sync will automatically resume. Periodic sync preempts an overlapping sync. For example, if a sync was scheduled every 5 minute and one of the sync take more than 5 minute, SOALIB will blocks (prevents) all successive schedules until the present sync is complete. When the sync is complete, the block is removed. The missing sync schedules were never rescheduled, they are simply ignored.
There are several ways to increase the sync speed. If one large mapper which maps all the tables into the database is used, this is called the sequential approach. Sequential sync will always be slower than the parallel approach (discussed later) due to the fact that syncs of other tables does not happen until the previous table sync is done. To make sync in parallel, multiple instances with multiple schedule is required. The database designer should split the mapper into independent mapper and dependent mappers. An independent mapper have tables which does not change very often and does not rely on other tables or rely on tables within that independent mapper. The dependent mapper(s) are mapping which rely on dependent mapping. Because the independent mapping change slowly, the sync period should be longer (for example, hourly or daily) vs. the dependent mapper which could be synced minutely. By splitting the entire (database should be large enough to justify sync splitting) into multiple mapper and syncing each at different sync schedule and intervals will significantly increase the speed of sync.
Another point to note is that syncing via a Tunnel is always slower then connecting to the database directly. Direct connection to database obviously require and open port on the internet for SOALIB to connect to.
Batch sync allows multiple sync profiles to be batched for syncing sequentially one after another. Batches could also be scheduled like syncs. Similar to sync dialog, Batch sync dialog allows the user to choose any one of the schedules for sync, allow instance name entry, batch name selection. To create batch, the Batch Management tab will be used. If there were no previously created batch, then the Batch Name combo box will appear blank. Once a batch is create, it will appear in the Batch Name combo box.
Creating a batch requires sync profiles to be created first. Go to the Batch Management tab in the batch dialog. In the Profiles area on the left of the dialog tab you will see a list of sync profiles which you created. You may expand it for details by clicking on the profile.
First create a batch by typing a batch name. A batch name should be descriptive enough to tell the user what it does. Create the batch by hitting Create New Batch button. This will display an empty batch in the Batches list box. To include a profile in the batch, drag that profile into the batch name which you created in the list box. You can add multiple profiles into the batch. You can also reorder the batches by dragging up or down a batch (in the Batches list). Ordering the batches allows the user to prioritize the sync. The profile that appear at the top will be sync first and then successive sync will proceed. If an intermediate sync fails, sync will continue to the next profile in the batch.
A batch can be removed by right clicking on the batch and clicking Remove menu option. Similarly, a sync profile included in a batch can be removed by right clicking and hitting Remove.
Hit the Save button to save the newly created batch. In our example at the right there are two profiles created one syncing from source to the target and the other syncing from the target to the source. After the sync is complete, the source and the target will be in sync. Also note that the reason source (edu1) to target (edu2) is synced first was due to the order in the batch.
In the Sync tab, choose a schedule (if necessary) and check the Use Schedule check box to apply the schedule in the sync. If the sync is one time, then do not check the schedule check box. Enter an identifiable instance name. Select the batch name from the combo box. Hit the Sync button. This will open the Batch sync output tab window in SOASYNC's may view. Sync will progress from the first sync profile and then to the successive sync profiles. The output contains information about each individual sync within the batch. Presently, the only way to jump into each sync profile is to browse through the log. Search the text “[BATCH]” to jump into each entry of the batch (i.e., each sync profile.
File Explorer can be opened by clicking Soasync → File Explorer... menu item. This opens up a file explorer view in the Soasync's main work view. File Explorer is used to backup local PC files into the server and using SOALIB as an external storage device. Open Windows Explorer (for Windows), File Managers in Linux, Finder (in Mac OS X) and drag the files into the File Explorer. When you drop, the files get copied to the server from local hard drive. There is a limit on total space in SOALIB online (See http://soalib.com for details). To retrieve the files, drag the files from the File Explorer into your directory (or Desktop, etc.). The selected files are copied to the selected location. You can create directories in File Explorer and also double click to open the file with known extension.
File Explorer is a useful place to store files that is to be shared using mobile devices. Soasync Mobile can read the files which was saved through the PC and therefore sharing the files across PCs, mobile devices and other platforms.
As discussed in the Sync section above, to view the log of a running sync, one have to double click on the instance to view the log. However, all the log files are actually stored in the .logs directory of the SOALIB user's account. Expand the .logs folder all the way and you will find the log history of syncs and batch sync. This log is available even when the instance is destroyed. Simply double click on the log file to open the logs. The log file names for syncs would be the mapper name with .log extension. For batches, it would be batch name with .log extension.
Tunneling is how SOALIB server accesses databases and other resources in your network firewall protected network. Other than the SOAP tunnel, as discussed before, Peer Tunnel is the other kind of tunnel, which is faster than SOAP based tunnel. However, to use Peer Tunnel, connection must be guaranteed by the user to SOALIB at all time as long as sync is running or the tunnel is being used. If a temporary disconnection occur in Peer Tunnel, the entire sync will fail.
To setup Peer Tunnel, open the Tunnel dialog by clicking Soasync → Tunnel... and select Peer Forwarding tab. Use the default setting. The default setting should be Tunnel Server as soalib.us and Tunnel Port as 6661. Save the tunnel. You will notice that a Tunnel Name 'peer' will appear in the combo box. If you deselect Secured checkbox, tunnel will be faster, but the data transmission through it will be insecure.
You can now start the tunnel internally or externally as before or use this as a Windows service (in Windows). NOTE that to setup windows service, you must launch Soasync as an administrator.
If you are using Mac OS X or Linux, you can generate a start-tunnel.sh (start-tunnel.bat in Windows) by hitting the Start Externally button. When the external windows successfully starts the tunnel, go to the Soasync application directory to find this tunnel script. You can now run the tunnel by simply executing the script without needing Soasync. This script may be added in a Mac OS X or Linux startup script to automatically start this script when the OS boots. To stop the tunnel, go to Soasync's Tunnel View at the bottom and hit the Stop button of if in the command shell, press CTRL + C. The script file location should not be changed as it requires a few jar files and also, when the tunnel properties are changed, so will change the script.
When a tunnel successfully connect to a SOALIB service, it will display dots and exclamation mark (something like ..!..........!.....). If this pattern is not displayed, then the Tunnel is not properly connected to SOALIB. In that case, first stop the tunnel and then restart. If restart does not fix the problem, check if the web connection or proxy is working.
Open a browser and visit a search engine website (Google, Bing, Yahoo, etc.) and search something new to make sure that you can browse.
Re-open SOASYNC and bind with the service. If bind fails, this is the cause why the tunnel was not working. If you can browse but SOASYNC fails to bind is usually caused by firewall and/or proxy issue. In the rare case, SOALIB may be down.
One of the most common reason for Tunnel not working is when the tunnel is not attached in the connection key. So, open the connection key and edit it and make sure that the tunnel is attached and the tunnel that which is attached is running.
Multiple instance of SOASYNC will case tunnel to fail. Make sure that there is only one copy of SOASYNC running in the entire computer.
In Windows, make sure that the Tunnel is not running as a Windows service and also Externally or Internally at the same time. Tunnels will not run both Externally and Internally at the same time. Usually, for testing the tunnel, run the tunnel internally. Once it is working, run using other methods. For Windows, use it as Windows Service. For Linux or Mac OS X, use the script.
If, at any time, SOASYNC is automatically updated, a running tunnel should be stopped and then restarted.
The corporate firewall must allow connection be established using 6660 – 6669 ports, which is used by SOALIB for tunneling. The corporate firewall should open these ports to SOALIB servers.
Tunnel cannot work through a proxy in Tunnel is not supported. So, ports 6660 – 6669 and SOALIB server itself should not be under proxy. An exception should be provided to the soalib.us domain and its sub-domains in proxy setting.
A user can run a tunnel from a SOALIB user account only once. This means, if a Tunnel is already running inc Computer A, the user may install SOASYNC in Computer B and run the Tunnel again. In that case the tunnel in Computer A, which was properly running will fail, but the tunnel in Computer B will run properly. So, SOALIB tunnels runs the last running tunnel only. To reset the tunnel in Computer A, the user have to re-save the tunnel and the restart it.
Query Editor acts as an interface to execute queries on the connected databases. The query is written in the query editor window and execute button is pressed to execute the command. The output of the query is displayed below. In the following example, the output of the query has six rows and the rows are displayed below.
If a single mapper is to be shared among multiple users, this menu option may be used. You must be an administrator to use this option.
1. Login as administrator then select Mapper > Share Mapper when selected, a new editor appears.
2. Select a mapper from a user and select one or multiple users from the user list.
3. Share button is clicked finally to share the mapper among multiple users.
4. Filter button is clicked to open the advanced filtering window.
Sync filtering is a mode in which you may further filter the sync based on user defined column values. In the second column is displayed are the table names. Choose the column name from the third column and select the column for which you want a specific value. And put the value in the third 'Value' column. When syncing, the sync engine will sync only those values of the source table for which the column matches the selected value of the table and column. Sync filtering is very useful when you have on central database that contain information of all sites, but each client site just need to sync only portions of the whole database based on site values.