ヘッダーをスキップ
Oracle® Call Interfaceプログラマーズ・ガイド
11g リリース2 (11.2)
E50264-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

Streamsアドバンスト・キューイング関数およびパブリッシュ・サブスクライブ関数

表17-3は、この項で説明しているStreamsアドバンスト・キューイング関数およびパブリッシュ・サブスクライブ関数を示しています。すべての新規アプリケーションには、「2」で終わる関数を使用します。


関連項目:

Streamsアドバンスト・キューイング・プログラムの詳細は、「OCIデモ・プログラム」を参照してください。

表17-3 アドバンスト・キューイング関数およびパブリッシュ・サブスクライブ関数

関数 用途

「OCIAQDeq()」


アドバンスト・キューイングのデキュー操作を実行します。

「OCIAQDeqArray()」


メッセージ配列をデキューします。

「OCIAQEnq()」


アドバンスト・キューイングのエンキュー操作を実行します。

「OCIAQEnqArray()」


メッセージ配列をエンキューします。

「OCIAQListen2()」


リストのエージェントの代理として1つ以上のキューをリスニングします。バッファ・メッセージおよび永続キューをサポートします。

「OCISubscriptionDisable()」


サブスクリプションの登録を使用禁止にして、通知をオフにします。

「OCISubscriptionEnable()」


サブスクリプションについての通知を使用可能にします。

「OCISubscriptionPost()」


通知を受信するようにサブスクリプションに転記します。

「OCISubscriptionRegister()」


サブスクリプションを登録します。

「OCISubscriptionUnRegister()」


サブスクリプションの登録を解除します。


OCIAQDeq()

用途

OCIでのStreamsアドバンスト・キューイングを使用したデキュー操作を実行します。

構文

sword OCIAQDeq ( OCISvcCtx           *svch,
                 OCIError            *errh,
                 OraText             *queue_name,
                 OCIAQDeqOptions     *dequeue_options,
                 OCIAQMsgProperties  *message_properties,
                 OCIType             *payload_tdo,
                 void                **payload,
                 void                **payload_ind,
                 OCIRaw              **msgid,
                 ub4                 flags );

パラメータ

svch (IN)

OCIサービス・コンテキストです。

errh (IN)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。

queue_name (IN)

デキュー操作のためのターゲット・キューです。

dequeue_options (IN)

デキュー操作のオプションです。OCI型定数OCI_DTYPE_AQDEQ_OPTIONSを使用してOCIAQDeqOptions記述子に格納されます。

OCI_DTYPE_AQDEQ_OPTIONSには、次の値を持つ追加属性OCI_ATTR_MSG_DELIVERY_MODEがあります(Oracle Database 10gリリース2から導入されました)。

  • OCI_MSG_PERSISTENT (デフォルト)

  • OCI_MSG_BUFFERED

  • OCI_MSG_PERSISTENT_OR_BUFFERED

message_properties (OUT)

メッセージ用のメッセージ・プロパティです。プロパティは、OCI型定数OCI_DTYPE_AQMSG_PROPERTIESを使用してOCIAQMsgProperties記述子に格納されます。この定数には、次の値があります。

  • OCI_AQ_PERSISTENT (デフォルト)

  • OCI_AQ_BUFFERED

payload_tdo (IN)

オブジェクト型のTDO (型記述子オブジェクト)です。RAWキューでは、このパラメータがSYS.RAWのTDOを指し示す必要があります。

payload (IN/OUT)

オブジェクト型のインスタンスであるプログラム変数バッファのポインタへのポインタです。RAWキューでは、このパラメータがOCIRawのインスタンスを指し示す必要があります。

payload用のメモリーは、オブジェクト・キャッシュに動的に割り当てられます。payloadインスタンスが不要になったときは、アプリケーションからOCIObjectFree()をコールし、割当て解除もできます。プログラム変数バッファへのポインタ(*payload)がNULLで渡された場合、そのバッファは暗黙的にキャッシュに割り当てられます。

アプリケーションでは、OCIAQDeq()が最初にコールされたときにpayloadNULLを渡し、そのpayloadに、OCIでメモリーを割り当てるようにできます。後続のOCIAQDeq()コールでは、前に割り当てられたメモリーへのポインタが使用されます。

payload用にTDOを取得するには、OCITypeByName()またはOCITypeByRef()を使用します。

