Hallo,
i'm using dotConnect for Oracle and dotConnect for SQLite to sync an huge Oracle database with an SQLite database using a windows service. By starting the windows service started the sync process.
The Oracle 19c server and the windows service are on the same network but different servers with a very fast and stable connection between.
The problem is that all sync steps are very slow:
1- Adding the syncTables descriptions to the scope description: syncTables is a string array with tables names (163 Table)
DbSyncScopeDescription databaseScopeDescription=new DbSyncScopeDescription(provisioningScope);
DbSyncTableDescription databaseTableDescription = new DbSyncTableDescription();
foreach (string table in syncTables)
{
databaseTableDescription=Devart.Data.Oracle.Synchronization.OracleSyncDescriptionBuilder.GetDescriptionForTable(table,oracleConnection);
databaseScopeDescription.Tables.Add(databaseTableDescription);
}
this step takes up to 5 seconds for each table.
2- Apply the provisioning:
OracleSyncScopeProvisioning oracleProvisioning = new OracleSyncScopeProvisioning(oracleConnection, databaseScopeDescription);
if (!oracleProvisioning.ScopeExists(provisioningScope))
{
sipOracleProvisioning.Apply();
}
this step takes up to 15 minutes.
3- Synchrinize:
SyncOrchestrator syncOrchestrator = new SyncOrchestrator();
OracleSyncProvider oracleSyncProvider = new OracleSyncProvider(provisioningScope, oracleConnection, null, null);
syncOrchestrator.RemoteProvider = oracleSyncProvider;
syncOrchestrator.Direction = SyncDirectionOrder.Download;
SQLiteSyncProvider sqliteSyncProvider = new SQLiteSyncProvider(provisioningScope, sipSqliteConnection, null, null);
syncOrchestrator.LocalProvider = sqliteSyncProvider;
SyncOperationStatistics syncOperationStatistics = syncOrchestrator.Synchronize();
The problems here are:
1- The syncing takes a very long time but the sqlite database has no new data.
2- The RAM of the windows service becomes larger and larger (up to 4 GB).
3- At the end throws the windows service an OutOfMemoryException.
Please note:
1- The process not worked with 3 oracle databases.
2- I tried the process with a very large SQLServer database and worked very fast and reliable.
Thank you!