繁体   English   中英

Java套接字服务器停止响应所有连接

[英]Java Socket Server Stops Responding To All Connections

我有一个Java套接字服务器,它接受来自Flash客户端的连接并将消息发送到连接到游戏的其他Flash客户端,它还将一些位记录到MySQL数据库中。 服务器工作正常,直到客户端数量超过〜100,然后它突然停止响应所有连接,它也不接受新连接,仅重新启动才使其重新工作。 服务器使用多线程,因此为每个客户端产生一个新线程。 当前的物理服务器具有16个处理器和〜4gb的RAM(甚至不使用那么多的内存)。 我尝试使用-Xms -Xmx -server / etc命令行属性运行服务器,但是没有任何帮助。

jstack不会显示任何异常(或者不是,我看不到,也可以根据需要将其发布),除了它会卡在代码的服务器线程部分(第59行)中的以下readByte()之外:

while(((cr = streamIn.readByte()) != EOF))
    {
     if(amount < 100)
     {
      a+=(char)cr;
      amount++;
     }
     else
      break;
    }

编辑:显然不需要所有代码-当它得到EOF异常时,它会主动阻止其readByte()。 Wil现在问另一个问题,该如何解决。

快速猜测:

快速射击是您将达到100个数据库连接限制。 查看更多-http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html

一些一般提示:

  • 尝试使用ExecutorService进行线程管理,
  • 使用NIO,
  • 验证数据库连接是否关闭

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM