ヘッダーをスキップ
Oracle Fusion Middlewareリリース・ノート
11gリリース1(11.1.1) for AIX Based Systems(64-Bit)
B55935-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

21 Oracleテクノロジ・アダプタ

この章では、Oracleテクノロジ・アダプタに関連する問題について説明します。内容は次のとおりです。

21.1 一般的な問題および回避方法

この項では、一般的な問題および回避方法について説明します。内容は次のとおりです。

21.1.1 Oracle JCAアダプタの問題および回避方法

この項では、すべてのアダプタ(Oracle AQ Adapter、Oracle JMS Adapter、Oracle Files/FTP Adapter、Oracle MQ Series Adapter、Oracle Database AdapterおよびOracle Socket Adapter)に当てはまる問題と回避方法について説明します。

この項で説明する問題は次のとおりです。

21.1.1.1 ECID伝播はOracleテクノロジ・アダプタでサポートされていない

ECID(Execution Context Identifier)伝播はOracleテクノロジ・アダプタでサポートされていません。ECIDはOracle Enterprise Managerでのメッセージ・フローの追跡に使用されます。このため、この機能はOracleテクノロジ・アダプタで使用できません。

21.1.1.2 コンポジットをアンデプロイしても指定した再試行期間再試行が行われる

再試行がバインディング・レベルで指定されるアダプタ参照で、コンポジットのアンデプロイ後も累積再試行期間(再試行数 x 再試行間隔)の間再試行が続けられます。

次の例に示すように再試行を構成したとします。

<property name="jca.retry.count" type="xs:integer" many="false"                override="may">20</property>
<property name="jca.retry.interval" type="xs:integer" many="false"                override="may">10</property>

この構成に基づくと期間は200秒となり、再試行時コンポジットが30秒後にアンデプロイされた場合でも、累積再試行期間(再試行 x 再試行間隔)に達するまで再試行が続けられます。

21.1.1.3 アウトバウンド・アダプタがGLOBAL_RETRYで例外をスローした場合、アウトバウンド・アダプタがアウトバウンド再試行を行わない

アウトバウンド・アダプタがGLOBAL_RETRYで例外をスローした場合、アウトバウンド・アダプタ・レベルで構成されている再試行が行われません。再試行はコール元にフォールバックします。コール元はBPELプロセスの場合もあります。Oracle BPELプロセスの次のトランザクション・セマンティクスでインバウンドからBPELプロセス(コール元BPELプロセス)へ再試行が行われることが認識されています。

シナリオ1:

<property name="bpel.config.transaction">requiresNew</property>
<property name="bpel.config.oneWayDeliveryPolicy">sync</property>

シナリオ2:

<property  name="bpel.config.transaction">required</property>
<property name="bpel.config.oneWayDeliveryPolicy">sync</property>

アダプタがLOCAL_RETRYをスローした場合、アウトバウンド・アダプタ・レベルで構成されている再試行が行われます。

インバウンド再試行が機能するには、Oracle BPELプロセスにデハイドレーション・ポイントがない必要があることに注意してください。

21.1.2 ファイルおよびFTP用Oracle JCAアダプタの問題および回避方法

この項では、Oracle File AdapterとOracle FTP Adapterに関連する次の問題および回避方法について説明します。

内容は次のとおりです。

21.1.2.1 SOAサーバーのフェイルオーバー時にファイルが失われる

Oracle File Adapterは、インバウンド・ディレクトリからファイルを取得してファイルを処理し、処理したファイルを出力ディレクトリに送信します。ただし、この処理時にSOA管理対象サーバーでフェイルオーバーが起こると、Oracle File Adapterの非トランザクション型特性から、ファイルが失われることがあります。この結果、インバウンド・アダプタで読み取られたファイルの一部が出力ディレクトリに送信されない場合があります。Oracle File Adapterを高可用性向けに構成し、フェイルオーバー時にファイルが失われないようにする必要があります。

21.1.2.2 実行時のDOM解析例外

