2

MINA 2.0.0 M6を使用していますが、ログファイルには次のような例外がたくさんあります。

私のアプリケーションでは、接続するすべてのクライアントがx分ごとにGPSデータのみを送信するため、MINAからクライアントに何も送信しないでください。サーバーにデータを転送し続けるように1つのデバイスが設定されました。ただし、MINAサーバーがクライアントからランダムにデータを取得できないことがわかりました。同様に、サーバー側は新しい接続用のセッションを作成しますが、何らかの理由でサーバーはデータを取得できず、IOExeceptionをスローし、MINAタイムアウトによって設定された10分後にセッションを閉じます。

デバイスは正常に動作しており、データを送信し続けていると確信しています。サーバーはほとんどの場合データを取得できるため、MINAも問題ないようです。ApacheMinaには接続番号の設定があるのではないかと思います。誰かが私にこの問題を解決するのを手伝ってもらえますか?

ちなみに、LinuxサーバーのTCP接続番号の最大数も確認しています。

************************************************** ***************************
java.io.IOException:sun.nio.ch.FileDispatcher.read0(ネイティブメソッド)のsun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)のsun.nio.ch.IOUtilのピアによって接続がリセットされました。 readIntoNativeBuffer(IOUtil.java:202)at sun.nio.ch.IOUtil.read(IOUtil.java:175)at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:243)

4

1 に答える 1

1

まず第一に、接続数にMINAからの制限はありません。そして、これはMINA固有の問題ではありません。これは、ピアクライアントが会話の途中で接続をリセットしたときに発生します。これは、クライアントが残酷に辞めたという情報にすぎません。GPRSを使用してデータを送信するデバイスでは非常に一般的なケースです。したがって、サーバー側では実際には問題ではなく、クライアントに関連するものをそこに保持している場合は、このシナリオでリソースをクリーンアップするのが最善です。ログを少なくする以外に、ここで修正するものはありません。

于 2012-04-11T12:16:19.797 に答える