トランザクショナル分散オブジェクト基盤 TPBroker Object Transaction Monitor プログラマーズガイド

[目次][索引][前へ][次へ]

4.8.2 TSCWatchTimeを利用するサーバアプリケーションの例(Java)

TSCWatchTimeを利用するサーバアプリケーションの処理の流れとコードの例を示します。斜体で示しているコードは,雛形クラスとして自動生成される部分です。太字で示しているコードは,同期型呼び出しのコードと異なる部分です。

サーバアプリケーションの作成時には,ユーザは,自動生成された雛形クラスABC_TSCimplにTSCユーザオブジェクトのコードを記述します。また,雛形クラスABC_TSCfactimplにTSCユーザオブジェクトファクトリのコードを記述します。

<この項の構成>
(1) TSCユーザオブジェクト(ABC_TSCimpl)のコード
(2) TSCユーザオブジェクトファクトリ(ABC_TSCfactimpl)のコード
(3) サービス登録処理の流れ・コード

(1) TSCユーザオブジェクト(ABC_TSCimpl)のコード

 
//
// "ABC_TSCimpl.java"
//
import OctetSeqHelper;
import OctetSeqHolder;
import JP.co.Hitachi.soft.TPBroker.TSC.TSCWatchTime;
 
 
// import classes used in this implementation, if necessary.
import java.lang.System;
 
public class ABC_TSCimpl extends ABC_TSCsk
{
  // Write class variables, if necessary
 
  public ABC_TSCimpl()
  {
    // Constructor of implementation.
    // Write user own code.
    super();
 
    ////////
    //時間監視の処理
    ////////
    TSCWatchTime watch_time = null;
    try
    {
      //監視時間60秒の時間監視オブジェクト生成
      watch_time = new TSCWatchTime(60);
 
      //時間監視の開始
      watch_time.start();
 
      //TSCユーザオブジェクトのコンストラクタのコードを記述します。
      //引数の数および型を変更できます。
 
      //時間監視の中断
      watch_time.stop();
    }
    catch(TSCSystemException se)
    {
      //例外処理
      System.out.println(se);
      throw se;
    }
 
};
 
  public void call(byte[] in_data, OctetSeqHolder out_data)
 
  {
    // Operation "call".
    // Write user own code.
    //ユーザメソッドのコードを記述します。
 
    //メソッドが呼ばれた回数を増加させます。
    //(このメソッドの処理は引数の値と無関係です)
    m_counter++; 
    out_data.value = new byte[4];
 
    };
 
  //メソッドが呼ばれた回数
  protected int m_counter = 0;
 
};

(2) TSCユーザオブジェクトファクトリ(ABC_TSCfactimpl)のコード

同期型呼び出しの場合と同様です。「4.2.2(2) TSCユーザオブジェクトファクトリ(ABC_TSCfactimpl)のコード」を参照してください。

(3) サービス登録処理の流れ・コード

同期型呼び出しの場合と同様です。「4.2.2(3) サービス登録処理の流れ」,「4.2.2(4) サービス登録処理のコード」を参照してください。