Oracle File AdapterおよびOracle FTP Adapterでバイト・オーダー・マーク(BOM)付きのUnicode XMLファイルを読み取る際、実行時にDOM解析例外がスローされます。Unicode XMLファイルにBOMが使用されていない場合、例外はスローされません。

21.1.2.3 XMLデバッチ・シナリオで拒否処理が適切に機能しない

余分なタグや不正データなどのエラーのXMLペイロードを使用するシナリオをデバッチする場合、拒否されたメッセージとともに出力ファイルが作成されます。

21.1.2.4 論理ディレクトリが使用される場合、Enterprise ManagerからのJCAプロパティの更新が適用されない

Oracle File AdapterおよびOracle FTP Adapterでインバウンドおよびアウトバウンド操作に論理ディレクトリが使用される場合、Oracle Enterprise ManagerコンソールからのJCAプロパティの更新が適用されません。

21.1.2.5 Oracle FTP AdapterのFTPSでのデバッチ・シナリオの前提条件

Oracle FTP Adapterの大きなペイロードに対するFTP over SSL(FTPS)でのデバッチ・シナリオでは、同期プロセスを使用する必要があります。同期プロセスが使用されない場合、FTPサーバーからエラー・コード421がスローされます。

21.1.2.6 チャンク読取り機能でSecure FTPはサポートされていない

Oracle FTP Adapterのチャンク読取り機能では、SSHトランスポートを使用したSFTP(Secure FTP)はサポートされていません。

21.1.2.7 動的ファイル名を使用する場合の編集可能なAppendプロパティ

出力ファイルに動的ファイル名が指定されている場合、Appendプロパティは編集しません。しかし、Oracle Enterprise Manager Fusion Middleware Controlコンソールでは、出力ファイルに動的ファイル名が指定されている場合でもAppendプロパティを編集できます。出力ファイルに動的ファイル名を指定する場合、Appendプロパティを編集しないようにしてください。

動的ファイル名を使用する場合、Appendプロパティの値はfalseである必要があります。デフォルトでは、Appendプロパティはfalseで、動的ファイル名を使用する際、これは編集しません。

21.1.3 AQ用Oracle JCAアダプタの問題および回避方法

この項では、Oracle AQ Adapterに関連する次の問題および回避方法について説明します。

内容は次のとおりです。

21.1.3.1 オブジェクト・タイプからフィールドを読み取るOracle AQ Adapterはサーバー・ロケール・エンコーディングに依存する

アウトバウンドAQアダプタ、MediatorまたはBPELと、インバウンドAQアダプタを含むSOAプロジェクトで、ビジネス・ペイロード・オプションに「オブジェクト内のフィールド」を選択すると、各国語文字が化けます。この問題はサーバー・ロケール・エンコーディングに依存し、ネイティブ・ロケールでのみ起こります。ただし、サーバーがUTF-8エンコーディングで稼働している場合、この問題は起こりません。

21.1.3.2 Oracle AQ AdapterはOracle E-Business Suiteアプリケーションでキューからメッセージをデキューしない

E-Business Suiteアプリケーションでのキューからのデキューには、Oracle AQ AdapterではなくAdapter for Oracle Applicationsを使用することをお薦めします。

21.1.4 JMS用Oracle JCAアダプタの問題および回避方法

この項では、Oracle JMS Adapterに関連する次の問題および回避方法について説明します。

21.1.4.1 Oracle JMS Adapterのフロー制御設定の例

例外「weblogic.messaging.kernel.QuotaException: 割当て制限ブロック時間を超えました。割当て制限は使用できません。」が発生した場合、WLS JMSプロバイダで調整可能なフロー制御設定を使用し、生成および消費されるメッセージの数を制御します。

制御設定の調整の詳細は、次を参照してください。

http://e-docs.bea.com/wls/docs90/ConsoleHelp/pagehelp/JMSjmsconnectionjmsconnectionfactoryconfigflowcontroltitle.html

次に、使用フロー制御設定の使用とペイロード・サイズが5Kのメッセージの様々なしきい値の例を示します。

Config JMSServer:
    Message Buffer Size:5000

Config JMSConnectionFactory:
    Flow Control:
    Flow Maximum: 30
    Flow Minimum: 1
    Flow Interval: 10
    Flow Step: 10

