0

我对 JMS 有疑问。问题是,我有一个应用程序,它正在尝试通过 JMS 发送消息,但是在 JMS 服务器重新启动后,它会在服务器停机时抛出异常。它没有重新连接。

无需重新启动 JMS 服务器就可以了,我使用的是 weblogic 10.x。

JMS配置有问题吗?

谢谢

4

1 回答 1

-1

您可以发布您的代码如何发送消息吗?

如果您在 JMS 服务器关闭时尝试发送消息,您可能会遇到异常,并且必须处理该异常。当您下次尝试发送消息时,当 JMS 服务器重新启动并运行时,您可能会从连接工厂创建一个新连接。然后将发生重新连接:

// Let's say, you inject CF and Dest.
@Resource(lookup = "jms/ConnectionFactory")
private static ConnectionFactory cf;

@Resource(lookup = "jms/MyQueue")
private static Destination dest;

public void sendMessage(){ // called every time you need to send a message.
   try{
     Connection con = cf.createConnection(); // will reconnect, otherwise pooled.
     Session sess = con.createSession(false,Session.AUTO_ACKNOWLEDGE);
     MessageProducer prod = sess.createProducer(dest);
     Message msg = sess.createTextMessage("Hello, World");
     prod.send(msg);
     sess.close();
     con.close();
   }catch(Exception e){
     // handle errors 
   }
}

但是,Weblogic JMS 中有一些内置的故障转移/重新连接功能,请查看此页面:

有关重新连接 JMS 生产者的 Oracle 代码清单和文档

于 2012-07-09T07:55:16.313 回答