0

クライアント アプリケーションからの TCP 接続を受け入れる C++ アプリケーションがあります。

正常に動作しているように見えるランダムな時間 (数日) の後、クライアントからのフォローアップ メッセージの受信を停止し、各 TCP 接続で最初のメッセージのみを確認します。再起動後、すべてが再び正常になります。

問題は、これが停止するとすぐに再起動する必要がある運用サーバーでのみ発生し、ラボ マシンでこれを再現することができなかったことです。ログファイルに表示されるエラーを返すソケット操作はないようで、アプリケーションが巨大であるため、関連する部分をここに投稿することはできません。

最初のメッセージは常に受信され続け、しばらくすると後続のメッセージのみが受信されなくなります。私のアプリケーションがフォローアップ メッセージの受信を停止した場合でも、Wireshark でそれらが入ってくるのを見ることができます。

何が起こっているのかを知る方法はありますか? 何を探すべきですか?

4

1 に答える 1

1

ここで使用される構成設定はありますか? 過去に、50,000 件が処理された後、サーバーがメッセージを無視するように条件を設定しました。これは、開発中の暴走を防ぐためでした。このコードは、構成設定を「無限のメッセージを許可する」に変更せずに、ある機会に公開されました。結果はまさにあなたが説明したとおりで、2〜3日間は問題ありませんでしたが、メッセージは問題なく送信されましたが、どこにもエラーがなく無視されました.

ここではそうではないかもしれませんが、どこを見なければならないかの例として挙げておきます。

于 2012-08-24T08:22:08.700 に答える