check Flow Control Enabled
    Default Delivery: Send Timeout: 3000000

Config JMS Destinations:
       Bytes Threshold High: 50000
       Bytes Threshold Low:  50
       Messages Threshold High: 100
       Messages Threshold Low: 1
       Set Quota

21.1.4.2 Oracle JMS Adapterの再入可能なウィザードで接続先およびJNDI名が無効な場合警告メッセージが表示される

ある環境から別の環境へプロジェクトを移行する際、Oracle JMS Adapterのウィザードで次のページの「接続先」および「JNDI名」フィールドに編集モードで移入されます。

  • 「消費操作のパラメータ」ページ

  • 「発行操作のパラメータ」ページ

  • 「リクエスト操作パラメータ」ページ

  • 「リプライ操作パラメータ」ページ

  • 「リクエスト/リプライ操作パラメータ」ページ

ただし、「次へ」をクリックすると、アダプタ構成ウィザードでこれが有効な接続先かどうかが検証され、無効な場合はその旨の警告メッセージが表示されます。続行するか有効な接続先を入力するかを選択できます。

21.1.4.3 クラスタ環境で分散トピックが余分なメッセージを作成する

Oracle JMS Adapterをクラスタ内にデプロイされている分散トピックに使用する場合、トピックに実際に渡されたメッセージの数より多いメッセージがシナリオで処理されます。

トピックの各サブスクライバに、WLS JMSで処理されるメッセージのコピーが渡されます。したがって、処理されるメッセージの数は、分散トピックでアクティブなサブスクライバの数と同じです。これは、Oracle WebLogic Application Server 10.3のOracle WebLogic JMSの既知の動作です。

21.1.5 データベース用Oracle JCAアダプタの問題および回避方法

この項では、Oracle Database Adapterに関連する次の問題および回避方法について説明します。

21.1.5.1 「アクティブな作業ユニットの取得」プロパティの値がアウトバウンドSELECT操作用に保存されない

SELECT操作を行うようアウトバウンドOracle Database Adapterを構成する際、アダプタ構成ウィザードの「詳細オプション」ページで「アクティブな作業ユニットの取得」を選択した場合、GetActiveUnitofWorkプロパティの値が.jcaファイルに保存されません。

この問題の回避方法は、次の例に示すようにこのプロパティをOracle Database Adapterの.jcaファイルに手動で追加することです。

<property name="GetActiveUnitOfWork" value="true"/>

21.1.5.2 リモート・フォルト時のバインディング・フォルト再試行はOracle Enterprise Managerコンソールで取得されない

composite.xmlでバインディング・フォルト再試行が指定されていてフォルト・ポリシーが定義されていない状況で、Oracle Database Adapterがリモート・フォルト(データベースの停止)でトランザクションを再試行するシナリオについて考えます。このようなシナリオでは、Oracle Database Adapterで行われるバインディング・フォルト再試行はOracle Enterprise Managerコンソールの監査証跡で取得されません。

21.1.6 MQ Series用Oracle JCAアダプタの問題および回避方法

この項では、Oracle MQ Series Adapterに関連する次の問題および回避方法について説明します。

21.1.6.1 Oracle MQ Series AdapterはMediatorに対する非同期リクエスト/レスポンス・パターンをサポートしない

Oracle MQ Series Adapterでは、非同期リクエスト/レスポンス・パターンはサポートされません(Mediatorがサーバーの場合)。

21.1.6.2 アウトバウンド・リソースがXAの場合、Oracle MQ Series Adapterでアウトバウンド再試行が行われない

アウトバウンド・リソースにXAを選択した場合、アウトバウンド・リソースがXAの場合のアウトバウンド再試行がOracle MQ Series Adapterでサポートされないため、例外がスローされ、再試行されません。反対に、アウトバウンド・リソースがXA以外の場合、再試行は正常に行われます。

21.1.6.3 クラスタ環境でチャネルを停止するとOracle MQ Seriesがハングする

複数の管理対象サーバーを使用する場合、チャネルを停止しようとすると、Oracle MQ Seriesがハングします。これは、WindowsとUNIXの両オペレーティング・システムで起こります。

