我遇到了有关JMS的问题。问题是,我有一个应用程序,它正在尝试通过JMS发送消息,但在JMS服务器重新启动后,它会抛出异常,就像服务器停机时一样。它没有重新连接。
没有重启JMS服务器就完全没问题了,我正在使用weblogic 10.x。
这是关于JMS配置的问题吗?
由于
答案 0 :(得分:-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中有一些内置的故障转移/重新连接功能,请看一下这个页面:
Oracle code listing and documentation about reconnecting JMS producers