Salesforce Connector 10.20 のトラブルシューティング - Mule 4

Salesforce 用 Anypoint Connector (Salesforce Connector) をトラブルシューティングするには、全般的なトラブルシューティングの実行とスローされる一般的な例外メッセージの解釈について理解しておく必要があります。

SSL ログの有効化

SSL ログを有効化して、TLS 通信に関連する問題を調査します。

必要な詳細レベルに応じて SSL ログレベルを設定します。

  1. SSL ログの詳細のみを有効化します。

    javax.net.debug=ssl

  2. ハンドシェイクの詳細のみを有効化します。(ハンドシェイクプロトコルは、レコードプロトコル上で交換される一連のメッセージです。)

    javax.net.debug=ssl:handshake

  3. ハンドシェイクの詳細と SSL の詳細を同時に有効化します。

    javax.net.debug=ssl, handshake

  4. すべての詳細とトラフィックデータのダンプを有効化します。

    javax.net.debug=all

    このオプションは非常に冗長であり、通常の状況では不要です。
SSL ログは、HTTPS または他の TLS 接続のパフォーマンスに影響します。SSL ログは、特定の問題のトラブルシューティングを行うためにのみ有効化し、長期間有効にしないでください。SSL ログでは大量のログメッセージが生成されるため、有効にしたまま放置しておくと、ログファイルが溢れる可能性があります。

SSL ログを有効化する手順は、次のとおりです。

アプリケーションのランタイム設定でデバッグパラメーターを引数として設定します。

  1. Studio で、プロジェクトを右クリックし、​[Run (実行)] > [Run Configurations (実行設定)]​ を選択します。

  2. [Arguments (引数)]​ タブに移動して、​[VM arguments (VM 引数)]​ セクションで ​-M-Djavax.net.debug=ssl​ を追加します。

冗長例外ログの有効化

冗長例外ログを有効化して、デフォルトの切り捨てられた出力ではなくエラーの完全なスタック追跡を表示します。

  1. Studio で、プロジェクトを右クリックし、​[Run (実行)] > [Run Configurations (実行設定)]​ を選択します。

  2. [Arguments (引数)]​ タブに移動して、​[VM arguments (VM 引数)]​ セクションで引数を付加して ​mule.verbose.exceptions​ プロパティを追加します。次に例を示します。

    -XX:PermSize=128M -XX:MaxPermSize=256M -Dmule.verbose.exceptions=true

冗長ログの有効化

アプリケーションと Salesforce Connector のやりとりが失敗する理由の理解を深めるには、コネクタの冗長ログを一時的に有効にします。

Mule アプリケーションのパフォーマンスに影響する可能性があるため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。

設定ファイルで冗長ログを有効にする手順は、次のとおりです。

  1. Anypoint Studio にアクセスし、​[Package Explorer]​ ビューに移動します。

  2. アプリケーションのプロジェクト名を開きます。

  3. src/main/resources​ フォルダーを開きます。

  4. フォルダー内の ​log4j2.xml​ ファイルを開きます。

  5. <Loggers>​ タグ内に ​<AsyncLogger>​ タグを追加します。

    			<Loggers>
    				...
    				<AsyncLogger name="org.mule.extension.salesforce" level="DEBUG"/>
    				...
    			</Loggers>
  6. アプリケーションの変更を保存します。

  7. Package Explorer​ でプロジェクト名をクリックし、​[Run (実行)]​ > ​[Run As (別のユーザーとして実行)]​ > ​[Mule Application (Mule アプリケーション)]​ をクリックします。

全般的なトラブルシューティングの実行

Salesforce Connector の全般的なトラブルシューティングガイドラインは次のとおりです。

通貨

通貨の値は 18 文字以下にする必要があります。

複数の通貨を処理するときは、sObject でどの通貨を使用しているか認識し、不正確な値が入力されないようにします。デフォルトの通貨は組織レベルの場所と一致します。

