機械翻訳について

統合ランタイムのトラブルシューティング

Oracle Integrationで統合ランタイムのトラブルシューティングについて学習します。

統合の実行が遅い

いくつかの一般的な問題によって、統合のパフォーマンスの問題が発生する可能性があります。 たとえば、ターゲット・アプリケーションの応答に予想以上に時間がかかる場合、統合も予想よりも遅くなります。

統合の実行が遅いかどうかを判断する方法

「統合の一般的な処理時間の決定」を参照し、適切なアクションを実行します:

  • 統合の実行速度が常に予想より遅い場合は、共通のピットフォールが含まれているかどうかを判断します。

    「設計のベスト・プラクティス」を参照してください。

  • 統合に検出可能なパフォーマンス異常値がある場合は、このページのトラブルシューティング・ステップに従います。

ステップ1. ターゲット・アプリケーションの調査

起動接続のターゲット・アプリケーションの応答に通常より時間がかかる場合があります。 低速なターゲット・アプリケーションは、統合の実行が遅い最も一般的な原因です。

ターゲット・アプリケーションによって統合の速度が低下したかどうかを判断するには、アプリケーションのログを確認します。 ログは、Oracle Integrationが接続されたときに、アプリケーションで問題が発生しているかどうかの判断に役立ちます。

ステップ2. 受信メッセージ数の確認

統合が処理する大量のメッセージを受信すると、Oracle Integrationはメッセージをキューに追加し、キューがクリアされるまで処理します。 長いキューは、システムの全体的なパフォーマンスに影響を与える可能性があります。 たとえば、小売業者は、プロモーション中にメッセージ量が多くなる場合があります。

過去1時間にOracle Integrationが処理したメッセージの数を確認するには:

  1. ナビゲーション・ペインで、「可観測性」「統合」の順にクリックします。

  2. 「フィルタ」 フィルタ・アイコンをクリックし、次のフィルタリング要件を更新します:

    • 時間ウィンドウ: 過去1時間。
    • ステータス: All.
  3. 「適用」をクリックします。
  4. 「処理済」列の数値を確認します。

メッセージの数はパフォーマンスの1つのファクタにすぎないことに注意してください。 非常に大きな受信ペイロードを含む小さいメッセージは、パフォーマンスにも影響します。

ステップ3. メッセージ数が多すぎるかどうかの判断

  1. 管理者と協力して、使用しているメッセージに対して十分なメッセージ・パックを購入したかどうかを確認します。 「Oracle Integration 3のプロビジョニングと管理」「インスタンスのエディション、ライセンス・タイプおよびメッセージ・パックの編集」を参照してください。

  2. 統合が同期している場合は、一度に処理するリクエストが多すぎるかどうかを確認します。 「Oracle Integration 3のプロビジョニングと管理」「リクエストの計算/秒」を参照してください。

ステップ4. クラスタ化されたスケジュールのチェック(スケジュール統合のみ)

同時に開始する統合が多すぎると、スケジュール統合の実行が予想よりも遅くなる可能性があります。

スケジュール統合がクラスタ化されているかどうかを確認するには、「スケジュール統合実行のカレンダの表示」を参照してください。

ステップ5. 非効率性を探す

統合によってレコードが処理される場合は、処理の効率を微調整できる場合があります。

レコードを処理する処理 Recommendations

For-eachアクション

通常は、パフォーマンスの問題が発生することなく、for-eachアクションを使用して10,000以下のレコードを処理できます。

10,000以上のレコードを処理するには、パラレル・アクション内でfor-eachアクションを使用します。 パラレル・アクションを使用すると、レコードをパラレル・スレッドで処理できるため、統合のパフォーマンスが向上します。

ステージング・ファイル・アクション

通常、タイムアウトを発生させることなく、ステージング・ファイル・アクションを使用して、ファイル内の10,000以下のレコードを読み書きできます。

10,000以上のレコードを含むファイルを処理するには、パラレル・アクション内でステージング・ファイル・アクションを使用します。 パラレル・アクションを使用すると、レコードをチャンク単位で読み書きできるため、統合のパフォーマンスが向上します。

問題は解決していませんか。

サービス・リクエストを入力して、Oracleからヘルプを取得します。

通常よりも少ない統合インスタンス

通常、100個の統合インスタンスが特定の時間までに実行されるが、今日は80個の統合インスタンスのみが実行されているシナリオを考えてみます。 欠落している統合インスタンスで何が起こったかを迅速に判断する必要があります。

ノート:

「可観測性」ページには、実行中のすでに実行されている統合に関する情報が表示され、欠落しているインスタンスは表示されません。 インテグレーション・インスタンスが欠落しているかどうかを確認するには、通常実行されるインテグレーションを把握しておく必要があります。

統合が実行されない理由

統合は、いくつかの理由で実行されない場合があります。 たとえば:

  • 誰かが統合を非アクティブ化しました。
  • 統合をトリガーする外部アプリケーションが停止しています。
  • 誰かがスケジュール統合のスケジュールを変更しました。たとえば、毎時実行から毎日実行に変更しました。

欠落している統合インスタンスをトラブルシューティングするには:

  1. これまでに実行されたインテグレーション・インスタンスの数を確認します。
    1. ナビゲーション・ペインで、「可観測性」「インスタンス」の順にクリックします。
    2. 「フィルタ」 フィルタ・アイコンをクリックし、ページのフィルタリング要件を更新します。

      たとえば、時間ウィンドウを過去1時間、6時間または1日に更新します。

    3. ページ上部で、実行された統合インスタンスの数を確認します。
  2. 実行された統合インスタンスが予想より少ない場合は、欠落しているインスタンスをトラブルシューティングします。

    次に例を示します。

    • 統合がアクティブかどうかを確認します。

    • 統合をトリガーする外部アプリケーションが停止しているかどうかを確認します。

    • スケジュール統合のスケジュールが変更されたかどうかを確認します。

    • 必要に応じて、監査証跡を参照して、統合を最後に更新したユーザーを確認します。

      「統合またはその他のコンポーネントの設計時監査履歴の確認」を参照してください。

アイデンティティ・ドメインがマルチ・ファクタ認証で構成されている場合に、基本認証を使用してサービスをコールすると、401-Unauthorizedエラーが発生

アイデンティティ・ドメインがマルチ・ファクタ認証(ユーザー名 / パスワード+マルチ・ファクタ認証など)で構成されており、基本認証を使用してOracle Integrationサービスを呼び出すと、401-Unauthorizedエラーが発生します。 Oracle Integrationのアダプタまたは接続エージェントはいずれもマルチ・ファクタ認証をサポートしていません。

代替方法:
  • 基本認証を使用しているアカウントから、マルチ・ファクタ認証を無効にします。
  • かわりにOAuthを使用します。

「マルチ・ファクタ認証の管理」を参照してください。

ペイロードがサイズ制限を超えた場合の修正処理の実行

統合のメッセージ・ペイロードがサイズ制限を超えると、メッセージは拒否され、エラー・メッセージが表示されます。 エラー・メッセージでは、実行する修復アクションについて説明します。

問題 エラー・メッセージ 実行する修正処理
ペイロード・サイズ制限を超えました
  • 最大50 MBのペイロード・サイズをサポートするREST、ファイル、SOAP、FTPおよびSAPアダプタ接続が制限を超える場合:
    CASDK-0059: Unable to process the response received from the client application.
     The response received by the OIC integration flow is rejected. 
    The response received has been rejected since the content received of length 5723727000 
    bytes exceeds the maximum allowed threshold of 52428800 bytes (50MB).
  • 最大10 MBのペイロード・サイズをサポートするその他のすべてのアダプタ接続が制限を超えた場合:
    CASDK-0059: Unable to process the response received from the client application.
     The response received by the OIC integration flow is rejected. 
    The response received has been rejected since the content received of length 1723727000 bytes exceeds the maximum allowed threshold of 10485760 bytes (10MB).
