NoSQLSubscriptionConfigの使用方法
サブスクリプションを構成するには、oracle.kv.pubsub.NoSQLSubscriptionConfig
オブジェクトを構築します。その後、このオブジェクトをNoSQLSubscriber
実装に提供し、さらに、コールされたときにこのオブジェクトを返すNoSQLSubscriber.getSubscriptionConfig()
を実装します。パブリッシャを構築する際には、それにNoSQLSubscriber
実装を提供します。これにより、パブリッシャは、サブスクリプションの作成方法を理解するためにNoSQLSubscriber.getSubscriptionConfig()
をコールします。サブスクライバの実装およびStreamsパブリッシャの使用方法を参照してください。
NoSQLSubscriptionConfig
オブジェクトを構築するには、次のようにNoSQLSubscriptionConfig.Builder
を使用します。
final NoSQLSubscriptionConfig subConfig =
new NoSQLSubscriptionConfig.Builder("ChkptTable")
.setSubscribedTables("UserTable")
.setStreamMode(NoSQLStreamMode.FROM_NOW)
.build();
この構成により、サブスクリプションは次のように動作します。
-
ChkptTable
というチェックポイント表を使用します。チェックポイント表の詳細は、チェックポイントの使用方法を参照してください。ここで使用する表名は、自分で選択し、サブスクリプションに対して一意である必要があります。複数のサブスクリプションを使用する場合は、各サブスクリプションでチェックポイント表に一意の名前を使用する必要があります。この表は自動的に作成されます。セキュアなストアを使用する場合、チェックポイント表への読取り/書込みアクセス権が必要です。チェックポイント表が存在しない場合は、CREATE TABLE
権限も必要です。詳細は、次を参照してください。-
セキュアなストアへの接続の詳細は、セキュアなストアへの認証を参照してください。
-
セキュアなストアの認可を構成する方法の詳細は、セキュリティ・ガイドの権限を参照してください。
-
-
UserTable
というユーザー表に対して実行されたすべてのwrite
アクティビティをサブスクライブします。サブスクリプションは、ユーザー定義の表について作成できます。システム表に対する更新はストリームされません。次を使用して、複数の表をサブスクライブできます。new NoSQLSubscriptionConfig.Builder("ChkptTable") .setSubscribedTables("UserTable", "PriceTable", "InventoryTable") ....
setSubscribedTables()
をコールしない場合、サブスクリプションはストア内のすべての表をサブスクライブします。サブスクリプションがストア内のすべての表を対象とする場合、サブスクリプションが設定された後に(DDL CREATE TABLE
操作を使用して)新しい表が作成されると、新しい表に作成されたそれぞれの行のput
イベントすべてがストリームに含まれます。 -
ストリーム・モードを
NoSQLStreamMode.FROM_NOW
に設定します。ストリーム・モードは、パブリッシャがイベントの取得を開始するストリーム内の位置を示します。詳細は、NoSQLStreamModeを参照してください。
サブスクリプション構成を作成したら、それをNoSQLSubscriber
実装に提供します。この実装でその後、次のようにNoSQLSubscriber.getSubscriptionConfig()
メソッドを介してそれを使用できるようにする必要があります。
class mySubscriber implements NoSQLSubscriber {
...
private final NoSQLSubscriptionConfig config;
...
// Generally the constructor will require more than just
// the subscription configuration. The point here is that you
// must somehow provide the configuration object to
// your subscriber implemention because that is how
// your publisher will get it.
mySubscriber(NoSQLSubscriptionConfig config, ....) {
...
this.config = config;
...
}
@Override
public NoSQLSubscriptionConfig getSubscriptionConfig() {
return config;
}
...
Streamsアプリケーションを実装する際に、サブスクライバ実装を使用します。サブスクライバに対するgetSubscriptionConfig()
メソッドにより、パブリッシャは、監視する表などを理解します。Streamsパブリッシャの使用方法を参照してください。
空のストリームの有効期限を指定するには、NoSQLSubscriptionConfig.setEmptyStreamDuration()
メソッドを使用します。有効期限は、ストリームが空になったときにのみ開始され、その期限が過ぎると、パブリッシャは空のストリームを停止します。空のストリームのデフォルトの有効期限は60秒です。ユーザーは、setEmptyStreamDuration()
メソッドで空のストリームのデフォルトの有効期限をオーバーライドできます。
この項では、NoSQLSubscriptionConfig
を使用して設定できる一部のオプションのみを示しています。構成オプションの完全なリストは、Java Direct Driver APIリファレンスのNoSQLSubscriptionConfigおよびNoSQLSubscriptionConfig.Builderを参照してください。