SocketException: Connection reset

セールスフォースとの連携処理に失敗し、ログに次のメッセージが記録されている場合の対処方法について説明します。

メッセージの一例

  • java.net.SocketException: Connection reset
  • org.xml.sax.SAXParseException: The value of the attribute "prefix="xmlns",localpart="ns1",rawname="xmlns:ns1"" is invalid. Prefixed namespace bindings may not be empty.

対象

Salesforceアダプタ

原因

一般的に、一時的なネットワークの問題もしくはセールスフォースのAPIサーバーの問題などにより、通信が正常に完了しなかった場合に発生する事象となります。

解決策

SkyOnDemandでは、ネットワークに起因する根本的な事象の解決は行えませんが、問題が発生した場合のリトライ設定を行うことで、事象の発生を緩和することができます。

グローバルリソースに次の設定を行います。

  • 「タイムアウト」の値を大きい値とします(30~60秒ほど)。
  • 「接続リトライ条件」に「読み取り系のコールをリトライする」を設定します。
    ※更新系のコールをリトライする設定とすると、INSERTにて重複データを登録してしまうなどの可能性が御座います。詳細はヘルプにて、アダプタ>クラウド>Salesforce>グローバルリソースのプロパティ の項目をご確認ください。
  • 「接続リトライ回数」「接続リトライ時の待機時間」は状況に合わせてご調整ください。
  • 「接続リトライ対象とする例外クラスとメッセージの指定」に該当の例外を登録してください。

設定後の動作確認

リトライを行うと次のようなメッセージがログに出力されます。

接続リトライを行います。 リトライ回数[3]  待機時間(秒)[1]