次の方法で共有


Oracle E-Business Suite アダプターに関する運用上の問題のトラブルシューティング

このセクションでは、Microsoft BizTalk Adapter for Oracle E-Business Suite を使用するときに発生する可能性がある操作エラーを解決するためのトラブルシューティング手法の使用について説明します。

トレースの有効化

Oracle E-Business アダプターでのトレース サポートの詳細については、「Oracle E-Business Suite アダプターの診断トレースとメッセージ ログ」を参照してください

の既知の問題

BizTalk アダプター パックを使用するときに発生する可能性のある最も一般的なエラーと、その考えられる原因と解決策を次に示します。

アダプター バインドの読み込み中にエラーが発生しました

問題

アダプター サービス参照 Visual Studio プラグインの追加またはアダプター サービス BizTalk プロジェクト アドインの使用を開始しようとすると、次のエラーが表示されます。

There was an error loading the binding, <binding name>, from your system configuration.  
ConfigurationErrorsException: Exception has been thrown by the target of an invocation.  

原因

アダプター サービス参照プラグインの追加またはアダプター サービスアドインの使用を開始しようとすると、WCF は、インストールされているすべてのアダプターのアダプター バインドを読み込みます。 さらに、アダプター バインドは、エンタープライズ アプリケーションの特定のクライアント ソフトウェアに依存します。 この問題は、次のいずれかの理由で発生する可能性があります。

  • アダプターをインストールしたコンピューターには、必要な LOB クライアント ソフトウェアがインストールされていません。

  • BizTalk アダプター パックに含まれるすべてのアダプターをインストールするアダプターの一般的なインストールまたは完了インストールを行いました。 ただし、LOB クライアント ライブラリは、1 つのエンタープライズ アプリケーションに対してのみインストールできます。 その結果、GUI は他のアダプターのバインドの読み込みに失敗します。

    解決策

  • BizTalk アダプター パックをインストールしたコンピューターに、必要な LOB クライアントのバージョンがインストールされていることを確認します。 サポートされているクライアント バージョンの詳細については、インストール ドライブ>:\Program Files\Microsoft BizTalk Adapter Pack で<入手できるインストール ガイドを参照してください。

  • 必要なアダプターのみをインストールするには、必ずアダプターのカスタム インストールを行ってください。

Oracle E-Business Suite アダプターが、BizTalk Server管理コンソールのアダプターの一覧に表示されない

問題

BizTalk Server付属のアダプターの以前のバージョンとは異なり、BizTalk アダプター パックに付属している Oracle E-Business アダプターは、BizTalk Server管理コンソールのアダプターの一覧に表示されません。

原因

最新の Oracle E-Business アダプターは、WCF カスタム バインドです。 そのため、BizTalk Server管理コンソールには WCF-Custom アダプターが表示されますが、WCF カスタム バインドは表示されないため、WCF ベースの Oracle E-Business アダプターは表示されません。

解像度

Oracle E-Business アダプターをBizTalk Server管理コンソールに明示的に追加するには、「Oracle E-Business Suite アダプターを管理コンソールに追加する」で説明されている手順BizTalk Server実行します。

Oracle E-Business Suite での操作の実行中にエラーが発生しました

問題

BizTalk Serverを使用して Oracle E-Business Suite で操作を実行すると、アダプターによって次のエラーが発生します。

  • BizTalk Serverの場合

    System.ArgumentNullException: Value cannot be null.  
    

    原因

    メッセージの WCF アクションが指定されていません。 WCF では、すべての操作に対して SOAP アクションを指定する必要があります。これにより、LOB アプリケーションで実行される操作についてアダプターに通知されます。

    解決策

    送信ポートで SOAP アクションを指定するか、BizTalk オーケストレーションのメッセージ コンテキスト プロパティとして指定します。 手順については、「 Oracle E-Business Suite の SOAP アクションを構成する」を参照してください。 各操作のアクションの一覧については、「 Oracle EBS アダプターのメッセージとメッセージ スキーマ 」を参照してください。

受信場所で要求メッセージが削除されると、Oracle クライアントのバージョンが正しくないため、BizTalk プロセスがクラッシュする可能性があります

問題

BizTalk オーケストレーションで定義されている受信場所で要求メッセージが削除されると、オーケストレーションによってメッセージが使用され、BizTalk ホスト (BTSNTSvc.exe) がクラッシュして再起動されます。

原因

Oracle クライアントをインストールすると、PATH 変数の最新のクライアント アセンブリへの参照が追加されます。 また、Oracle クライアント アセンブリの最新のインストールへの参照は、既存のクライアント アセンブリへの参照の前にあります。 そのため、最新の Oracle クライアント インストールがサポートされているクライアント バージョンでない場合は、BizTalk ホストがクラッシュし、再起動します。

