我对 JMS 有疑问。问题是,我有一个应用程序,它正在尝试通过 JMS 发送消息,但是在 JMS 服务器重新启动后,它会在服务器停机时抛出异常。它没有重新连接。
无需重新启动 JMS 服务器就可以了,我使用的是 weblogic 10.x。
JMS配置有问题吗?
谢谢
您可以发布您的代码如何发送消息吗?
如果您在 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 中有一些内置的故障转移/重新连接功能,请查看此页面: