37 Oracle Databaseアドバンスト・キューイングを使用したXMLデータの交換
XMLデータは、データベース統合化メッセージ・キューイングを提供するOracle Databaseアドバンスト・キューイング(AQ)を使用して交換できます。AQは、メッセージを使用して、アプリケーション間の非同期通信を可能にし、その管理を行います。 ポイント・ツー・ポイント通信モデルおよびパブリッシュ・サブスクライブ通信モデルをサポートします。
Oracle Databaseとメッセージ・キューイングの統合により、メッセージ・キューイングにOracle Databaseの整合性、信頼性、リカバリ能力、スケーラビリティ、パフォーマンスおよびセキュリティ機能が追加されます。また、メッセージ・フローからのインテリジェント機能の抽出が容易になります。
- XMLおよびOracle Databaseアドバンスト・キューイング
Oracle Databaseアドバンスト・キューイング(AQ)は、ネイティブのXMLメッセージをサポートしています。AQ操作をXMLベースのInternet-Data-Access-Presentation (iDAP)形式で定義できます。iDAPは拡張可能なメッセージの起動プロトコルです。これはインターネット標準に基づいて構築され、転送メカニズムとしてHTTP(S)および電子メール・プロトコルを使用します。XMLがiDAP用のデータ表示用の言語です。 - Oracle Databaseアドバンスト・キューイング
Oracle Databaseアドバンスト・キューイング(AQ)を使用すると、キュー内のデータとイベントを共有できます。データベース内またはデータベース間で情報を伝播し、指定した宛先に情報をルーティングできます。これによって、イベントを取得および管理し、他のデータベースおよびアプリケーションとイベントを共有するための機能性と柔軟性が提供されます。 - オブジェクト型のXMLType属性
XMLType
属性を持つOracleオブジェクト型を使用するキューを作成できます。これらのキューは、XML文書であるメッセージを転送および格納するために使用できます。 - Internet Data Access Presentation (iDAP): AQ用のSOAP
インターネット上でSimple Object Access Protocol (SOAP)を使用してOracle Databaseアドバンスト・キューイング(AQ)にアクセスできます。Internet Data Access Presentation (iDAP)は、AQ操作に対するSOAP仕様です。iDAPは、SOAP Request BodyのXMLメッセージ構造を定義します。 - iDAPアーキテクチャ
HTTP(S)を使用するOracle Databaseアドバンスト・キューイング(AQ)操作には、iDAP HTTPクライアント、WebサーバーおよびOracleサーバーが必要です。 - XMLおよびOracle Databaseアドバンスト・キューイングを使用する場合のガイドライン
XMLデータおよびOracle Databaseアドバンスト・キューイングを使用する場合のガイドラインを示します。
37.1 XMLおよびOracle Databaseアドバンスト・キューイング
Oracle Databaseアドバンスト・キューイング(AQ)は、ネイティブのXMLメッセージをサポートしています。AQ操作をXMLベースのInternet-Data-Access-Presentation (iDAP)形式で定義できます。iDAPは拡張可能なメッセージの起動プロトコルです。これはインターネット標準に基づいて構築され、転送メカニズムとしてHTTP(S)および電子メール・プロトコルを使用します。XMLがiDAP用のデータ表示用の言語です。
- Oracle Databaseアドバンスト・キューイングおよびXMLメッセージ・ペイロード
XMLメッセージは、Oracle Databaseアドバンスト・キューイング(AQ)を使用してアプリケーション間で非同期に渡すことができます。 - Oracle Databaseアドバンスト・キューイングを使用するメリット
Oracle Databaseアドバンスト・キューイング(AQ)によって、アプリケーション間の通信の構成の柔軟性が提供されます。統合されたソリューションの管理、構成およびビジネス・ニーズの変化に伴う変更が容易になります。複雑な業務トランザクションを実行するための、アプリケーションの協調、調整、同期化が可能になります。
37.1.1 Oracle Databaseアドバンスト・キューイングおよびXMLメッセージ・ペイロード
XMLメッセージは、Oracle Databaseアドバンスト・キューイング(AQ)を使用してアプリケーション間で非同期に渡すことができます。
図37-1に、AQを使用して3つのアプリケーションと通信するOracle Databaseを示します。メッセージ・ペイロードはXMLデータです。この使用例においてAQが実行する一般的なタスクは、次のとおりです。
-
サブスクリプション・ルールを使用したメッセージ・フロー
-
メッセージ管理
-
メッセージからのビジネス・インテリジェンスの抽出
-
メッセージ変換
AQを使用してアプリケーション間で非同期にXMLメッセージを渡すユースケース:
-
企業内業務。典型的な使用例には、販売注文の遂行およびサプライチェーンの管理などがあります。
-
企業間業務処理。複数の統合ハブが、インターネットを介して通信できます。使用例には、旅行の予約、メーカーとサプライヤ間の調整、銀行間での資金の移動、保険請求の清算などがあります。
Oracleは、このアプローチを企業アプリケーション統合製品で使用します。XMLメッセージは、アプリケーションからAQハブへ送信されます。このハブは、メッセージを必要とするすべてのアプリケーションに対してメッセージ・サーバーとして機能します。このハブ・アンド・スポーク・アーキテクチャを介して、XMLメッセージを、疎結合された複数のアプリケーションへ非同期に送信できます。
図37-1に、AQを使用して、次のアプリケーションを介して配送したXMLペイロード・メッセージを示します。
-
iDAPを使用し、HTTPおよびHTTPS接続を介したAQ操作を行うWebベースのアプリケーション
-
Net*接続を介してXMLメッセージを伝播するために、AQを使用するアプリケーション
-
AQを使用して、HTTP、HTTPSまたはSMTPを介してインターネットまたはXMLメッセージを直接データベースへ伝播するアプリケーション
図37-1は、AQクライアントが、OCI、JavaまたはPL/SQLを使用してデータにアクセスできることも示しています。
図37-1 Oracle Databaseアドバンスト・キューイングおよびXMLメッセージ・ペイロード
「図37-1 Oracle Databaseアドバンスト・キューイングおよびXMLメッセージ・ペイロード」の説明
37.1.2 Oracle Databaseアドバンスト・キューイングを使用するメリット
Oracle Databaseアドバンスト・キューイング(AQ)によって、アプリケーション間の通信の構成の柔軟性が提供されます。統合されたソリューションの管理、構成およびビジネス・ニーズの変化に伴う変更が容易になります。複雑な業務トランザクションを実行するための、アプリケーションの協調、調整、同期化が可能になります。
AQが提供するメッセージ管理では、異なるアプリケーション間のメッセージ・フローを管理できます。AQは、監査や追跡目的、およびビジネス・インテリジェンスの抽出のためにもメッセージを保持できます。
AQは、メッセージにアクセスするためのSQLビューを提供します。これらのビューを使用して、動向を分析できます。
37.2 Oracle Databaseアドバンスト・キューイング
Oracle Databaseアドバンスト・キューイング(AQ)を使用すると、キュー内のデータとイベントを共有できます。データベース内またはデータベース間で情報を伝播し、指定した宛先に情報をルーティングできます。これによって、イベントを取得および管理し、他のデータベースおよびアプリケーションとイベントを共有するための機能性と柔軟性が提供されます。
AQを使用すると、あるソリューションを使用したために別のソリューションが使用できなくなるということがなくなります。分散した企業とアプリケーション、データ・ウェアハウスおよび高可用性ソリューションを構築および操作できます。
AQを使用して、次の操作をすべて実行できます。
-
データベースでの変更の取得。バックグラウンドの取得プロセスが表、データベース・スキーマまたはデータベース全体に加えられた変更を取得するように構成できます。取得プロセスでは、REDOログから変更が取得され、取得された各変更が論理変更レコード(LCR)にフォーマットされます。REDOログに変更が生成されたデータベースをソース・データベースと呼びます。
-
キューへのイベントのエンキュー。キューには、LCRおよびユーザー・メッセージという2つのタイプのイベントをステージングできます。取得プロセスでは、LCRイベントが、指定したキューにエンキューされます。そのキューは、LCRイベントを同じデータベース内で共有するか、または他のデータベースと共有できます。また、ユーザー・アプリケーションを使用してユーザー・イベントを明示的にエンキューすることもできます。明示的にエンキューされたこれらのイベントは、LCRまたはユーザー・メッセージになります。
-
あるキューから別のキューへのイベントの伝播。これらのキューは、同じデータベース内または異なるデータベース内に存在できます。
-
イベントのデキュー。バックグラウンドの適用プロセスによって、イベントをデキューできます。また、ユーザー・アプリケーションを使用してイベントを明示的にデキューすることもできます。
-
データベースでのイベントの適用。適用プロセスがキュー内のすべてのイベントまたは指定したイベントのみを適用するように構成できます。また、適用プロセスが、ユーザー独自のPL/SQLサブプログラムをコールしてイベントを処理するように構成することもできます。
LCRイベントが適用され、他のタイプのイベントが処理されるデータベースを宛先データベースと呼びます。構成によっては、ソース・データベースと宛先データベースが同じ場合もあります。
- メッセージ・キューイング
Oracle Databaseアドバンスト・キューイング(AQ)により、アプリケーションでメッセージをエンキュー、伝播およびデキューできます。
37.2.1 メッセージ・キューイング
Oracle Databaseアドバンスト・キューイング(AQ)により、アプリケーションでメッセージをエンキュー、伝播およびデキューできます。
AQでは、SYS.AnyData
型のメッセージがステージングされます。ほぼすべての型のメッセージをSYS.AnyData
ラッパーでラップし、SYS.AnyData
キューにステージングできます。AQでは、マルチ・コンシューマ・キュー、パブリッシュおよびサブスクライブ、コンテンツベースのルーティング、インターネット伝播、変換、他のメッセージ・サブシステムへのゲートウェイなど、メッセージ・キューイング・システムのすべての標準機能がサポートされます。
親トピック: Oracle Databaseアドバンスト・キューイング
37.3 オブジェクト型のXMLType属性
XMLType
属性を持つOracleオブジェクト型を使用するキューを作成できます。これらのキューは、XML文書であるメッセージを転送および格納するために使用できます。
XMLType
を使用すると、次の操作を実行できます。
-
任意の型のメッセージをキューに格納する。
-
文書を
CLOB
インスタンスとして内部的に格納します -
複数の型のペイロードをキューに格納する。
-
XMLExists
などのSQL/XML関数を使用してXMLType
列を問い合せる。 -
サブスクライバ・ルールまたはデキュー条件にその演算子を指定する。
37.4 Internet Data Access Presentation (iDAP): AQ用のSOAP
インターネット上でSimple Object Access Protocol (SOAP)を使用してOracle Databaseアドバンスト・キューイング(AQ)にアクセスできます。Internet Data Access Presentation (iDAP)は、AQ操作に対するSOAP仕様です。iDAPは、SOAP Request BodyのXMLメッセージ構造を定義します。
iDAPによって構造化されたメッセージは、HTTP(S)またはSMTPなどの転送プロトコルを使用してインターネット上で転送されます。
iDAPは、Content-Typeのtext/xml
を使用して、SOAPリクエストの本体を指定します。XMLでは、iDAPリクエストおよびレスポンス・メッセージは、次のように表現されます。
-
すべてのリクエスト・タグおよびレスポンス・タグは、SOAP名前空間で有効です。
-
AQ操作は、iDAP名前空間で有効です。
-
送信者は、SOAP本体のiDAP要素および属性に名前空間を含めます。
-
受信者は、適切な名前空間を含むiDAPメッセージを処理します。不適切な名前空間を持つリクエストの場合、リクエストが無効であるというエラーを戻します。
-
SOAP名前空間の値は、
http://schemas.xmlsoap.org/soap/envelope/
です。 -
iDAP名前空間の値は、
http://ns.oracle.com/AQ/schemas/access
です。
37.5 iDAPアーキテクチャ
HTTP(S)を使用するOracle Databaseアドバンスト・キューイング(AQ)操作には、iDAP HTTPクライアント、WebサーバーおよびOracleサーバーが必要です。
図37-2に、これらのコンポーネント間の関係を示します。
-
クライアント・プログラムは、iDAP形式に準拠したXMLメッセージをAQサーブレットに送信します。これには、Webブラウザなど任意のHTTPクライアントが含まれます。
-
Webサーバーまたは
サーブレット・コンテナ
は、Apache JServ、Tomcatなど、受信したXMLメッセージを解析するためのAQサーブレットをホストします。 -
Oracle AQサーブレットは、Oracle Databaseに接続し、キュー操作を実行します。
- XMLTypeキュー・ペイロード
XMLType
属性を含むペイロードを持つキューを作成できます。これらのペイロードは、XML文書を含むメッセージの転送および格納に使用できます。
37.5.1 XMLTypeキュー・ペイロード
XMLType
属性を含むペイロードを持つキューを作成できます。これらのペイロードは、XML文書を含むメッセージの転送および格納に使用できます。
XMLType
属性を持つOracleオブジェクトを定義すると、次の操作を実行できます。
-
複数の型のXML文書を同じキュー内に格納します。この文書は、
CLOB
インスタンスとして内部的に格納されます。 -
XMLExists
やXMLQuery
などのSQL/XML関数を使用して、XMLType
属性を持つメッセージを選択的にデキューします。 -
変換を定義して、Oracleオブジェクトを
XMLType
に変換します。 -
XMLExists
やXMLQuery
などのSQL/XML関数を使用して、メッセージ内容を問い合せるルールベースのサブスクライバを定義します。
この例で示すアプリケーションの海外向け出荷サイトでは、注文がSYS.XMLType
を使用して表現されると想定します。注文入力サイトでは、注文がOracleオブジェクトのORDER_TYP
として表現されます。
例37-1では、海外向け出荷用のキュー表およびキューを作成します。
海外向け出荷サイトの注文の表現は、注文入力サイトでの注文の表現と異なるため、メッセージは注文入力サイトから海外向け出荷サイトに送信される前に変換される必要があります。例37-2では変換を作成し、例37-3でそれを適用します。
注文入力アプリケーションによって使用される型から、海外向け出荷によって使用される型への変換の定義の詳細は、Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイドを参照してください。
例37-4では、別の国(この場合はカナダ)の顧客の注文を処理するアプリケーションで、メッセージをどのようにデキューできるかを示しています。
例37-1 キュー表およびキューの作成
BEGIN DBMS_AQADM.create_queue_table( queue_table => 'OS_orders_pr_mqtab', comment => 'Overseas Shipping MultiConsumer Orders queue table', multiple_consumers => TRUE, queue_payload_type => 'SYS.XMLtype', compatible => '8.1'); END; / BEGIN DBMS_AQADM.create_queue(queue_name => 'OS_bookedorders_que', queue_table => 'OS_orders_pr_mqtab'); END; /
例37-2 メッセージ・データをXMLに変換するための変換の作成
CREATE OR REPLACE FUNCTION convert_to_order_xml(input_order ORDER_TYP) RETURN XMLType AS new_order XMLType; BEGIN SELECT XMLElement("Row", input_order) INTO new_order FROM DUAL; RETURN new_order; END convert_to_order_xml; / BEGIN SYS.DBMS_TRANSFORM.create_transformation( schema => 'OE', name => 'OE2XML', from_schema => 'OE', from_type => 'ORDER_TYP', to_schema => 'SYS', to_type => 'XMLTYPE', transformation => 'convert_to_order_xml(source.user_data)'); END; /
例37-3 メッセージを海外に送信する前の変換の適用
-- Add a rule-based subscriber for overseas shipping to the booked-orders -- queues with transformation. DECLARE subscriber SYS.AQ$_AGENT; BEGIN subscriber := SYS.AQ$_AGENT('Overseas_Shipping', 'OS.OS_bookedorders_que', NULL); DBMS_AQADM.add_subscriber( queue_name => 'OS_bookedorders_que', subscriber => subscriber, rule => 'XMLSerialize(CONTENT XMLQuery(''//orderregion''' || 'PASSING tab.user_data RETURNING CONTENT)' || ' AS VARCHAR2(1000)) = ''INTERNATIONAL''', transformation => 'OE.OE2XML'); END; /
例37-4 XMLTypeおよびAQ: メッセージのデキュー
-- Create procedure to enqueue into single-consumer queues. CREATE OR REPLACE PROCEDURE get_canada_orders AS deq_msgid RAW(16); dopt DBMS_AQ.dequeue_options_t; mprop DBMS_AQ.message_properties_t; deq_order_data SYS.XMLType; deq_order_data_text CLOB; no_messages EXCEPTION; PRAGMA EXCEPTION_INIT (no_messages, -25228); new_orders BOOLEAN := TRUE; BEGIN dopt.wait := 1; -- Specify dequeue condition to select orders for Canada. dopt.deq_condition := 'XMLSerialize(CONTENT ' || 'XMLQuery(''/ORDER_TYP/CUSTOMER/COUNTRY/text()''' || ' PASSING tab.user_data RETURNING CONTENT)' || ' AS VARCHAR2(1000))=''CANADA'''; dopt.consumer_name := 'Overseas_Shipping'; WHILE (new_orders) LOOP BEGIN DBMS_AQ.dequeue(queue_name => 'OS.OS_bookedorders_que', dequeue_options => dopt, message_properties => mprop, payload => deq_order_data, msgid => deq_msgid); COMMIT; SELECT XMLSerialize(DOCUMENT deq_order_data AS CLOB) INTO deq_order_data_text FROM DUAL; DBMS_OUTPUT.put_line('Order for Canada - Order: ' || deq_order_data_text); EXCEPTION WHEN no_messages THEN DBMS_OUTPUT.put_line (' ---- NO MORE ORDERS ---- '); new_orders := FALSE; END; END LOOP; END; /
親トピック: iDAPアーキテクチャ
37.6 XMLおよびOracle Databaseアドバンスト・キューイングを使用する場合のガイドライン
XMLデータおよびOracle Databaseアドバンスト・キューイングを使用する場合のガイドラインを示します。
- 多くのPDFファイルを持つAQ XMLメッセージを1つのレコードとして格納する方法
Oracle Databaseアドバンスト・キューイング(AQ)を使用して、企業間でXML文書を交換できます。各メッセージには、XMLヘッダー、XMLアタッチメント(XMLデータ・ストリーム)、DTDおよびPDFファイルが含まれます。データは、キュー表などのデータベース表に格納できます。 - メッセージをエンキューした後の新しい受信者の追加
キュー表を使用して、メッセージ割当てをサポートできます。 - XMLメッセージのエンキューおよびデキュー
Oracle Databaseアドバンスト・キューイング(AQ)は、オブジェクトのエンキューおよびデキューをサポートします。このオブジェクトは、メタデータ属性に加えて、XML文書を含むXMLType
型の属性を持つことができます。 - XMLコンテンツを持つメッセージのAQキューからの解析
XMLコンテンツを持つメッセージをOracle Databaseアドバンスト・キューイング(AQ)キューから解析し、Operational Data Store (ODS)にある表およびフィールドを更新できます。 - XML文書が処理されるまでのリスナー停止の回避
メッセージを受信後、PL/SQLパッケージDBMS_JOB
を使用してジョブを送信できます。ジョブは、異なるデータベース・セッションで非同期に起動されます。リスナーは受信したXMLメッセージが処理されるまで待機する必要があるため、これによってメッセージがキューに蓄積するのを防ぐことができます。 - AQによるHTTPS
HTTPSを使用してXMLメッセージをサプライヤに送信し、レスポンスを受信するために、Oracle Databaseアドバンスト・キューイング(AQ)のインターネット・アクセス機能を使用できます。確実なトランザクション処理でHTTP(S)を介してXMLメッセージをエンキューまたはデキューできます。 - Oracle AQメッセージ・ペイロードへのXMLの格納
SYS.XMLType
が含まれるADTをペイロードとして使用する以外にも、XMLをOracle Databaseアドバンスト・キューイング(AQ)メッセージ・ペイロードにネイティブに格納できます。ペイロードとXMLType
属性を持つキューを作成できます。 - iDAPとSOAP
iDAPはOracle Databaseアドバンスト・キューイング(AQ)操作のためのSOAP仕様です。SOAPは、サービスを起動するための共通のメカニズムを定義します。iDAPは、AQ操作を実行するためのメカニズムを定義します。
37.6.1 多くのPDFファイルを持つAQ XMLメッセージを1つのレコードとして格納する方法
Oracle Databaseアドバンスト・キューイング(AQ)を使用して、企業間でXML文書を交換できます。各メッセージには、XMLヘッダー、XMLアタッチメント(XMLデータ・ストリーム)、DTDおよびPDFファイルが含まれます。データは、キュー表などのデータベース表に格納できます。
メッセージは、1つのレコードまたは1つのピースとしてOracleキュー表にエンキューできます。または、メッセージを複数のレコード(XMLデータ・ストリームに対するCLOB
型としての1つのレコード、PDFファイルに対するRAW
としての1つのレコードなど)としてエンキューできます。メッセージのデキューもできます。
次の方法で可能です。
-
CLOB
、RAW
などの属性を持つオブジェクト型を定義し、これを単一メッセージとして格納します。 -
AQメッセージ・グループ化機能を使用して、該当するメッセージを複数のメッセージに格納します。この場合、メッセージのプロパティは1つのグループに対応付けられます。メッセージ・グループ化機能を使用するには、すべてのメッセージのペイロード型が同じである必要があります。
ペイロードを指定するには、最初に、次の例のようにオブジェクト型を作成します。
CREATE TYPE mypayload_type as OBJECT (xmlDataStream CLOB, dtd CLOB, pdf BLOB);
次に、このオブジェクト型を単一のメッセージとして格納します。
37.6.2 メッセージをエンキューした後の新しい受信者の追加
キュー表を使用して、メッセージ割当てをサポートできます。
たとえば、他の企業は、メッセージを特定の企業に送信するときに、これらのメッセージを処理するために誰が割り当てられるかは認識していません。ただし、そのメッセージが人事部(HR)宛てであることは認識しています。そのため、すべてのメッセージは人事部管理者へ送信されます。この時点で、メッセージはキュー表にエンキューされます。このメッセージの受信者は人事部管理者のみであり、その他のすべての人事部社員はこのキューのサブスクライバとして事前定義されています。
メッセージがエンキューされた後に受信者のリストを変更することはできません。受信者のリストを指定しない場合、サブスクライバはそのキューをサブスクライブし、メッセージをデキューできます。この場合は、新しい受信者がそのキューのサブスクライバである必要があります。それ以外の場合は、メッセージをデキューし、そのメッセージを新しい受信者が再度エンキューする必要があります。
37.6.3 XMLメッセージのエンキューおよびデキュー
Oracle Databaseアドバンスト・キューイング(AQ)は、オブジェクトのエンキューおよびデキューをサポートします。このオブジェクトは、メタデータ属性に加えて、XML文書を含むXMLType
型の属性を持つことができます。
詳細および例は、Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイドを参照してください。
37.6.4 XMLコンテンツを持つメッセージのAQキューからの解析
XMLコンテンツを持つメッセージをOracle Databaseアドバンスト・キューイング(AQ)キューから解析し、Operational Data Store (ODS)にある表およびフィールドを更新できます。
AQと同時に、Oracle XML Parser for JavaおよびJavaストアド・プロシージャを使用すると、特定のXMLデータをターゲットにする問合せに基づいて、AQエンキューまたはAQデキューの回数やJMSヘッダー情報などのメタデータを取得できます。この方法は、Oracle Text XML検索とともに使用できます。
37.6.5 XML文書が処理されるまでのリスナー停止の回避
メッセージを受信後、PL/SQLパッケージDBMS_JOB
を使用してジョブを送信できます。ジョブは、異なるデータベース・セッションで非同期に起動されます。リスナーは受信したXMLメッセージが処理されるまで待機する必要があるため、これによってメッセージがキューに蓄積するのを防ぐことができます。
クライアントからのXMLメッセージの受信後、すぐにメッセージを処理する必要がある場合があります。しかし、各XML文書は処理数秒かかります。PL/SQLでは、XML文書を処理するために、1つのプロシージャがリスナーの開始、メッセージのデキュー、別のプロシージャのコールを行います。リスナーはXML文書が処理されるまで停止し、その間メッセージがキューに蓄積されます。
メッセージを受信後、かわりにPL/SQLパッケージDBMS_JOB
を使用してジョブを送信できます。ジョブは、異なるデータベース・セッションで非同期に起動されます。
メッセージがキューに入れられると非同期に起動されるPL/SQLコールバックを登録できます。PL/SQLコールバックは、Oracle Databaseアドバンスト・キューイング通知フレームワークの一部です。
37.6.6 AQによるHTTPS
HTTPSを使用してXMLメッセージをサプライヤに送信し、レスポンスを受信するために、Oracle Databaseアドバンスト・キューイング(AQ)のインターネット・アクセス機能を使用できます。確実なトランザクション処理でHTTP(S)を介してXMLメッセージをエンキューまたはデキューできます。
37.6.7 Oracle AQメッセージ・ペイロードでのXMLの格納
SYS.XMLType
が含まれるADTをペイロードとして使用する以外にも、XMLをOracle Databaseアドバンスト・キューイング(AQ)メッセージ・ペイロードにネイティブに格納できます。ペイロードとXMLType
属性を持つキューを作成できます。