大きなデータ・セットを送信するには、添付を使用することをお薦めします。 ターゲット・アプリケーションがSOAP APIを公開して、添付として送信されたデータを返すかどうかを確認します。 はいの場合、MTOMアタッチメントを受け入れるようにSOAPアダプタを使用して起動接続を構成するように統合を設計できます。 添付は、XML/カンマ区切り値(CSV)ドキュメントを含むアーカイブにすることができます。
添付サイズ制限を超えました
CASDK-0059: Unable to process the response received from the client application. 
The response received by the OIC integration flow is rejected.
The response received has been rejected since the content received of length  
bytes exceeds the maximum allowed threshold of 1073741824 bytes (1GB).
添付が破損し、複数のAPIを介して送信できるかどうかを確認します。 たとえば、添付が大規模なCSVファイルおよび非構造化ドキュメントを含むZIPアーカイブである場合、CSVファイルを返すAPIと、非構造化ドキュメントを取得する別のAPIがあります。

50 MBのペイロードのサポート、制限およびベスト・プラクティスの詳細は、「Oracle Integration 3のプロビジョニングと管理」「サービス制限」を参照してください。

着信ペイロードからの印刷不可能な制御文字の削除

Oracle Integrationでは、次の範囲の特定の印刷不可能な制御文字をサポートしていません。

