2 StreamOperationクラスの使用方法
Streamsアプリケーションは、サブスクライバを実装することで機能します。サブスクライバは、対象となる表への書込み操作で構成されるイベント・ストリームを受け取ります。
詳細は、サブスクライバの実装を参照してください。
アプリケーションがサブスクリプション・ストリームで受け取るそれぞれのイベントは、oracle.kv.pubsub.StreamOperationとして表されます。これらのイベントはそれぞれ、アプリケーションがサブスクライブする表に対するputまたはdelete操作を表します。
StreamOperationインタフェースには、次のメソッドが用意されています。
-
StreamOperation.getType()StreamOperation.Typeオブジェクトを返します。これは列挙型定数であり、deleteまたはputです。例:// so is a StreamOperation object. It is obtained using // NoSQLSubscriber.onNext(). switch (so.getType()) { case PUT: { // Process the put operation here. } break; case DELETE: { // Process the delete operation here. } break; default: // Received an unknown and therefore illegal operation type. throw new IllegalStateException("... exception message ..."); } -
StreamOperation.asDelete()操作を
StreamOperation.DeleteEventオブジェクトとして返します。このオブジェクトには、delete操作に関連付けられた主キーのみが含まれます。// so is a StreamOperation object. It is obtained using // NoSQLSubscriber.onNext(). StreamOperation.DeleteEvent de = so.asDelete(); PrimaryKey pk = de.getPrimaryKey(); -
StreamOperation.asPut()操作を
StreamOperation.PutEventオブジェクトとして返します。このオブジェクトを使用すると、put操作によって変更された行を取得できます。ここで返される行は、put操作が実行された後の行の状態を表します。// so is a StreamOperation object. It is obtained using // NoSQLSubscriber.onNext(). StreamOperation.PutEvent pe = so.asPut(); Row row = pe.getRow(); -
StreamOperation.getRepGroupId()この
write操作が実行されたシャードIDを(intとして)返します。 -
StreamOperation.getSequenceId()この操作に関連付けられた一意の順序IDを返します。このIDは、指定されたパブリッシャに関連付けられているストリーム操作を一意に識別します。
これらのIDを使用して、指定されたキーについて検出された操作を順序付けできます。サブスクリプションAPIでは、特定のキーのイベントの順序が、これらの操作がOracle NoSQL Databaseで適用される順序と同じであることが保証されます。サブスクリプションAPIでは、1つのキーを超える操作の順序については保証されません。