サブスクライバを作成したら、Oracle Messaging Gateway のログに ORA-24039 が出力された。
原因
ADD_SUBSCRIBER、ALTER_SUBSCRIBERまたはREMOVE_SUBSCRIBERプロシージャ、または空でない受信者リストのENQUEUEが、複数のコンシューマに対して作成されていないキューに対し発行されました。処置
OTN Japan - Oracleエラーメッセージ検索(Oracleメッセージ検索)
複数のコンシューマに対して作成されたキュー表にキューを作成し、コールを再試行してください。
キュー表をサブスクライブしたい場合は、「multiple_consumers => true」にしろってことみたいなので、「multiple_consumers => true」を指定してキュー表を再作成してみたら解決した。
- 修正前
begin dbms_aqadm.create_queue_table (queue_table => 'sample_queue_table', queue_payload_type => 'sys.mgw_basic_msg_t'); end; /
- 修正後(「multiple_consumers => true」を追加)
begin dbms_aqadm.create_queue_table (queue_table => 'sample_queue_table', queue_payload_type => 'sys.mgw_basic_msg_t', multiple_consumers => true); end; /