2012-03-02 2 views
2

MINA 2.0.0 M6을 사용하고 있으며 로그 파일에 다음과 같은 예외가 많이 있습니다.

연결하는 모든 클라이언트가 매 x 분마다 GPS 데이터 만 전송하므로 MINA에서 클라이언트로 전송해야하는 항목은 없습니다. 하나의 장치가 내 서버로 데이터를 계속 전송하도록 설정되었습니다. 그러나 MINA 서버가 임의로 클라이언트에서 데이터를 가져올 수 없다는 사실을 발견했습니다. 마찬가지로, 서버 쪽에서 새로운 연결을위한 세션을 만들지 만, 서버가 데이터를 가져올 수없고 IOExeception을 던지거나 MINA 타임 아웃에 의해 설정된 10 분 후에 세션을 닫을 수 없습니다.

기기가 정상적으로 작동하고 데이터를 계속 전송할 것으로 확신합니다. 서버가 대부분의 시간 동안 데이터를 얻을 수 있기 때문에 MINA도 괜찮은 것처럼 보입니다. 아파치 미나 (Apache Mina)의 연결 번호에 대한 설정이있을 수 있다고 생각합니다. 아무도 날이 문제를 해결하는 데 도움이 될 수 있습니다.

덧붙여서, 나는 또한 Linux 서버 TCP 연결 번호의 최대 수를 확인합니다.

********************************************* *********************
java.io.IOException : 피어에 의한 연결 재설정 at sun.nio .ch.FileDispatcher.read0 (네이티브 메소드) at sun.nio.ch.SocketDispatcher.read (SocketDispatcher.java:21) at sun.nio.ch.IOUtil.readIntoNativeBuffer (IOUtil.java:202) at sun. sun.nio.ch.SocketChannelImpl.read에서 nio.ch.IOUtil.read (IOUtil.java:175) (SocketChannelImpl.java:243) 등의 Apache Mina java.io.IOException : 동료에 의한 연결 재설정

답변

1

우선 MINA는 연결 수에 제한이 없습니다. 그리고 이것은 MINA 특정 문제가 아닙니다. 이것은 피어 클라이언트가 대화 중간에 연결을 다시 설정할 때 발생합니다. 그것은 클라이언트가 잔인하게 종료 한 정보 일뿐입니다. GPRS를 사용하여 데이터를 보내는 장치의 경우는 매우 일반적인 경우입니다. 따라서 서버 측에서는 실제로 문제가되지 않으며 클라이언트와 관련된 모든 것을 보관하고 있다면이 시나리오에서 리소스를 정리하는 것이 가장 좋습니다. 더 적은 로깅을 제외하고는 여기에서 수정할 것이 없습니다.

관련 문제