OCIによって、ユーザーがpayloadの属性(テキストなど)を設定できる関数が提供されます。これらの属性の設定については、「オブジェクト属性の操作」を参照してください。

payload_ind (IN/OUT)

オブジェクト型のパラレル・インジケータ情報構造を含むプログラム変数バッファ・ポインタへのポインタです。

payload_indへのメモリー割当てルールは、payloadに対するルールと同じです。

msgid (OUT)

メッセージIDです。

flags (IN)

現行では使用されていません。OCI_DEFAULTとして渡されます。

コメント

このコールを使用するには、ユーザーがAQ_USER_ROLEまたはDBMS_AQパッケージを実行する権限を所有している必要があります。このコールを使用するには、OCI環境をオブジェクト・モードで初期化する必要があります(OCIEnvCreate()OCIEnvNlsCreate()またはOCIInitialize() (非推奨)を使用)。


関連項目:


OCIAQDeqArray()

用途

メッセージの配列をキューからデキューします。配列内のメッセージはすべて同じオプションによりデキューされ、同じキュー・テーブル・ペイロード列TDOが含まれます。

構文

sword OCIAQDeqArray ( OCISvcCtx           *svchp,
                      OCIError            *errhp,
                      OraText             *queue_name,
                      OCIAQDeqOptions     *deqopt,
                      ub4                 *iters,
                      OCIAQMsgProperties  **msgprop,
                      OCIType             *payload_tdo,
                      void                **payload,
                      void                **payload_ind,
                      OCIRaw              **msgid,
                      void                *ctxp,
                      OCICallbackAQDeq    (cbfp) 
                                          (
                                          void         *ctxp,
                                          void         **payload,
                                          void         **payload_ind
                                          ),
                      ub4                 flags );

パラメータ

svchp (IN)

OCIサービス・コンテキストです(OCIAQDeq()から変更なし)。

errhp (IN)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです(OCIAQDeq()から変更なし)。

queue_name (IN)

メッセージのデキュー元となるキューの名前です(OCIAQDeq()から変更なし)。

deqopt (IN)

OCIAQDeqOptions記述子へのポインタです(OCIAQDeq()から変更なし)。

OCI_DTYPE_AQDEQ_OPTIONS OCI型定数には、次の値を持つ追加属性OCI_ATTR_MSG_DELIVERY_MODEがあります(Oracle Database 10gリリース2から導入されました)。

  • OCI_MSG_PERSISTENT (デフォルト)

  • OCI_MSG_BUFFERED

  • OCI_MSG_PERSISTENT_OR_BUFFERED

iters (IN/OUT)

入力では、デキューするメッセージ数です。出力では、正常にデキューされたメッセージ数です。

msgprop (OUT)

OCI型定数OCI_DTYPE_AQMSG_PROPERTIESOCIAQMsgProperties記述子へのポインタの配列です。この定数には、次の値があります。

  • OCI_AQ_PERSISTENT (デフォルト)

  • OCI_AQ_BUFFERED

payload_tdo (OUT)

キュー・テーブルのペイロード列のTDOへのポインタです。

payload (OUT)

デキューされたメッセージへのポインタの配列です。

payload_ind (OUT)

インジケータへのポインタの配列です。

msgid (OUT)

デキューされたメッセージのメッセージIDへのポインタの配列です。

ctxp (IN)

コールバック関数に渡されるコンテキストです。

cbfp (IN)

デキューされたメッセージが格納されるバッファ・ポインタを指定するために登録できるコールバックです。NULLの場合、メッセージはpayloadが指し示すバッファにデキューされます。

flags (IN)

現行では使用されていません。OCI_DEFAULTとして渡されます。

コメント

このコールを使用するには、ユーザーがAQ_USER_ROLEまたはDBMS_AQパッケージを実行する権限を所有している必要があります。このコールを使用するには、OCI環境をオブジェクト・モードで初期化する必要があります(OCIEnvCreate()OCIEnvNlsCreate()またはOCIInitialize() (非推奨)を使用)。

OCIAQDeqOptionsで指定した0 (ゼロ)以外の待機時間は、キューにメッセージがない場合のみ認識されます。キューに、デキューの対象であるメッセージが含まれる場合、OCIAQDeqArray()関数はitersメッセージまでをデキューし、ただちに戻します。

この関数は、非ブロック化モードではサポートされません。


関連項目:


OCIAQEnq()

用途