Salesforce リストの値の照合

値を使用して Salesforce の既存のリスト項目のコンテンツと照合する場合は、リストとまったく同じ値を使用します。たとえば、「​US​」という値を使用して、「​USA​」という値を含むリストのコンテンツと照合した場合、照合は機能しますが、結果のリストに「​US​」と「​USA​」の 2 つの値が返されます。

Salesforce Connector リストへの値の挿入

Salesforce Connector の既存のリストに連動値を挿入しても、必ずしも機能するとは限りません。この機能をテストして確認します。

日本語サポート

Salesforce Connector では、以下を除くすべての操作で日本語文字がサポートされます。

  • Publish Streaming Channel​ 操作では、​[Channel name (チャネル名)]​ 項目の日本語文字がサポートされません。これには、英数字と ​_​ または ​/​ 文字のみを含めることができます。詳細は、Salesforce StreamingChannel​ のドキュメントを参照してください。

  • メタデータ操作では、一部の項目に日本語文字が含まれているとエラーメッセージが返されることがあります。たとえば、日本語文字を含む ​[Full Name (完全名)]​ を使用してカスタムオブジェクトまたはカスタム項目を作成すると、​FIELD_INTEGRITY_EXCEPTION​ エラーがトリガーされて次のメッセージが表示されます。
    The Object Name field can only contain underscores and alphanumeric characters. ([Object Name (オブジェクト名)] 項目には、アンダースコアと英数字のみを使用できます。) It must be unique, begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. (一意であること、最初は文字であること、空白は使用しない、最後にアンダースコアを使用しない、2 つ続けてアンダースコアを使用しないという制約があります。)

API コールの制限

アカウントに適用されるレート制限ポリシーのスコープを認識し、1 日に割り当てられている API コール数を超えないようにする必要があります。

商談オブジェクト

Salesforce 商談オブジェクトからデータを抽出する場合、このコンテキストの​「四半期」​は暦年ではなく組織の会計年度を基準としていることに注意してください。

スローされる一般的な例外メッセージの理解

スローされる一般的な例外メッセージとその解釈方法のリストを次に示します。

  • SALESFORCE:COMMUNICATION

    A communication error occurs between systems. (システム間で通信エラーが発生しました。)
  • SALESFORCE:CONNECTIVITY

    A problem occurred and a connection could not be established. (問題が発生して接続を確立できませんでした。)
  • SALESFORCE:INSUFFICIENT_PERMISSIONS

    The provided permissions are insufficient. (指定された権限が不十分です。)
  • SALESFORCE:INVALID_INPUT

    The provided input data for an operation is not valid. (操作で指定された入力データが無効です。)
  • SALESFORCE:INVALID_RESPONSE

    The response from the server cannot be processed. (サーバーからの応答を処理できません。)
  • SALESFORCE:LIMIT_EXCEEDED

    A specific limit is exceeded, for example, if you try to create more than 200 entities at once with the ​*Create*​ operation. (たとえば、Create 操作を使用して 1 回で 200 件を超えるエンティティを作成すると、特定の制限を超えます。)
  • SALESFORCE:MUTUAL_AUTHENTICATION_FAILED

    The mutual authentication failed. (相互認証に失敗しました。)
  • SALESFORCE:NOT_FOUND

    The server could not find the requested resource. (サーバーは要求されたリソースを見つけることができませんでした。)
  • SALESFORCE:OPERATION_NOT_SUPPORTED​

    The operation is not supported. (この操作はサポートされていません。)
  • SALESFORCE:RETRY_EXHAUSTED

    The maximum number of retries for the operation is reached. (操作の最大試行回数に達しました。)
  • SALESFORCE:TIMEOUT

    A specific request takes longer than a configured amount of time to complete. (特定の要求の完了までに、設定された時間よりも長い時間がかかっています。)
  • SALESFORCE:UNAVAILABLE

    The server is unavailable. (サーバーが使用できません。)