1

私は次の春の統合TCP接続を持っています:

<int-ip:tcp-connection-factory id="client" type="client" host="..." port="..." single-use="true" so-timeout="10000"/>

プロトコルレベルの問題が発生したときに強制的に再接続できるようにしたいと思います。それはできますか?どのように?

4

1 に答える 1

1

single-use設定したtrue場合、ソケットはリクエストごとに1回だけ使用されるため、「失敗時に再接続する」ことは意味がありません。いずれにせよ、リクエストごとに新しい接続が確立されるためです。

single-use="false"(共有接続)を使用すると、ファクトリを使用している場合はtrueに<int-ip:output-channel-adapter/>設定できます。これにより、タイムアウト後に自動的に再接続されます(アダプターclient-modeを呼び出すことにより、共有接続を明示的に再確立できます。ただし、現在、アウトバウンドゲートウェイではサポートされていません。TCPアダプターを参照し、ブラウザーを使用して「client-mode」を見つけてください。詳しくは。retryConnection()client-mode

とは言うものの、single-use="false"を使用すると、クライアントファクトリを呼び出すだけgetConnection()で、共有接続が再確立されます(ただし、接続に対して何も実行しないでください)。また、これを行わないでくださいsingle-use="true"。メモリリークが発生するためです(close()接続を閉じただけで接続を取得しても意味がない場合を除きます)。

于 2013-03-27T13:49:19.213 に答える