APIからレプリケーションの最新の実行件数を取得するサンプルスクリプト[C#] [Syniti DR (DBMoto)]


今回はスクリプトの例として、Synitiのコンソールから参照可能なレプリケーションの最新の実行件数を取得するAPIを紹介します。

SynitiではC#やVBの各APIを使用してレプリケーションを制御することが可能です。
開発環境の準備については以下をご参照ください。
API(C#, VB, C++)の開発環境構築手順

参考:外部からレプリケーションやグループを開始・停止するサンプルC#プログラム
参考:APIからリフレッシュを実行するサンプルスクリプト[C#]

実行件数を取得するには、Synitiのインストールフォルダにある“C:\Program Files\Syniti\Data Replication V9\providers.xml”“プロジェクト名\bin\Debug”にコピーする必要があります(開発環境構築手順を参照)。

今回取得するのはコンソールの以下で表示される箇所です。

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["レプリケーション名"];

                // 最終結果
                Console.WriteLine(repl.ReplLastExit);
                // 失敗したレコード数
                Console.WriteLine(repl.Forth.FailedRecords);
                // 成功したレコード数
                Console.WriteLine(repl.Forth.ProcessedRecords);
                // 総レコード数
                Console.WriteLine(repl.Forth.TotalRecords);

            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                if (currentMetadata != null)
                {
                    currentMetadata.Unload();
                }

                if (dbmServer != null)
                {
                    dbmServer.Disconnect();
                }

                if (dbmApp != null)
                {
                    dbmApp.Dispose();
                }
            }
        }
    }
}

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください