SynitiではC#やVBの各APIを使用してレプリケーションを制御することが可能です。
開発環境の準備については以下をご参照ください。
参考:外部からレプリケーションやグループを開始・停止するサンプルC#プログラム
本記事では、APIからリフレッシュ(全件転送)を実行するためのサンプルスクリプトを紹介しています。
これを使用することでバッチや外部のプログラムと連携してリフレッシュを実行することが可能です。
using System;
using HiTSoftware.DBMoto.Application;
using HiTSoftware.DBMoto.ObjectModel;
namespace APISamples
{
class SampleRefresh
{
static void Main(string[] args)
{
DBMotoApplication dbmApp = null;
IServer dbmServer = null;
IMetadata currentMetadata = null;
try
{
// 初期設定、サーバ接続
dbmApp = DBMotoApplication.Instance;
dbmServer = dbmApp.Servers["local"];
dbmServer.Connect();
// カレントメタデータのロード
currentMetadata = dbmServer.Metadatas.DefaultMetadata;
currentMetadata.Load(true);
// レプリケーション名を指定
IReplication repl = currentMetadata.Replications["レプリケーション名"];
// レプリケーション無効化
if (repl.ReplStatus != ReplStatus.Disabled)
{
currentMetadata.Replications.Save(repl, false);
repl.AsynchDisable();
// 待機
System.Threading.Thread.Sleep(3000);
}
// リフレッシュ有効化
currentMetadata.Replications.Save(repl, false);
repl.AsynchSetInitialRefresh(true);
// 待機
System.Threading.Thread.Sleep(3000);
// レプリケーション有効化
currentMetadata.Replications.Save(repl, false);
repl.AsynchEnable();
// 待機
System.Threading.Thread.Sleep(3000);
currentMetadata.Replications.Save(repl, false);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
if (currentMetadata != null)
{
currentMetadata.Unload();
}
if (dbmServer != null)
{
dbmServer.Disconnect();
}
if (dbmApp != null)
{
dbmApp.Dispose();
}
}
}
}
}
関連したトピックス
- [DBMoto API]外部からレプリケーションやグループを開始・停止するサンプルC#プログラム
- APIからレプリケーションの最新の実行件数を取得するサンプルスクリプト[C#] [Syniti DR (DBMoto)]
- APIからレプリケーション結果の検証やデータ整合を実行するサンプルスクリプト[C#] [Syniti DR (DBMoto)]
- Syniti Data Replication (旧DBMoto)でのスクリプトの書き方⑤:フィールドマッピング関数の書き方
- レプリケーションの際にnullを特定の値に変換する方法 その2【リアルタイムレプリケーションツールDBMoto】
- [DBMoto][スクリプト]条件付きレプリケーションを行うサンプルVBスクリプト
- レプリケーションの際にnullを特定の値に変換する方法 その1【リアルタイムレプリケーションツールDBMoto】
- 2つのソーステーブルからターゲットの一つのレコードにレプリケーション
- [DBMoto]リフレッシュ中に問題が起きたときのタイムロスを防ぐには「リフレッシュリカバリ」
- Syniti Data Replication (旧DBMoto)でのスクリプトの書き方③:グローバルスクリプト用の関数とイベント