Streamsアドバンスト・キューイングを使用したエンキュー操作を実行します。

構文

sword OCIAQEnq ( OCISvcCtx           *svch,
                 OCIError            *errh,
                 OraText             *queue_name,
                 OCIAQEnqOptions     *enqueue_options,
                 OCIAQMsgProperties  *message_properties,
                 OCIType             *payload_tdo,
                 void                **payload,
                 void                **payload_ind,
                 OCIRaw              **msgid,
                 ub4                 flags );

パラメータ

svch (IN)

OCIサービス・コンテキストです。

errh (IN)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。

queue_name (IN)

エンキュー操作のためのターゲット・キューです。

enqueue_options (IN)

エンキュー操作のオプション。OCIAQEnqOptions記述子に格納されています。

message_properties (IN)

メッセージ用のメッセージ・プロパティです。プロパティは、Oracle Database 10gリリース2で導入されたOCI型定数OCI_DTYPE_AQMSG_PROPERTIESOCIAQMsgProperties記述子に格納されます。

OCI_DTYPE_AQMSG_PROPERTIES記述子には、次の値を持つOCI_ATTR_MSG_DELIVERY_MODE属性があります。

  • OCI_MSG_PERSISTENT (デフォルト)

  • OCI_MSG_BUFFERED

payload_tdo (IN)

オブジェクト型のTDO (型記述子オブジェクト)です。RAWキューでは、このパラメータがSYS.RAWのTDOを指し示す必要があります。

payload (IN)

オブジェクト型のインスタンスを指し示すポインタへのポインタです。RAWキューでは、このパラメータがOCIRawのインスタンスを指し示す必要があります。

OCIによって、ユーザーがpayloadの属性(テキストなど)を設定できる関数が提供されます。


関連項目:

これらの属性の設定については、「オブジェクト属性の操作」を参照してください。

payload_ind (IN)

オブジェクト型のパラレル・インジケータ情報構造を含むプログラム変数バッファ・ポインタへのポインタです。

msgid (OUT)

メッセージIDです。

flags (IN)

現行では使用されていません。OCI_DEFAULTとして渡されます。

コメント

このコールを使用するには、ユーザーがAQ_USER_ROLEまたはDBMS_AQパッケージを実行する権限を所有している必要があります。

このコールを使用するには、OCI環境をオブジェクト・モードで初期化する必要があります(OCIEnvCreate()OCIEnvNlsCreate()またはOCIInitialize() (非推奨)を使用)。


関連項目:


payload用にTDOを取得するには、OCITypeByName()またはOCITypeByRef()を使用します。

OCIAQEnqArray()

用途

メッセージの配列をキューにエンキューします。メッセージの配列は同じオプションによりエンキューされ、同じペイロード列TDOが含まれます。

構文

sword OCIAQEnqArray ( OCISvcCtx              *svchp,
                      OCIError               *errhp,
                      OraText                *queue_name,
                      OCIAQEnqOptions        *enqopt,
                      ub4                    *iters,
                      OCIAQMsgProperties     **msgprop,
                      OCIType                *payload_tdo,
                      void                   **payload,
                      void                   **payload_ind,
                      OCIRaw                 **msgid,
                      void                   *ctxp,
                      OCICallbackAQEnq       (cbfp)
                                             (
                                             void        *ctxp,
                                             void        **payload,
                                             void        **payload_ind
                                             ),
                      ub4                    flags );

パラメータ

svchp (IN)

サービス・コンテキストです(OCIAQEnq()から変更なし)。

errhp (IN/OUT)

エラー・ハンドルです(OCIAQEnq()から変更なし)。

queue_name (IN)

メッセージがエンキューされるキューの名前です(OCIAQEnq()から変更なし)。

enqopt (IN)

OCIAQEnqOptions記述子へのポインタです(OCIAQEnq()から変更なし)。

iters (IN/OUT)

入力では、エンキューするメッセージ数です。出力では、正常にエンキューされたメッセージ数です。

msgprop (IN)

Oracle Database 10gリリース2で導入されたOCI型定数OCI_DTYPE_AQMSG_PROPERTIESOCIAQMsgProperties記述子へのポインタの配列です。

OCI_DTYPE_AQMSG_PROPERTIESには、次の値を持つOCI_ATTR_MSG_DELIVERY_MODE属性があります。

  • OCI_MSG_PERSISTENT (デフォルト)

  • OCI_MSG_BUFFERED

