【发布时间】:2017-10-06 06:51:29
【问题描述】:
我已经能够成功创建一个 weblogic jms 客户端,并且我已经能够在 LAPTOP A 上成功运行它,将消息发送到我在公司服务器上配置的 jms 队列:SERVER A。
现在,我遇到的问题是,当我在另一台笔记本电脑 LAPTOP B 上运行 jms 客户端时,客户端在尝试从连接工厂创建连接时停止:
String queueConnectionFactory = "jms/thefactory"
QueueConnectionFactory qconFactory = (QueueConnectionFactory) context.lookup(queueConnectionFactory);
QueueConnection qcon = qconFactory.createQueueConnection(); //application freezes here!
虽然发生这种情况,但当我回到笔记本电脑 A 并运行 jms 客户端时,也会发生同样的事情。
我继续终止两台笔记本电脑上的客户端应用程序,几分钟后,这出现在 weblogic 的服务器日志中:
java.io.EOFException: Attempt to send message on closed socket.
java.rmi.MarshalException: IOException while sending; nested exception is:
java.io.EOFException: Attempt to send message on closed socket
at weblogic.iiop.EndPointImpl.send(EndPointImpl.java:1155)
at weblogic.iiop.OutboundResponseImpl.sendThrowable(OutboundResponseImpl.java:221)
at weblogic.rmi.internal.BasicServerRef.handleThrowable(BasicServerRef.java:866)
at weblogic.rmi.internal.BasicServerRef.postInvoke(BasicServerRef.java:762)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:542)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
Caused By: java.io.EOFException: Attempt to send message on closed socket
at weblogic.iiop.MuxableSocketIIOP.send(MuxableSocketIIOP.java:469)
at weblogic.protocol.AsyncMessageSenderImpl.sendOutMsg(AsyncMessageSenderImpl.java:90)
at weblogic.protocol.AsyncMessageSenderImpl.send(AsyncMessageSenderImpl.java:46)
at weblogic.iiop.MuxableSocketIIOP$IIOPConnection.send(MuxableSocketIIOP.java:582)
at weblogic.iiop.EndPointImpl.send(EndPointImpl.java:1148)
at weblogic.iiop.OutboundResponseImpl.sendThrowable(OutboundResponseImpl.java:221)
at weblogic.rmi.internal.BasicServerRef.handleThrowable(BasicServerRef.java:866)
at weblogic.rmi.internal.BasicServerRef.postInvoke(BasicServerRef.java:762)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:542)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
过了一会儿,我可以从笔记本电脑 A 运行 jms 客户端。但是当我从笔记本电脑 B 再次尝试时,我刚刚描述的整个问题就开始了。
两台笔记本电脑都可以 ping 服务器和 telnet 到服务器的端口。事实上,两者都可以很好地连接 JMS 服务器。正是工厂连接创建带来了这个奇怪的问题。
我不明白发生了什么。有人可以帮忙吗?
【问题讨论】:
标签: jms weblogic12c