ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework システム構築・運用ガイド

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

11.8.4 タプル入力完了後の処理

タイムスタンプ調整機能では,入力アダプターから送信されたタプルのレコードに設定された時刻情報が進むことで基準時刻を遷移し,タイムスタンプ調整機能内で保留していたタプルを入力ストリームに入力します。そのため,入力アダプターからのタプルの入力が完了すると,タイムスタンプ調整機能の基準時刻も更新されないため,保留しているタプルは入力ストリームに入力されません。

タプルの入力完了後に,タイムスタンプ調整機能で保留しているタプルを入力ストリームに入力するには,StreamInputオブジェクトのputEndメソッドを使用します。カスタムアダプターの場合,データ送信APでputEndメソッドを発行して,保留していたタプルを入力ストリームに入力します。標準提供アダプターの場合は,タプル入力完了後にputEndメソッドが発行されます。

putEndメソッドを発行した場合のタイムスタンプ調整機能の状態は次のように遷移します。

  1. 新たなタプルの受け付けを停止
    タイムスタンプ調整機能で,新たなタプルの受け付けができなくなります。
    クエリグループ内のすべての入力ストリームにputEndメソッドが発行された時点で,受け付け再開の準備をします。
  2. 新たなタプルの受け付けを開始
    タプルの受け付け再開の準備がすべて完了すると,タイムスタンプ調整機能で新たなタプルの受け付けを再開します。受け付け再開時のタイムスタンプ調整機能は,クエリグループ開始直後と同じ状態となります。

また,StreamInputオブジェクトのisStartedメソッドを使用することで,タイムスタンプ調整機能の状態を確認することができます。タイムスタンプ調整機能が1.の状態のときにisStartedメソッドを発行すると,false(新たなタプルの受け付けを開始していない状態)が返されます。タイムスタンプ調整機能が2.の状態のときにisStartedメソッドを発行すると,true(新たなタプルの受け付けを開始している状態)が返されます。