Java NIO API を使用してノンブロッキング IO を実行するサーバーを作成しました。時折、クライアント アプリケーションが突然シャットダウンし (停電などにより)、接続がサーバー側で開いたままになる状況が見られます。
同僚が同じ問題に遭遇し、この種のことを検出するために回線上のハートビートを使用していると言いましたが、もっと簡単な方法があることを願っています。他の誰かがこの問題に遭遇しましたか?
IOException
追加情報: 私の現在のサーバー設計では、読み取り/書き込み操作を試行するときにキーがキャッチされると、キーがキャンセルされ、対応するチャネルが閉じられます。このアプローチは 99% の確率で機能するようです。接続が開いたままになっているように見える状況は、ほんの一握りしか見たことがありません。