21.1.6.4 その他のエンコーディングの追加がサポートされない

標準JavaエンコーディングとそのマッピングがMQ Series Adapterに用意されていますが、必要なその他のJavaエンコーディングの追加がアダプタ構成ウィザードでサポートされません。

リストにない標準Javaエンコーディングのサポートを追加するには、次の手順を実行します。

  1. MQSeriesAdapter.rarファイルからMQSeriesAdapter.jarファイルを抽出します。

  2. MQSeriesAdapter.jarファイルからmq.propertiesファイルを抽出します。

  3. mq.propertiesファイルにエントリを追加します。このファイルには、MQ SeriesエンコーディングとJavaエンコーディングとの間のマッピング用のエントリが2つあります。必要な新規エンコーディングごとに、mq.propertiesに2つのエントリを作成する必要があります。MQ Seriesエンコーディングから対応するJavaエンコーディングへのエントリと、Javaエンコーディングから対応するMQ Seriesエンコーディングへのエントリを作成します。

21.1.7 ソケット用Oracle JCAアダプタの問題および回避方法

この項では、Oracle Socket Adapterに関連する次の問題および回避方法について説明します。

21.1.7.1 Oracle Socket Adapterはクラスタ・ベースの環境でサポートされていない

Oracle Socket Adapterはクラスタ・ベースの環境でサポートされていません。インバウンドOracle Socket Adapterをクラスタ環境にデプロイしようとすると、管理対象サーバーの1つで、サーバーのポートがすでに使用されているというエラー・メッセージがスローされます。

21.1.8 ネイティブ・フォーマット・ビルダーの問題および回避方法

この項では、ネイティブ・フォーマット・ビルダーに関連する次の問題および回避方法について説明します。

21.1.8.1 NXSDで空白デリミタ・オプションがサポートされていない

ネイティブ・フォーマット・ビルダー・ウィザードの「デリミタの指定」ページで「デリミタ」リストの「空白(任意の数のタブ、スペース)」がサポートされていません。

21.1.9 Oracle Adapter for Oracle Applicationsの問題および回避方法

この項では、Oracle Adapter for Oracle Applicationsに関連する次の一般的な問題および回避方法について説明します。

21.1.9.1 PL/SQL APIを使用する場合のレコード・タイプに対するデフォルト値の移入

Oracle E-Business Suiteから公開される特定のPL/SQL APIでは、入力としてレコード・タイプを受け取ります。そのようなAPIでは、正常に実行されるようレコード・タイプ内のパラメータにデフォルト値が移入されることが想定されています。

デフォルト値は、文字の場合はFND_API.G_MISS_CHAR、日付の場合はFND_API.G_MISS_DATE、数値の場合はFND_API.G_MISS_NUMです。レコード・タイプ内のパラメータが、次の例に示すようにnil値として渡された場合、Adapter for Oracle Applicationsでデフォルトのこれらの値が設定されます。

<PRICE_LIST_REC>
<ATTRIBUTE1 xsi:nil="true"/>
<ATTRIBUTE2 xsi:nil="true"/>
<ATTRIBUTE3 xsi:nil="true"/>
...
</PRICE_LIST_REC>

これは、変換アクティビティを使用して、あるいはXML入力を直接渡して割当てアクティビティ内のレコード・タイプに割り当てることで実現できます。

21.1.9.2 既存のPL/SQL SOAコンポジットを異なるリリースのインスタンスに使用する際のラッパー・パッケージの再作成

Oracle E-Business Suiteリリース11iに対して作成されたPL/SQL APIのSOAコンポジットがあり、リリース12のインスタンスに対して使用する場合、またはその逆の場合、ターゲット・インスタンスで互換性をとるためにSOAコンポジットのラッパー・パッケージを再作成する必要があります。この方法では、ターゲット・インスタンスに対して生成されたラッパーSQLファイルでシグネチャが更新され、シグネチャが同じか変更されたかについてターゲット・インスタンスで混乱されないようにします。

