ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework アプリケーション開発ガイド
データ受信APは,Stream Data Platform - AFのコマンドでは終了できないため,データ受信APの中で終了処理を実装しておく必要があります。
ここでは,データ受信APを終了するための契機をデータ受信APで把握するための実装について説明します。ここで説明する方法は,ストリームデータ処理エンジンであらかじめ送信ストリームデータの終了契機がわかる,次のような業務に使用できます。
データ受信APは,ストリームデータ処理エンジンでクエリが実行されている間,結果データの受信を繰り返し実行します。データ受信APを終了するためには,次の状態をデータ受信APで把握する必要があります。
データ受信AP側では,これらの状態をデータ受信API(getメソッドまたはgetAllメソッド)呼び出し時に発生する例外SDPClientEndOfStreamExceptionまたは例外SDPClientQueryGroupStopExceptionをキャッチすることで把握できます。これらの例外をキャッチしたことを契機として,データ受信APを終了させてください。
なお,これらの例外を発生させるためには,データ送信APでのメソッドの呼び出し,またはコマンドの実行によって,出力ストリームに対してデータ処理終了を通知する必要があります。
それぞれの方法での通知方法について,「(2) データ送信APのメソッド呼び出し(putEndメソッド)によるデータ送信終了の通知」および「(3) sdpcqlstopコマンドの実行によるクエリグループ停止の通知」で説明します。
データ送信APからのデータ送信が終了したときに,putEndメソッドを呼び出します。出力ストリームにクエリ結果データがなくなると,データ受信APに対して例外SDPClientEndOfStreamExceptionがスローされます。
putEndメソッドの呼び出しによってデータ送信終了を通知する流れを次の図に示します。
図で示した流れの詳細を示します。なお,項番は,図中の番号と対応しています。
なお,クエリグループ内の入力ストリームの中にputEndメソッドを呼び出していない入力ストリームがある場合,データ受信APからのgetメソッドまたはgetAllメソッド呼び出し時に例外SDPClientEndOfStreamExceptionが発生することはありません。
sdpcqlstopコマンドを実行して,クエリグループを停止します。出力ストリームにクエリ結果データがなくなると,データ受信APに対して例外SDPClientQueryGroupStopExceptionがスローされます。
sdpcqlstopコマンドによるクエリグループ停止の流れを次の図に示します。
図7-6 sdpcqlstopコマンドによるクエリグループ停止の流れ
図で示した流れの詳細を示します。なお,項番は,図中の番号と対応しています。
All Rights Reserved. Copyright (C) 2010, 2014, Hitachi, Ltd.