payload_tdo (IN)

キュー・テーブルのペイロード列のTDOへのポインタです。

payload (IN)

エンキューされるメッセージへのポインタの配列です。

payload_ind (IN)

インジケータへのポインタの配列、またはNULLポインタの配列です(標識変数が使用されていない場合)。

msgid (OUT)

エンキューされたメッセージのメッセージIDへのポインタの配列、またはNULLポインタの配列です(メッセージIDが戻されない場合)。

ctxp (IN)

登録されたコールバック関数に渡されるコンテキストです。

cbfp (IN)

メッセージを動的に提供するために登録できるコールバックです。NULLの場合、OCIAQEnqArray()をコールする前に、すべてのメッセージを具体化する必要があります。

flags (IN)

現行では使用されていません。OCI_DEFAULTとして渡されます。

コメント

この関数は、非ブロック化モードではサポートされません。

OCIAQListen2()

用途

リストのエージェントのかわりに1つ以上のキューをリスニングします。バッファ・メッセージおよび永続キューをサポートします。Oracle Database 10gリリース2から導入されました。

構文

sword OCIAQListen2 (OCISvcCtx         *svchp, 
                    OCIError          *errhp,
                    OCIAQAgent        **agent_list, 
                    ub4               num_agents,
                    OCIAQListenOpts   *lopts, 
                    OCIAQAgent        **agent,
                    OCIAQLisMsgProps  *lmops,
                    ub4               flags);

パラメータ

svchpp (IN/OUT)

サービス・コンテキスト・ハンドルです。

errhp (IN/OUT)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。

agent_list (IN)

メッセージを監視するエージェントのリストです。

num_agents (IN)

エージェント・リスト内のエージェント数です。

lopts (IN)

型定数OCI_DTYPE_AQLIS_OPTIONSには、次の属性があります。

  • OCI_ATTR_WAIT - リスニング・コールの最大待機時間(秒単位)

  • OCI_ATTR_MSG_DELIVERY_MODE - 次のいずれかの値です。

    • OCI_MSG_PERSISTENT

    • OCI_MSG_BUFFERED

    • OCI_MSG_PERSISTENT_OR_BUFFERED

agent (OUT)

メッセージの出力先のエージェントです。OCIAgentはOCI記述子です。

lmops (OUT)

OCI_DTYPE_AQLIS_MSG_PROPERTIES (リスニング・メッセージ・プロパティ)には、1つの属性、OCI_ATTR_MSG_DELIVERY_MODEがあります。この属性は、次の値を持ちます。

  • OCI_MSG_PERSISTENT

  • OCI_MSG_BUFFERED

flags (IN)

現行では使用されていません。OCI_DEFAULTとして渡されます。

コメント

メッセージが存在し、リスト内のエージェントに対してそのメッセージを使用する準備ができたときに戻されるブロッキング・コールです。待機時間が終了してもメッセージが検出されない場合は、エラーが戻されます。

OCISubscriptionDisable()

用途

サブスクリプションの登録を使用禁止にして、すべての通知をオフにします。

構文

ub4 OCISubscriptionDisable ( OCISubscription   *subscrhp,
                             OCIError          *errhp
                             ub4               mode );

パラメータ

subscrhp (IN)

OCI_ATTR_SUBSCR_NAMEおよびOCI_ATTR_SUBSCR_NAMESPACE属性が設定されたサブスクリプション・ハンドルです。

errhp (OUT)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。

mode (IN)

コール固有モードです。有効な値はOCI_DEFAULTのみです。OCI_DEFAULTは、デフォルトのコールを実行します。サブスクリプションが使用可能になるまで、このサブスクリプションの通知をすべて破棄します。

コメント

このコールは、一時的に通知をオフにするときに使用します。コードの重要なセクションを実行しているときに使用して、アプリケーションが中断されないようにします。

この操作をするときは、接続または認証は必要ありません。このコールの前に、サブスクリプション・ハンドルによって指定されたサブスクリプションの登録を行ってください。

OCISubscriptionDisable()を実行した後は、OCISubscriptionEnable()を実行するまですべての通知が破棄されます。

OCISubscriptionEnable()

用途

使用禁止にしたサブスクリプションの登録を使用可能にします。すべての通知がオンになります。

構文

ub4 OCISubscriptionEnable ( OCISubscription   *subscrhp,
                            OCIError          *errhp
                            ub4               mode );

