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] |