从 JMS 发送消息时如何捕获错误
How to catch error when message have been sent from JMS
我正在通过我的独立应用程序发送一条消息,该应用程序使用 EJB MDB 与我的其他应用程序服务器通信,该应用程序服务器 运行 on JBOSS server.My 应用程序服务器已连接到 MSSQL服务器。在某些情况下,与数据库的连接在应用程序服务器端丢失,我们会收到以下错误 -
Connection is reset.
稍后,当我尝试发送消息时,我的独立 EJB MDB 日志中没有收到任何错误,并且进程刚刚停止 executing.I 在应用程序服务器端日志中收到错误日志,但相同的日志没有传播到我的 EJB MDB 错误日志。
根据我的理解,当数据库连接丢失时,jboss 容器中存在的所有 ejb bean 也会失效。(我在这里可能是错的,我是 EJB 的新手)。
我尝试在我用于发送消息的代码中实现以下代码 -
QueueConnection qcon = null;
@PostConstruct
public void initialize() {
System.out.println("In PostConstruct");
try {
qcon = qconFactory.createQueueConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
@PreDestroy
public void releaseResources() {
System.out.println("In PreDestroy");
try {
if(qcon != null)
{
qcon.close();
}
if(qcon== null){
throw new Exception(" new exception occured.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
我的印象是,当我们的数据库连接丢失时(因为我们正在创建 bean 并为消息建立连接),Queueconnection 对象将被取消。但这似乎不起作用。
我确实找到了一种在发送消息后回调我的应用程序的方法。我使用了一个单独的临时队列并使用 setJMSReplyTo 方法来设置回复目的地。可以从此获得更多信息
link。希望这对其他人有帮助。
我正在通过我的独立应用程序发送一条消息,该应用程序使用 EJB MDB 与我的其他应用程序服务器通信,该应用程序服务器 运行 on JBOSS server.My 应用程序服务器已连接到 MSSQL服务器。在某些情况下,与数据库的连接在应用程序服务器端丢失,我们会收到以下错误 -
Connection is reset.
稍后,当我尝试发送消息时,我的独立 EJB MDB 日志中没有收到任何错误,并且进程刚刚停止 executing.I 在应用程序服务器端日志中收到错误日志,但相同的日志没有传播到我的 EJB MDB 错误日志。
根据我的理解,当数据库连接丢失时,jboss 容器中存在的所有 ejb bean 也会失效。(我在这里可能是错的,我是 EJB 的新手)。
我尝试在我用于发送消息的代码中实现以下代码 -
QueueConnection qcon = null;
@PostConstruct
public void initialize() {
System.out.println("In PostConstruct");
try {
qcon = qconFactory.createQueueConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
@PreDestroy
public void releaseResources() {
System.out.println("In PreDestroy");
try {
if(qcon != null)
{
qcon.close();
}
if(qcon== null){
throw new Exception(" new exception occured.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
我的印象是,当我们的数据库连接丢失时(因为我们正在创建 bean 并为消息建立连接),Queueconnection 对象将被取消。但这似乎不起作用。
我确实找到了一种在发送消息后回调我的应用程序的方法。我使用了一个单独的临时队列并使用 setJMSReplyTo 方法来设置回复目的地。可以从此获得更多信息 link。希望这对其他人有帮助。