ヘッダーをスキップ
Oracle Application Serverリリース・ノートおよび新機能
10gリリース3(10.1.3.5.1)
B57229-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

11 Oracle Application Serverテクノロジ・アダプタ

この章では、Oracle Application Serverテクノロジ・アダプタとOracle Adapter for Oracle Applicationsに関連する問題および新機能について説明します。内容は次のとおりです。

11.1 インバウンドOracle AQアダプタで相関とデキュー条件の両方を指定するとAQORACLESQLEXCEPTIONが発生する

AQアダプタ・ウィザードを使用してデキュー操作をモデル化する場合、アダプタ構成ウィザードによりデキュー条件と相関IDの両方を指定できますが、これは正しくありません。デキュー操作にはデキュー条件か相関IDのどちらか1つのみを指定する必要があり、両方を指定してはいけません。

デキュー条件と相関IDの両方を指定すると、次の例に示すように、デキュー操作がORA-25240エラーで失敗します。

oracle.AQ.AQOracleSQLException: ORA-25240: message ID and dequeue
condition/correlation ID specified in dequeue options

11.2 Oracle MQ SeriesアダプタではconnectionFactoryLocationプロパティに一意の値が必要

MQ SeriesアダプタでJNDI接続をリクエストする場合は、connectionFactoryLocationプロパティに一意の値を指定する必要があります。

11.3 Oracle MQ SeriesアダプタではXAと非XAの両モードでの同時動作がサポートされない

Oracle MQ SeriesアダプタはXAモードか非XAモードのどちらか一方で動作します。XAモード用の構成を設定すると、アダプタは今後のデプロイはすべてXA関連のみであると予測します。XAモードで作業している場合に、JNDI接続設定でxATransactionプロパティをfalseに設定すると、アダプタによりアウトバウンド操作で例外がスローされます。

11.4 Oracle MQ SeriesアダプタではxATransactionプロパティをtrueに設定する必要がある

XAトランザクションでは、次の例に示すように、アウトバウンドJNDIはoc4j.xmlファイルのxATransactionプロパティをtrueに設定する必要があります。

<config-property name="xATransaction" value="true"/>

xATransactionプロパティ値をfalseに設定すると、プロセスによりjava.lang.NullPointerException例外がスローされます。

11.5 MQ Seriesアダプタのアウトバウンド同期リクエスト/返信シナリオではリクエストと返信に異なるキューを使用する必要がある

アウトバウンド同期リクエスト/返信シナリオでは、リクエストおよび返信パラメータであるQueueNameReplyToQueueNameが必ず異なるようにします。リクエストと返信の両方の操作に同じキューを使用すると、処理がタイムアウトします。

11.6 RFH2ヘッダーに対応するにはMQAdapterOutboundHeader.wsdlファイルを手動で編集する必要がある

10.1.3.5では、MQAdapterOutboundHeader.wsdlファイルでRFH2ヘッダーに対応するためのUIサポートがありません。

次の手順に従ってMQAdapterOutboundHeader.wsdlファイルを手動で編集する必要があります。

  1. MQOutboundHeader要素で、次の要素を追加します。

    <element name="MQHeaderExtended" type="mq:MQHeaderExtended" minOccurs="0"
    />
    
  2. 次に、MQAdapterOutboundHeader.wsdlファイルに次のコードを追加します。

    <complexType name="MQHeaderExtended">
                <sequence>
                    <element name="StrucId" type="mq:asd" minOccurs="1"/>
                    <element name="Version" type="mq:asd" minOccurs="1"/>
                    <element name="Encoding" type="mq:asd" minOccurs="1"/>
                    <element name="CodedCharSetId" type="mq:asd" minOccurs="1"/>
                    <element name="Format" type="mq:asd" minOccurs="1"/>
                    <element name="Flags" type="mq:asd" minOccurs="1"/>
                    <element name="NameValueCCSID" type="mq:asd" minOccurs="1"/>
                    <element name="JMSFolder" type="mq:asd" minOccurs="0"/>
                    <element name="USRFolder" type="mq:asd" minOccurs="0"/>
                </sequence>
      </complexType>
      <complexType name="asd">
                 <simpleContent>
                    <extension base="string">
                    <attribute name="dataType" use="required"  type="mq:PropTypeEnum"/>
                   <attribute name="value" use="required" type="string"/>
                    </extension>
                 </simpleContent>
     </complexType>
    

11.7 リモート返信キューのメッセージにインバウンド同期リクエスト/返信シナリオのキュー・マネージャ名を含める必要がある