21.1.9.3 別のインスタンスにデプロイする場合、XSDフォルダでSQLスクリプトを見つけ、コンカレント・プログラムSOAコンポジットのラッパー・パッケージを再作成する

Adapter for Oracle Applicationsでコンカレント・プログラムを選択してパートナ・リンクをユーザーが作成すると、コンカレント・リクエストを発行するラッパー・パッケージを作成するSQLスクリプトが、ルート・コンポジットフォルダの直下ではなくコンポジット・アーティファクト内のXSDフォルダに生成されます。このため、ユーザーがOracle E-Business Suiteインスタンスに対してコンポジットを作成し、別のOracle E-Business Suiteインスタンスにデプロイする場合、XSDフォルダでスクリプトを見つけ、ターゲット・インスタンスに対して実行する必要があります。

21.1.9.4 ビジネス・イベント・インバウンド再試行が適切に機能するために古い再試行プロパティ名を使用

ビジネス・イベント・インバウンド再試行がこのリリースのAdapter for Oracle Applicationsで適切に機能するには、新しいjca再試行プロパティjca.retry.countおよびjca.retry.intervalのかわりに古い再試行プロパティ名retryMaxCountおよびretryIntervalを使用する必要があります。

21.1.9.5 Adapter for Oracle Applicationsの再試行インスタンスは一意でないECIDを持つ

Adapter for Oracle Applicationsのすべての再試行インスタンスは同じECIDを共有します。元のインスタンスのECIDは、対応する再試行インスタンスのECIDと一致しません。

21.1.9.6 ウィザードからのアプリケーション・データベース接続の再選択は設計時機能しない

Oracle JDeveloperで複数のアプリケーション・データベース接続が作成されている場合、アダプタ構成ウィザードでデータベース接続を選択して「次へ」ボタンをクリックしてから別のデータベース接続を選択するはずだったことに気付いたとき、「戻る」ボタンをクリックしてデータベース接続を新たに選択しなおすのではなく、ウィザードを取り消してプロセスを再起動します。「戻る」ボタンをクリックして別のデータベース接続を再選択することは、このリリースでは機能しません。

21.1.9.7 拒否の処理が機能しない

コンポジットでメッセージの処理に失敗するフォルトが発生した場合、拒否されたメッセージはこのリリースのAdapter for Oracle Applicationsで適切に処理されません。

21.1.9.8 11.5.9インスタンスに接続する場合、イベント・サブスクリプションにルール関数とアウト・エージェントの値を手動で追加

Oracle E-Business Suiteリリース11.5.9に新規ビジネス・イベント・パートナ・リンクを作成すると、ルール関数とアウト・エージェントの値が空で関連付けられているイベント・サブスクリプションも作成されます。この結果、ビジネス・イベントの発生時サブスクリプションが実行されません。

回避方法は、サブスクリプションを手動で編集し、ルール関数としてWF_RULE.DEFAULT_RULEを、アウト・エージェントとしてWF_BPEL_QAGENT<system_name>を追加することです。

21.2 構成の問題および回避方法

この時点で既知の構成の問題はありません。

21.3 ドキュメントの訂正箇所

この項では、ドキュメントの訂正箇所を示します。内容は次のとおりです。

21.3.1 アウトバウンド相互作用に対する再試行可能な例外の情報の誤り

「アダプタ・ライフサイクルの管理」のアウトバウンド相互作用に対する再試行可能な例外に関する項に次の情報が記載されていますが、これはアウトバウンド相互作用には当てはまりません。

リプライ・アクティビティ失敗の再試行は、指定したjca.retry.count値より1少ないことに注意してください。たとえば、jca.retry.countが5の場合、アダプタで6回試行されるはずです(1試行 + 5再試行)。しかし、4回のみ再試行され、Oracle Enterprise Managerコンソールにインスタンスが5つのみ表示されます。

21.3.2 DBActivationSpecプロパティUndyingは11gで常にtrue

「データベース用Oracle JCAアダプタ」のUndyingに関する項に、新しいプロパティUndyingがサポートされると記載されています。しかし、Undyingは現在常にtrueです。このため、この構成プロパティは削除されています。