パラメータ

subscrhp (IN)

OCI_ATTR_SUBSCR_NAMEおよびOCI_ATTR_SUBSCR_NAMESPACE属性が設定されたサブスクリプション・ハンドルです。

errhp (OUT)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。

mode (IN)

コール固有モードです。有効な値はOCI_DEFAULTのみです。この値は、デフォルトのコールを実行します。次の使用可能化が実行されるまで、このサブスクリプションの通知はすべてバッファリングされます。

コメント

このコールは、サブスクリプションの登録を使用禁止にした後に、通知をオンにするときに使用します。

この操作をするときは、接続または認証は必要ありません。このコールを実行する前に、指定されたサブスクリプションの登録を行ってください。

OCISubscriptionPost()

用途

サブスクリプションに転記し、そのサブスクリプションに対して登録されたすべてのクライアントが通知を受信できるようにします。

構文

ub4 OCISubscriptionPost ( OCISvcCtx         *svchp,
                          OCISubscription   **subscrhpp,
                          ub2               count,
                          OCIError          *errhp
                          ub4               mode );

パラメータ

svchp (IN)

OCIサービス・コンテキストです(バージョン7より後)。このサービス・コンテキストには、有効な認証されたユーザー・ハンドルが必要です。

subscrhpp (IN)

サブスクリプション・ハンドルの配列です。この配列の各要素は、OCI_ATTR_SUBSCR_NAMEおよびOCI_ATTR_SUBSCR_NAMESPACE属性が設定されたサブスクリプション・ハンドルにしてください。

このコールの前に、各サブスクリプション・ハンドルに対してOCI_ATTR_SUBSCR_PAYLOAD属性を設定する必要があります。設定されていない場合、ペイロードはNULLであるとみなされ、重要な登録を行ったクライアントが通知を受信したときに、ペイロードが配布されません。OCIAttrSet()コールでは、ペイロードへの参照は記録されますが、内容はコピーされないため、コール元は転送が行われるまでペイロードを保存する必要があります。

count (IN)

サブスクリプション・ハンドル配列の要素数です。

errhp (OUT)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。

mode (IN)

コール固有モードです。有効な値はOCI_DEFAULTのみです。この値は、デフォルトのコールを実行します。

コメント

サブスクリプションに転記されるときに、必要に応じてサブスクリプション名およびペイロードの識別を行うことができます。ペイロードが関連付けられない場合は、ペイロードの長さは0に設定されます。

このコールは、最も効果的な転送を保証します。通知は、登録されたクライアントに対して最大で1回行われます。

このコールは、主に非永続通知に使用し、複数のシステム・イベントが発生する場合に役立ちます。アプリケーションでより確実な保証が必要な場合は、アドバンスト・キューイング機能を使用し、キューにエンキューします。

OCISubscriptionRegister()

用途

メッセージ通知に対するコールバックを登録します。

構文

ub4 OCISubscriptionRegister ( OCISvcCtx         *svchp,
                              OCISubscription   **subscrhpp,
                              ub2               count,
                              OCIError          *errhp
                              ub4               mode );

パラメータ

svchp (IN)

OCIサービス・コンテキストです(バージョン7より後)。このサービス・コンテキストには、有効な認証されたユーザー・ハンドルが必要です。

subscrhpp (IN)

サブスクリプション・ハンドルの配列です。この配列の各要素は、次のすべての属性が設定されたサブスクリプション・ハンドルである必要があります。

  • OCI_ATTR_SUBSCR_NAME

  • OCI_ATTR_SUBSCR_NAMESPACE

  • OCI_ATTR_SUBSCR_RECPTPROTO

それ以外の場合はエラーが戻されます。

次のいずれかの属性も設定する必要があります。

  • OCI_ATTR_SUBSCR_CALLBACK

  • OCI_ATTR_SUBSCR_CTX

  • OCI_ATTR_SUBSCR_RECPT


関連項目:

ハンドル属性の詳細は、「サブスクリプション・ハンドル属性」を参照してください。