メッセージをリモート・キュー定義であるreplyToQueueNameと一緒に挿入し、replyToQueueManagerを指定しない場合、キュー・マネージャはリモート・キュー定義から宛先キュー名と宛先キュー・マネージャ名を割り出して、replyToQueueNamereplyToQueueManagerNameに適切に移入します。

たとえば、宛先キュー・マネージャがQM2、宛先キュー名がQB、Rはキュー・マネージャQM1上のこのキューのリモート定義とします。

メッセージMをM.replyToQueueName="R"と一緒に挿入してキュー・マネージャ名を指定しない場合、MQSeriesは適切な値をM.replyToQueueName="B"およびM.replyToQueueManagerName="QM2"として内部的に解決します。ただし、M.replyToQueueManagerName="QM1"M.replyToQueueName="R"を一緒に指定すると、この自動解決は阻止され、操作は予想どおりの動作になります。

これはキュー・マネージャによって解決される宛先キュー・マネージャと宛先キュー名にキュー・マネージャ接続からアクセスできない場合があるためで、その場合は理由コードMQ 2087 MQRC_UNKNOWN_REMOTE_Q_MGRが発生します。

11.8 データベース・アダプタ用File2StoredProcedureサンプルの実行に必要な回避方法

bpel\samples\tutorials\122.DBAdapterに置かれたFile2StoredProcedureサンプルを実行するには、次の手順を実行する必要があります。

  1. XSDファイルに次の句を追加します。

    elementFormDefault="qualified"
    
  2. 「db:」を削除してインスタンスXMLを変更し、次のネームスペースを追加します。

    <InputParameters
            xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/SCOTT/ADDEMPLOYEES/">
    ...
    </InputParameters>
    
  3. サンプルを新規XSDファイルと一緒に再デプロイし、更新されたインスタンスXMLと一緒に起動します。

11.9 oc4j-ra.xmlファイルに対する更新後の要件

oc4j-ra.xmlファイルを修正した場合、変更を有効にするために必ずサーバーを再起動する必要があります。

11.10 新機能

この項では、次のアダプタに対するOracle Application Server 10gリリース10.1.3.5の新機能について説明します。

11.10.1 Oracle Adapter for Oracle Applicationsの機能

Oracle Application Server 10gリリース10.1.3.5には、Oracle Adapter for Oracle Applicationsの次の新機能が含まれています。

11.10.1.1 ヘッダー変数の追加サポート

ヘッダー変数は、アプリケーションのコンテキスト情報を提供するために使用します。この情報は、SOAスイートでコンカレント・プログラムおよびPL/SQL APIを処理するために必要になります。ヘッダーを追加サポートするために、Oracle Adapter for Oracle Applicationsは、アプリケーション・コンテキストを設定するための既存のパラメータUsernameResponsibilityおよびOrg_IDに加えて、次の3つの新規ヘッダー・パラメータを受け入れるようになりました。

  • RespApplication: コンテキストの設定に使用する必要のある職責アプリケーション・キーです。

  • SecurityGroup: セキュリティ・グループ・キーで、渡されないとデフォルトのStandardに設定されます。

  • NLSLanguage: リクエスト用の言語コードです。NLSコンテキストは渡された言語コードに設定されます(有効であれば)。渡されないと、デフォルトの「US」に設定されます。


注意:

以前のリリースで使用していた既存のヘッダー・パラメータResponsibilityは、職責名のほかに職責キーも入力として使用できるようになりました。ヘッダー・パラメータNLSLanguageが設定されていて、職責名が渡される場合、渡されるResponsibilityの値は同じ言語であることが期待されます。ただし、職責キーおよびその他すべてのヘッダー・パラメータは言語に依存しません。

これらのヘッダー・パラメータすべてを一緒に使用して、アプリケーション・コンテキストを設定します。あるいは、UsernameとResponsibilityのみを渡すと、以前のリリースと同じように動作します。

値がnullまたは空の場合は、次に示すパラメータのデフォルト値に設定されます。

  • Username: SYSADMIN

  • Responsibility: System Administrator

  • SecurityGroup: Standard

  • NLSLanguage: US

