Какие проблемы возникают, когда Java Server Socket работает непрерывно - PullRequest
0 голосов
/ 05 марта 2012

В рамках нашего проекта мы внедрили приложение на основе сокета Java Server, которое будет работать с 06:35 до 11:59 вечера. После 11:59 вечера мы прекращаем этот процесс и возобновляем работу в 06:35 утра. Теперь у нас есть требование запускать этот процесс непрерывно, кроме выходных. Проблема в том, что если мы запустим этот процесс непрерывно, получим ли мы проблему? java.net.ConnectException: соединение отказано? Если мы будем непрерывно запускать эту работу, будет ли Сокет истек? Мое требование в производстве, этот процесс не должен выдавать никаких ошибок из-за непрерывного запуска. Пожалуйста, посоветуйте?

Код:

SocketConnection socketConnection = new SocketConnection();
ServerSocket serverSocket = socketConnection.getSocketConnection();
while (true)
{
   Socket socket = serverSocket.accept();
   ServerThreadHandler serverThreadHandler = null;
   try
   {
       PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
       BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream()));
       String requestXml = in.readLine();
       //TODo the process
       out.println(responseXml);
   } catch (Exception e)
   {
   }
}

С уважением, Kiran T

1 Ответ

1 голос
/ 06 марта 2012

Теоретически нет проблем с непрерывным принятием ServerSocket.Но вам не нужно close socket, которое вы получаете от serverSocket.accept()?

Вам следует проверить документацию.Если вам нужно закрыть, и вы не закрываете его, у вас могут закончиться ресурсы и в конечном итоге получить ошибки.

Если вы уже получаете исключения, добавьте трассировку стека к вашему вопросу.

...