ページの先頭行へ戻る
Symfoware Server V11.1.0 アプリケーション開発ガイド(.NET Data Provider編)
FUJITSU Software

A.2.12 CommandTimeoutプロパティでの実行時間の監視

CommandTimeoutプロパティで実行時間の監視を行うためのサンプルコードについて説明します。

アプリケーションの手順

  1. SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.2.1 接続および切断”を参照してください。

  2. SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへ問合せ式を設定します)

  3. SymfowareCommand. CommandTimeoutプロパティでタイムアウトの時間を設定します。

  4. SymfowareCommand.Connectionプロパティは、SymfowareConnectionオブジェクトを関連します。

  5. SymfowareDataReaderオブジェクトよりデータを取得します。

  6. タイムアウトが発生したかどうか判定します。

  7. タイムアウト発生を通知します。

  8. コネクションを切断します。

  9. オブジェクトを破棄します。

エラー処理については、“A.2.8 エラー処理”を参照してください。

try
{
    // SymfowareConnectionオブジェクトの生成
    SymfowareConnection con = new SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;" +
"INITIAL CATALOG=TEST;USER ID=USER01;PASSWORD=PASS01");
    SymfowareDataReader reader = null; 
    // 1. コネクション接続
    con.Open();
    // 2. SymfowareCommandオブジェクトの生成
    SymfowareCommand com = new SymfowareCommand("SELECT * FROM SAMPLE1.TESTTBL", con); 
    // 3. SymfowareCommandオブジェクトのCommandTimeoutプロパティを設定する
    com.CommandTimeout = 10; 
    // 4. SymfowareConnectionオブジェクトと関連
    com.Connection = con; 
    try
    {
        // 5. SymfowareDataReaderオブジェクトよりデータを取得します。
        reader = com.ExecuteReader();
        // データを取得処理ルーチンを記述。“A.2.2 SymfowareDataReaderでの参照”を参照。
    }
    catch (SymfowareException ex) 
    {
        // 6. タイムアウトが発生したかどうか判定する方法
        if(string.Equals(ex.SQLState, "61000"))  
        {
            // 7. タイムアウト発生を通知する
            Console.WriteLine("検索結果の件数が多すぎるため、タイムアウトが発生しました");
        }
        else
        {
            throw ex
        }
    }
    finally
    {
        // 8. コネクション切断
        con.Close();
        // 9. オブジェクトの破棄
        com.Dispose();
        con.Dispose();
    }
}
// エラ-処理
catch (Exception e1)
{
    // エラー処理ルーチンを記述
}