2 StreamOperationクラスの使用方法
Streamsアプリケーションは、サブスクライバを実装することで機能します。サブスクライバは、対象となる表への書込み操作で構成されるイベント・ストリームを受け取ります。
詳細は、サブスクライバの実装を参照してください。
アプリケーションがサブスクリプション・ストリームで受け取るそれぞれのイベントは、oracle.kv.pubsub.StreamOperation
として表されます。これらのイベントはそれぞれ、アプリケーションがサブスクライブする表に対するput
またはdelete
操作を表します。
詳細は、Javaダイレクト・ドライバAPIリファレンスのoracle.kv.pubsub.StreamOperationクラスの概要を参照してください
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つのキーを超える操作の順序については保証されません。