0

我们已经在 weblogic server 11g 版本 10.3.5 上部署了我们的 EJB 应用程序,并且我们正在使用 java swing 客户端访问服务器上的应用程序。

当我们尝试在其中一个客户端请求中进行“%”搜索调用时,客户端永远不会收到数据,然后抛出 PeerGoneException。但是当我查看服务器时,一切都很好,没有内存溢出或者有足够的执行线程可用。以下是我在服务器上找到的线程转储。线程的最后一个状态是套接字写操作。但它永远不会结束。

可能是网络问题还是 weblogic 配置问题?此外,这只发生在我们安装了 weblogic 服务器的 SUN 机器上。在我们的 Windows 机器上,它工作正常:

"[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" RUNNABLE native         
            java.net.SocketOutputStream.socketWrite0(Native Method)          
            java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)          
            java.net.SocketOutputStream.write(SocketOutputStream.java:136)          
            weblogic.socket.SocketMuxer.internalWrite(SocketMuxer.java:1005)          
            weblogic.socket.SocketMuxer.write(SocketMuxer.java:997)                         weblogic.rjvm.t3.MuxableSocketT3$T3MsgAbbrevJVMConnection.sendMsg(MuxableSocketT3.java:462)                         weblogic.rjvm.MsgAbbrevJVMConnection.sendOutMsg(MsgAbbrevJVMConnection.java:336)                        weblogic.rjvm.MsgAbbrevJVMConnection.sendMsg(MsgAbbrevJVMConnection.java:194)                       weblogic.rjvm.MsgAbbrevJVMConnection.sendMsg(MsgAbbrevJVMConnection.java:144)          
            weblogic.rjvm.ConnectionManager.sendMsg(ConnectionManager.java:599)          
            weblogic.rjvm.RJVMImpl.send(RJVMImpl.java:903)                          weblogic.rjvm.MsgAbbrevOutputStream.flushAndSend(MsgAbbrevOutputStream.java:394)          
            weblogic.rjvm.MsgAbbrevOutputStream.send(MsgAbbrevOutputStream.java:445)          
            weblogic.rmi.internal.BasicServerRef.postInvoke(BasicServerRef.java:693)          
            weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:537)          
            weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)          
            weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)          
            weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
4

1 回答 1

1

不知道你是否还在寻找答案。

PeerGoneException 是由于套接字关闭所致。当服务器无法接受请求时(例如,当 MaxMessageSize 超过默认值 (10MB) 或通过 -Dweblogic.MaxMessageSize 系统属性覆盖时),通信就会中断。

于 2012-08-07T08:39:34.400 回答