ヘッダー変数を割り当てるための設計時のタスク

  1. 新規BPELプロジェクトを作成します。

  2. パートナ・リンクを追加します。

  3. Invokeアクティビティを構成します。

    1. Invokeアクティビティの入力および出力変数の作成など、「一般」タブで基本情報を設定します。

    2. 図11-1に示すように、「アダプタ」タブでヘッダー変数を作成し、それをAppsContextHeader.wsdlファイルのHeader_msg messageタイプで構成します。

      図11-1 「変数の作成」ダイアログ

      図11-1の説明が続きます
      「図11-1 「変数の作成」ダイアログ」の説明

  4. 次の手順でAssignアクティビティをInvokeアクティビティの前に追加してヘッダー変数を割り当てます。

    1. 「割当て」ダイアログ・ボックスで「コピー操作」タブを選択し、「作成」ドロップダウン・リストから「コピー操作」を選択します。

    2. Assignアクティビティにヘッダー変数値を入力するには、Fromグループでタイプとして「式」を選択し、'operations'などのusername変数値を入力します。

    3. Toグループで、「変数」「プロセス」「変数」「Variable_1」「ヘッダー」「ns2:ProcedureHeaderType」に移動し、「ns2:Username」を選択します。図11-2に示すように、XPathフィールドに選択したエントリが表示されるはずです。

      図11-2 「コピー操作の作成」ダイアログ

      図11-2の説明が続きます
      「図11-2 「コピー操作の作成」ダイアログ」の説明

    4. 「OK」をクリックします。

  5. 同じ方法を使用してその他のヘッダー変数値を割り当てます。たとえば、図11-3に示すように、次のパラメータ値を入力します。

    • Responsibilityに'Order Management'

    • ORG_IDに'207'

    • RespApplicationに'ONT'

    • SecurityGroupに'Standard'

    • NLSLanguageに'US'

    図11-3 「割当て」ダイアログ

    図11-3の説明が続きます
    「図11-3 「割当て」ダイアログ」の説明

11.10.2 MQアダプタの機能

次の項では、MQ Seriesアダプタの新機能について説明します。

11.10.2.1 インバウンド・リクエスト/返信(同期型)シナリオでヘッダーを返信メッセージ・ヘッダーにコピーするためのMQアダプタの新規プロパティ

同期/リクエスト/レスポンス(インバウンド)シナリオでは、MQアダプタは、インバウンド・リクエスト・メッセージから返信メッセージに永続性と有効期限間隔を渡す必要があります。CopyPersistenceFromInboundおよびPropagateExpiryIntervalプロパティをtrueに設定して、2つのインバウンド・ヘッダーが返信メッセージ・ヘッダーにコピーされるようにする必要があります。

11.10.3 Oracle FileおよびFTPアダプタの機能

次の項では、FileおよびFTPアダプタの新機能について説明します。

11.10.3.1 FTPアダプタでサポートされるLISTコマンド

FTPアダプタがタイムスタンプでファイルをソートできるように、LISTコマンドのサポートが追加されました。

インバウンドWSDLでUseNlstプロパティをfalseに設定することにより(UseNlst="false")、リストにLISTコマンドを使用するようにFTPアダプタを構成できます。このプロパティを設定すると、アダプタはNLSTの反対であるLISTを使用します。

11.10.3.2 Oracle FileおよびFTPアダプタのソート

ファイルを特定の順序でソートするようにインバウンドOracle FileまたはFTPアダプタを構成できます。たとえば、Oracle FileおよびFTPアダプタのソート・パラメータを設定して、タイムスタンプの昇順または降順にファイルを処理することができます。

Oracle FileおよびFTPアダプタのソート・シナリオでは、次の前提条件を満たす必要があります。

  1. 同期操作を使用します。

  2. FTPアダプタを使用している場合は、インバウンドWSDLUseNlst="false"プロパティを設定します。

  3. 次のプロパティをインバウンドWSDLに追加します。

    • ファイル名を変更されたタイムスタンプで昇順にソートするには、次を使用する必要があります。

      Sorter="oracle.tip.adapter.file.sorter.TimestampSorterAscending
      
    • ファイル名を変更されたタイムスタンプで降順にソートするには、次を使用する必要があります。

      Sorter="oracle.tip.adapter.file.sorter.TimestampSorterDescending
      
  4. 10.1.3.5インストールでは、$ORACLE_HOME/bpel/system/services/config/pc.propertiesに、次のパラメータを設定する必要があります。

    oracle.tip.adapter.file.numProcessorThreads=1
    
  5. サーバーを再起動します。

11.11 ドキュメントの誤り

この項では、ドキュメントの誤りについて説明します。内容は次のとおりです。

11.11.1 論理削除に対する間違ったヘルプ

データベース・アダプタで、「アダプタ構成ウィザード - 論理削除」ページの「未読取り値」フィールドに関するヘルプが間違っています。

「未読取り値」フィールドに関する正しいヘルプは、次のようになります。

(オプション)その行を読む必要があることを示すために、明示的な値を入力します。