SFTP Connector のトラブルシューティング

SFTP 用 Anypoint Connector (SFTP Connector) をトラブルシューティングするには、接続、権限、サーバー側の問題のトラブルシューティング、Mule アプリケーションの問題のトラブルシューティング、一般的なエラーメッセージの解釈に関する情報について理解しておいてください。

接続、権限、サーバー側の問題のトラブルシューティング

場合によって、SFTP サーバーへの接続を試みているときに、SFTP サーバーで設定済みの暗号化された通信チャネルが必要であるために接続の確立で問題が発生することがあります。 たとえば、特定の暗号化の暗号や鍵交換アルゴリズムを有効にするか、特定の認証鍵の場所を指定する必要があることもあります。

この問題を解決する手順は、次のとおりです。

  1. SFTP サーバー設定ファイルを見つけ、接続、暗号化方法、タイムアウトなどに関するパラメーターや設定を確認します。必要に応じて設定を修正し、ニーズに合わせて環境をカスタマイズします。 たとえば、OpenSSH を使用している場合は ​sshd_config​ ファイルにアクセスできます。

  2. 設定ファイルを使用して、サーバー側のログレベルを引き上げます。

Mule アプリケーションの問題のトラブルシューティング

場合によって、アプリケーションが失敗している理由がわからず、アプリケーションの SFTP サーバーとのやりとりで何が行われているかについて理解を深める必要があることがあります。

このエラーを解決する手順は、次のとおりです。

  • 設定ファイルを使用して、サーバー側のログレベルを引き上げます。

  • たとえば Cyberduck や Filezilla などの SFTP クライアントを使用して、問題の再現を試みます。これらのクライアントを使用した場合でも問題が発生する場合は、問題が Mule アプリケーションには関連していない可能性が高くなります。

  • SFTP Connector および Apache Mina ライブラリの冗長ログを有効にして、Mule アプリケーション側に関するより分かりやすく詳細なログを取得します。

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

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

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

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

    5. 次の行がすでに ​log4j2.xml​ ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。

          <AsyncLogger name=“org.mule.extension.sftp” level=“DEBUG”/>
          <AsyncLogger name=“org.apache.sshd” level=“TRACE”/>
    6. 次の引数を追加して設定を実行します。

      ​`-M-Djavax.net.debug=ssl,handshake`
  • アプリケーションを可能な限り単純にして問題がアプリケーションと SFTP サーバー間のやりとりに関係しているかどうかを判断できるように、不要な DataWeave データ変換は最小限に抑えるか削除してみてください (ハードコードされたデータを使用することもできます)。

Mule アプリケーションで SDK コンポーネントの冗長ログを有効にする方法についての詳細は、​「SDK コンポーネントおよび操作のトラブルシューティング」​ドキュメントを参照してください。

一般的なスローを理解する

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

  • SFTP:ILLEGAL_PATH

    指定されたパスが無効です (存在しないなど)。
  • SFTP:FILE_ALREADY_EXISTS

    既存のファイルと同じ場所、同じ名前でファイルを作成しようとしました。
    この問題は、たとえば ​CREATE_NEW​ 書き込みモードを使用してすでに存在しているファイルのパスにファイルを書き込もうとした場合に発生します。
  • SFTP:ACCESS_DENIED

    SFTP サーバーパスにアクセスしてユーザーが権限を付与されていないアクションを実行しようとする操作が試行されました。
  • SFTP:FILE_LOCK

    ファイルに対するロックを取得しようとする操作が試行されましたが失敗しました。
  • SFTP:ILLEGAL_CONTENT

    ​*Write*​ 操作で書き込み対象として無効なコンテンツを受信しました。
  • SFTP:CONNECTIVITY

    SFTP サーバーへの接続が中断されました。
  • SFTP:INVALID_CREDENTIALS

    無効なログイン情報が原因で SFTP サーバーに対する認証に失敗しました。
  • SFTP:CONNECTION_TIMEOUT

    SFTP サーバーへの接続試行がタイムアウトになりました。
  • SFTP:CANNOT_REACH

    指定された SFTP サーバーホストおよびポートへの接続を確立しようとしていてエラーが発生しました。通常、たとえばリモートアドレスまたはポートでリスンしているプロセスが存在しない場合、接続はリモートで拒否されます。
  • SFTP:UNKNOWN_HOST

    Mule ではホストの IP アドレスを判断できません。
  • SFTP:DISCONNECTED

    アプリケーションでサーバーへのログイン試行の失敗回数が多すぎます。この問題の原因は複数考えられますが、最も一般的な原因は無効なログイン情報です。
  • SFTP:KEY_EXCHANGE_FAILED

    アプリケーションはサーバーへの SSH 接続の確立を試みましたが、鍵交換ステップで失敗しました。ネゴシエーション中、または鍵交換の後半のステップでエラーが発生する場合があります。
  • FILE_DOESNT_EXIST

    The file to write was deleted. (書き込むファイルが削除されています。)
  • UNKNOWN

    指定された SFTP サーバーホストおよびポートへの接続を確立しようとしていて不明なエラーが発生しました。