Amazon S3 Connector 7.0 のトラブルシューティング - Mule 4

Amazon S3 用 Anypoint Connector (Amazon S3 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

冗長ログの有効化

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

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

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

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

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

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

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

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

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

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

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

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

  • S3:BAD_REQUEST

    入力またはペイロードが無効です。
  • S3:BUCKET_ALREADY_EXISTS

    指定したバケット名はすでに存在します。
  • S3:BUCKET_ALREADY_OWNED_BY_YOU

    作成したバケットはすでに存在し、所有しています。
  • S3:CONNECTIVITY

    A connection cannot be established. (接続を確立できません。)
  • S3:FORBIDDEN

    ​`403`​ Forbidden エラーがあります。たとえば、権限が不足しています。
  • S3:GLACIER_EXPEDITED_RETRIEVAL_NOT_AVAILABLE

    Expedited 取り出しは使用できません。
  • S3:INTERNAL_ERROR

    サーバーの問題や一時的な不具合などの内部エラーがあります。
  • S3:INVALID_OBJECT_STATE

    このアクションではオブジェクトの状態が無効です。
  • S3:MALFORMED_XML

    送信した XML が無効です。
  • S3:NO_SUCH_KEY

    指定したキーが存在しません。
  • S3:NO_SUCH_LIFECYCLE_CONFIGURATION

    指定したライフサイクル設定が存在しません。
  • S3:NO_SUCH_TAG_SET

    指定したタグセットが存在しません。
  • S3:NO_SUCH_UPLOAD

    指定したアップロードが存在しません。
  • S3:OBJECT_ALREADY_IN_ACTIVE_TIER

    オブジェクトはアクティブな階層にすでに存在します。
  • S3:OPERATION_ABORTED

    同じリソースに対する別の進行中のアクションがあるため、操作が中止されました。
  • S3:RESTORE_ALREADY_IN_PROGRESS

    復元はすでに進行中です。
  • S3:RETRY_EXHAUSTED

    操作の最大再試行回数に達しました。
  • S3:S3_ERROR

    Amazon S3 でエラーが発生しました。
  • S3:SERVER_BUSY

    サーバーが混雑しています。
  • S3:SERVICE_ERROR

    サービスエラーがあります。
  • S3:REQUEST_TIMEOUT

    Put Object 操作で要求タイムアウトが発生しました。