ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework アプリケーション開発ガイド

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

7.2.2 クエリ結果データの受信(RMI連携カスタムアダプター)

ここでは,RMI連携カスタムアダプターでのクエリ結果データの受信処理の基本的な流れについて,実装例を基に説明します。

 

実装例

public class RMI_ReceiveSample {
  public static void main(String[] args) {
    try {
      // 1. SDPサーバに接続
      SDPConnector con = SDPConnectorFactory.connect();
 
      // 2. 出力ストリームに接続
      StreamOutput o = con.openStreamOutput("GROUP","QUERY1");
 
      // 3. タプルを受信
      try {
        while(true) {
        ArrayList tupleList = o.getAll();
        }
      } catch (SDPClientEndOfStreamException e) {
        System.out.println("データ受信完了");
      } catch (SDPClientQueryGroupStateException e) {
        System.out.println("クエリグループ停止");
      }
 
      // 4. 出力ストリームとの接続を切断
      o.close();
 
      // 5. SDPサーバとの接続を切断
      con.close();
    } catch (SDPClientException e) {
      System.err.println(e.getMessage());
    }
  }
}
 

実装内容の説明

それぞれの処理の意味について説明します。番号は実装例中のコメントの番号に対応しています。

  1. SDPサーバに接続して,SDPConnector型オブジェクト(con)を取得します。
    SDPConnector con = SDPConnectorFactory.connect();
  2. SDPConnector型オブジェクト(con)を使用して,クエリグループ名が"GROUP",クエリ名が"QUERY1"の出力ストリームに接続し,StreamOutput型オブジェクト(o)を取得します。
    StreamOutput o = con.openStreamOutput("GROUP","QUERY1");
  3. StreamOutput型オブジェクト(o)を使用して,クエリ結果のタプル(tupleList)を取得します。
    ArrayList tupleList = o.getAll();
  4. 受信が完了したら,StreamOutput型オブジェクト(o)を使用して,出力ストリームとの接続を切断します。
    o.close();
  5. SDPConnector型オブジェクト(con)を使用して,SDPサーバとの接続を切断します。
    con.close();