subscrhpp[i]によって示された登録に対して通知を受信すると、subscrhpp[i]に対してコンテキスト(OCI_ATTR_SUBSCR_CTX)が設定された状態で、subscrhpp[i]に対して設定されたユーザー定義コールバック関数(OCI_ATTR_SUBSCR_CALLBACK)が呼び出されるか、subscrhpp[i]に対して設定された(OCI_ATTR_SUBSCR_RECPT)に電子メールが送信されます。あるいは、subscrhpp[i]のサブスクライバにプロシージャに対する適切な権限がある場合は、subscrhpp[i]に対して設定されたPL/SQLプロシージャ(OCI_ATTR_SUBSCR_RECPT)がデータベースで呼び出されます。

count (IN)

サブスクリプション・ハンドル配列の要素数です。

errhp (OUT)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。

mode (IN)

コール固有モードです。次の値が有効です。

  • OCI_DEFAULT: サーバーのDN記述子にサーバーのDNが1つのみ存在する場合に使用します。登録要求がデータベースに送信されます。データベース接続を使用できない場合、登録要求は迂回してLDAPサーバーに送信されます。

  • OCI_REG_LDAPONLY - 登録要求は直接LDAPサーバーに送信されます。サーバーのDN記述子にサーバーのDNが複数存在する場合、またはデータベース接続を使用できないことが確かである場合に、このモードを使用します。

新しいクライアント・プロセスが起動するか、または以前のクライアント・プロセスが停止して再度起動するときは常に、重要なすべてのサブスクリプションに対して登録する必要があります。クライアントが起動したまま、サーバーが最初に停止してから再度起動した場合、クライアントはDISCONNECTEDである登録に対して引き続き通知を受信します。ただし、CONNECTED登録に対する通知は、サーバーが停止して再度起動した後は欠落するため、クライアントが受信することはありません。

コメント

このコールは、サブスクリプションの登録に対して呼び出します。重要なサブスクリプション名および呼び出される関連コールバックを識別します。重要な複数のサブスクリプションを同時に登録できます。

このインタフェースは、非同期モードのメッセージ配信の場合にのみ有効です。非同期モードでは、サブスクライバが登録コールの発行およびコールバックの指定を行います。サブスクリプション条件と一致するメッセージを受信すると、コールバックが呼び出されます。次に、コールバックから明示的なmessage_receive (デキュー)が発行され、メッセージが取り出されます。

ユーザーは、登録時にネームスペース属性をOCI_SUBSCR_NAMESPACE_AQに設定して、サブスクリプション・ハンドルを指定する必要があります。

サブスクリプション名は、シングル・コンシューマ・キューの登録の場合は文字列SCHEMA.QUEUEで、マルチ・コンシューマ・キューの登録の場合は文字列SCHEMA.QUEUE:CONSUMER_NAMEです。この文字列は大文字にします。

各ネームスペースには、独自の権限モデルがあります。登録を行っているユーザーに、指定されたサブスクリプションのネームスペースで登録する権限がない場合は、エラーが戻されます。

OCISubscriptionUnRegister()

用途

サブスクリプションの登録を解除して、通知をオフにします。

構文

ub4 OCISubscriptionUnRegister ( OCISvcCtx         *svchp,
                                OCISubscription   *subscrhp,
                                OCIError          *errhp
                                ub4               mode );

パラメータ

svchp (IN)

OCIサービス・コンテキストです(バージョン7より後)。このサービス・コンテキストには、有効な認証されたユーザー・ハンドルが必要です。

subscrhp (IN)

OCI_ATTR_SUBSCR_NAMEおよびOCI_ATTR_SUBSCR_NAMESPACE属性が設定されたサブスクリプション・ハンドルです。

errhp (OUT)

エラー発生時の診断情報のためにOCIErrorGet()に渡すエラー・ハンドルです。

mode (IN)

コール固有モードです。次の値が有効です。

  • OCI_DEFAULT: サーバーのDN記述子にサーバーのDNが1つのみ存在する場合に使用します。登録要求がデータベースに送信されます。データベース接続を使用できない場合、登録要求は迂回してLDAPサーバーに送信されます。

  • OCI_REG_LDAPONLY - 登録要求は直接LDAPサーバーに送信されます。サーバーのDN記述子にサーバーのDNが複数存在する場合、またはデータベース接続を使用できないことが確かである場合に、このモードを使用します。

コメント

サブスクリプションの登録を解除すると、その後は特定のサブスクリプションに関する通知を受信できなくなります。通知を再開する場合は、サブスクリプションに対して再登録を行ってください。

別の登録が行われると、重要なクライアントのリストからユーザーが削除されるため、解除前に配信されていた通知はすべて配信されなくなります。