['\u0000', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005', '\u0006',
'\u0007', '\u0008', '\u000b', '\u000c', '\u000e', '\u000f', '\u0010', '
\u0011', '\u0012', '\u0013', '\u0014', '\u0015', '\u0016', '\u0017', '\
u0018', '\u0019']
受信ペイロードにこれらの制御文字が存在すると、処理中に次のエラーが発生します:
{
  "type" : "10.4.1",
  "title" : "exception occurred while translating the request from native to
xml.",
  "detail" : "oracle.cloud.connector.api.CloudInvocationException:
ORABPEL-15235\n\nTranslation Failure.\nFailed to translate JSON to XML.
org.codehaus.jackson.JsonParseException: Illegal unquoted character
((CTRL-CHAR, code 1)): has to be escaped using backslash to be included in
string value\n at [Source: java.io.BufferedReader@.#; line: 2, column:
22]\nThe incoming data does not conform to the NXSD schema. Please correct
the problem.\n",
  "o:errorCode" : "TRANSLATION-ERROR-00",
  "o:errorDetails" : [ {
    "type" : "NA",
    "instance" : "NA",
    "title" : "NA",
    "o:errorPath" : "NA",
    "o:errorCode" : "NA"
  } ]
}

このエラーを受信し、「RESTアダプタ」を使用している場合は、マッパーで「制御文字のスキップ」プロパティを使用できます。 「マッパーでのRESTアダプタ接続プロパティの設定」を参照してください。 それ以外の場合は、受信JSONペイロードの前処理方法および印刷できない制御文字のフィルタ方法については、Oracle Supportに連絡してください。

通知アクションが無効な<from>値を返すエラー

統合の通知アクションが正常に検証されたが、統合ランタイム中に次のエラーが発生した場合は、通知アクションの「パラメータ値」フィールドに指定された値が正しくない可能性があります。

:
summary=<summary>The <from> value is invalid.
Xpath expression associated with <from> in copy assign activity is invalid.
There is an user error that results in missing element value(s) in the xpath query.
Please review the payload and modeling to ensure that all elements defined in the <from> xpath query have valid non-null values .
</summary>
:
,query=<query>fn:current-dateTime()</query>

エラーを確認するには、インスタンス・ページで統合インスタンスのエラーを表示するか、PostmanなどのRESTテスト・ツールのレスポンスを表示します。

通知アクションの「パラメータ」セクションに指定された値が正しいことを確認します。 たとえば、この値を文字列に変換する必要がある場合があります:
string(fn:current-dateTime())

同期統合タイムアウトの失敗

同期統合が300秒以内に完了しなかった場合、インスタンス・ページまたはエラー・ページから表示可能なアクティビティ・ストリームに次のエラーが表示されます。

CompositeException in: io.reactivex.internal.operators.single.SingleOnErrorReturn$OnErrorReturn.onError2 exceptions occurred

コールが処理されると、詳細は返されません(たとえば、502ステータス・エラーは返されません)。

統合または起動するエンドポイント(あるいはその両方)を最適化し、インスタンス処理を300秒未満で完了します。

「Oracle Integration 3のプロビジョニングと管理」「サービス制限」を参照してください。

アクティビティ・ストリーム詳細

ペイロードを使用してトレースを有効にし、インスタンス・ページでアクティビティ・ストリーム・ログを表示し、REST APIを使用してアクティビティ・ストリーム・ログをダウンロードできます。

ペイロードを使用したトレースの有効化およびインスタンス・ページでのアクティビティ・ストリームの表示

ペイロードを使用したトレースを有効にし、インスタンス・ページで統合のアクティビティ・ストリームを表示する方法を説明するドキュメントが用意されています:

REST APIを使用したアクティビティ・ストリーム・ログのダウンロード

Oracle IntegrationまたはREST APIでアクティビティ・ストリーム・ログをダウンロードする方法を説明するドキュメントが用意されています:

ノート:

絶対値(特定のサイズではなく10 MB)を使用する場合、ファイルをダウンロードすると、最新の10 MBファイルのみがダウンロードされます。

非同期統合でメッセージのデキューに3~ 4秒かかる

Oracle IntegrationMessage Received:Instance created and enqueued for processingからmessage dequeued and processed by Trigger trigger_nameに移動するのに3から4秒かかる場合があります。 これにより、特定のインスタンスのエンド・ツー・エンドの処理時間が長くなります。

これは、非同期リクエストで予期される動作です。 非同期リクエストは、キューを使用して処理されます。 フロー・ログの最初の2つのエントリは、エンキュー時間とデキュー時間を示しています。 したがって、数秒の遅れが予想されます。

OAuthを使用して保護されたAPIへのアクセス時の403 エラー

OAuthを使用すると、Oracle Integrationはユーザーにかわってユーザー・リソースにアクセスできます。 RESTおよびその他のRESTベースのアダプタ(Google CalendarアダプタMicrosoft Office 365 Outlookアダプタなど)は、多くの場合、OAuthを使用して保護されているAPIにアクセスします。 これらのコールで403エラーが発生した場合(禁止)、通常はAPIにアクセスする権限がないことを示します。

OAuthの構成を慎重に調べ、ターゲットAPIのオーナー/管理者と協力してこの問題を解決する必要があります。 これに至るいくつかの条件があるかもしれませんが、正確な原因は許可サーバーによって最もよく記述されます。 403エラーの原因としては、次のようなものがあります:
  • アクセス・トークンは、アクセスされているAPIをカバーしていないスコープに対して調達されました。

  • 同意を提供するフェーズでは、同意を提供したユーザーはアクセスされているAPIのリソース所有者または所有者ではありません。

  • アクセス・トークンの有効期限が切れているか、リソースにアクセスできなくなりました。

  • 許可サーバーは、特定のリソースへのアクセス特権を取り消しました。

証明書のインポート失敗のトラブルシューティング

Verisign、Entrustなどの認証局(CA)から受け取った証明書は、Oracle Integrationへのインポート中にログファイルに次のエラーで失敗する可能性があります:

java.security.cert.CertificateException: Unable to initialize,
java.io.IOException: extra data given to DerValue constructor 
この問題を解決するには、次のいずれかを実行します:
  • CAから固定証明書を取得します。

  • opensslなどのツールを使用して、証明書をDistinguished Encoding Rules (DER)バイナリ証明書に変換します。 たとえば:

    openssl x509 -outform der -in sfdc-client.crt -out sfdc-client.der