[英]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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.