たとえば、サポートされている Oracle クライアント 11.1.0.7 がコンピューターに既にインストールされており、PATH 変数に次の参照があるとします。

C:\oracle\product\11.1.0\client_1\bin;  

サポートされていない Oracle クライアント (10.2.0.3 など) が同じコンピューターにインストールされている場合、PATH 変数には次の参照があります。

C:\oracle\product\10.2.0\db_2\bin;C:\oracle\product\11.1.0\client_1\bin;  

サポートされていないクライアント バージョンは、サポートされているバージョンより前に参照されるため、BizTalk ホストがクラッシュします。 複数の BizTalk ホストが実行されている場合は、アダプターをホストしているホストがクラッシュします。

解像度

同じコンピューターに複数の Oracle クライアントがインストールされている場合は、PATH 変数の他の Oracle クライアント バージョンの前に、サポートされている Oracle クライアントバージョンが参照されていることを確認してください。 たとえば、サポートされている Oracle クライアント バージョンが 11.1.0.7 の場合、PATH 変数の参照は次のようになります。

  
C:\oracle\product\11.1.0\client_1\bin;C:\oracle\product\10.2.0\db_2\bin;  

アダプターは、操作の実行時にオーバーフロー例外をスローする可能性があります

問題

アダプターを使用して、DataSets または弱く型指定された REF CURSORS 内の Oracle 数値データ型を含む操作を実行しようとすると、アダプターがオーバーフロー例外をスローする可能性があります。

原因

これは、DataSets 内の Oracle 数値データ型に大きな値を指定した場合、またはそれぞれの .NET 型に収まらない弱い型の REF CURSORS を指定した場合に発生します。

解像度

DataSets または弱く型指定された REF CURSORS 内の Oracle 数値データ型に大きな値を渡す場合は、 EnableSafeTyping バインド プロパティの値を true に設定して、安全な型指定を有効にする必要があります。 安全な型指定を有効にすると、DataSets または弱く型指定された REF CURSORS 内の Oracle 数値データ型が文字列として公開されます。

ExecuteScalar 操作の実行時に、アダプターが算術オーバーフロー例外をスローする可能性がある

問題

アダプターを使用して、多数を取得する ExecuteScalar 操作で SELECT ステートメントを実行しようとすると、アダプターは次の例外をスローします。 "System.OverflowException: 算術演算によってオーバーフローが発生しました。

原因

これは、ODP.NET での ExecuteScalar 操作の既知の制限が原因で発生します。 ODP.NET、データを .NET Decimal データ型に収めようとします。結果が大きすぎて .NET Decimal 型に収まらない場合は、例外がスローされます。

解決策

ExecuteScalar 操作の SELECT ステートメントで TO_CHAR() を使用して、返されたデータを文字列として変換します。

アダプター クライアントは、操作の実行中に次の例外をスローする可能性があります。 "ユーザー ID、責任 ID、アプリケーション ID を取得できませんでした。正しい値が渡されたかどうかを確認してください。

問題

Oracle E-Business Suite 成果物 (インターフェイス テーブル、インターフェイス ビュー、同時実行プログラム、および要求セット) に対して操作を実行している場合、アダプター クライアントはこの例外をスローする可能性があります。

原因

これは、インターフェイス テーブル、インターフェイス ビュー、同時実行プログラム、および要求セットに対して操作を実行しているときに、Oracle ユーザー名、パスワード、責任名の間違った組み合わせを指定した場合に発生します。 Oracle E-Business アダプターでは、これらの成果物のアプリケーション コンテキストを設定するために、これらの値が必要です。 アプリケーション コンテキストの設定の詳細については、「アプリケーション コンテキストの 設定」を参照してください。

解決策

Oracle E-Business Suite 成果物のアプリケーション コンテキストを適切に設定するには、Oracle ユーザー名、パスワード、および責任の正しい組み合わせを指定する必要があります。 Oracle ユーザー名とパスワードの値を指定するには、 OracleUserName および OraclePassword バインド プロパティを使用する必要があります。 Oracle 責任の値を指定するには、 OracleEBSResponsibilityName バインディング プロパティまたはメッセージ コンテキスト プロパティを使用できます。

BizTalk プロジェクトでの RootNode TypeName のエラー

問題

Visual Studio の BizTalk プロジェクトで、アダプター サービス アドインの使用から生成されたスキーマに 、RootNode TypeName プロパティの無効な文字または予約語が含まれている場合、プロジェクトのコンパイル中に次のエラーが発生します。

Node <node reference> - Specify a valid .NET type name for this root node.  
The current .NET type name of this root node is invalid (it is a reserved BizTalk Keyword or is an invalid C# identifier).  

解像度

  1. エラーで参照されているルード ノードを右クリックし、[プロパティ] を選択 します

  2. RootNode TypeName プロパティの場合は、無効な文字や予約語 (ドット (.) など) を削除します。

Visual Studio でアダプターを使用するときのバインド警告が無効です

問題

アダプターを使用して Visual Studio 2013 でアプリケーションを作成し、アダプターによって生成された構成ファイル (app.config) を開くと、次のような警告が表示されます。

The element 'bindings' has invalid child element 'oracleEBSBinding'. List of possible elements expected: 'basicHttpBinding, customBinding, ...  

原因

この警告は、 oracleEBSBindingOracle E-Business アダプター バインド () が、Windows Communication Foundation (WCF) に付属する標準のバインドではないことが原因で表示されます。

解像度

この警告は無視してかまいません。

同じアプリケーションで複数の通知スキーマを使用する場合、または同じホスト上の複数のアプリケーションで通知スキーマを使用する場合、BizTalk Serverは例外をスローします

問題

BizTalk Serverは、複数のスキーマがメッセージの種類と一致したため、アプリケーションがドキュメント仕様を見つけることができないことを示す XLANG 例外または例外をスローします。

原因

これは、次のいずれかが原因で発生します。

  • BizTalk Server プロジェクトに複数の Notification スキーマを生成し、BizTalk Server アプリケーションにデプロイした後、アプリケーションを実行して Oracle データベースから通知を受信しました。 通知スキーマは一般的であるため、BizTalk Server アプリケーションにデプロイされているスキーマ間で競合が発生します。

  • 複数のプロジェクトの場合は、BizTalk Serverプロジェクトごとに通知スキーマを生成し、各プロジェクトを同じホスト上の個別のBizTalk Server アプリケーションにデプロイしてから、アプリケーションまたはアプリケーションを実行して Oracle データベースから通知を受信しました。 スキーマとアセンブリは、BizTalk Serverのアプリケーション全体でアクセスできるため、さまざまなBizTalk Serverアプリケーションとアセンブリの下に展開される共通スキーマ間で競合が発生します。

    解決策

    BizTalk Server アプリケーションには、単一の通知スキーマ ファイルを使用します。 同じホスト上の複数のBizTalk Server アプリケーションで通知スキーマを使用する必要がある場合は、1 つの通知スキーマを含むアプリケーションを作成し、BizTalk Server内の他のすべてのアプリケーションの通知スキーマを使用します。

Visual Studio で Oracle E-Business Suite 成果物を参照中のタイムアウト例外

問題

アダプター メタデータの追加ウィザード、アダプター サービス参照プラグインの追加、またはアダプター サービス アドインの使用を使用して、Visual Studio プロジェクトで Oracle E-Business Suite 成果物を参照しているときに、タイムアウト例外が発生する可能性があります。

原因

これは、Oracle E-Business Suite をホストしているサーバーが遅い場合、サーバーがリモートの場所にある場合、または探しているスキーマに多数の成果物がある場合に発生する可能性があります。

解決策

SendTimeout バインド プロパティの値を大きくするか、[カテゴリで検索] テキスト ボックスに検索式を指定して、アダプターが取得する成果物の数を減らすことができます。

バインド プロパティの指定の詳細については、「 Oracle E-Business Suite のバインド プロパティを構成する」を参照してください。 Oracle E-Business Suite での成果物の検索の詳細については、「Oracle E-Business Suite 操作のメタデータの参照、検索、取得」を参照してください。

トランザクション受信操作でアダプターを使用すると、メモリ使用量とスレッド数が増加する

問題

ポーリングなどのトランザクション受信操作では、 ポーリング中のテーブルに使用可能なデータがなく 、アダプターがポーリングを続ける場合、一定期間にわたってメモリ使用量とスレッド数が増加します。

原因

ポーリング対象のテーブルに使用可能なデータがない場合、受信タイムアウト サイクルのたびに、Windows Communication Foundation (WCF) によって新しいスレッドが生成され、ポーリング操作が続行されます。 そのため、スレッド数とメモリ使用量は一定期間にわたって増加します。 ただし、ポーリングされるテーブルに何らかのデータがある場合、同じスレッドは後続のすべてのポーリングを実行し続けます。

解決策

ReceiveTimeout を最大値 (24.20:31:23.64700000 (24 日) ) に設定して、新しいスレッドが 24 日ごとに生成されるようにすることをお勧めします。 これにより、メモリ使用量とスレッド数が早すぎないようにします。

ReceiveTimeout バインド プロパティの詳細については、「BizTalk Adapter for Oracle E-Business Suite バインド プロパティの読み取り」を参照してください。 バインド プロパティを指定する手順については、「 Oracle E-Business Suite のバインド プロパティを構成する」を参照してください。

Note

BizTalk Serverでアダプターを使用する場合、タイムアウトを大きな値に設定しても、アダプターの機能には影響しません。

参照

Oracle EBS アダプターのトラブルシューティング