Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Error handling 从JMS发送消息时如何捕获错误_Error Handling_Jms_Ejb_Jms Topic_Edb - Fatal编程技术网

Error handling 从JMS发送消息时如何捕获错误

Error handling 从JMS发送消息时如何捕获错误,error-handling,jms,ejb,jms-topic,edb,Error Handling,Jms,Ejb,Jms Topic,Edb,我通过我的独立应用程序发送消息,该应用程序使用EJB MDB与运行在JBOSS服务器上的其他应用程序服务器通信。我的应用程序服务器连接到MSSQL服务器。在某些情况下,应用服务器端与数据库的连接丢失,我们得到以下错误- Connection is reset. 稍后,当我尝试发送消息时,我的独立EJB MDB日志中没有收到任何错误,进程只是停止执行。我在应用程序服务器端日志中收到错误日志,但相同的日志不会传播到我的EJB MDB错误日志中 根据我的理解,当db连接丢失时,jboss容器中的所有

我通过我的独立应用程序发送消息,该应用程序使用EJB MDB与运行在JBOSS服务器上的其他应用程序服务器通信。我的应用程序服务器连接到MSSQL服务器。在某些情况下,应用服务器端与数据库的连接丢失,我们得到以下错误-

Connection is reset.
稍后,当我尝试发送消息时,我的独立EJB MDB日志中没有收到任何错误,进程只是停止执行。我在应用程序服务器端日志中收到错误日志,但相同的日志不会传播到我的EJB MDB错误日志中

根据我的理解,当db连接丢失时,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();
        }
    }

我的印象是,当我们的db连接丢失时,Queueconnection对象将无效(因为我们正在创建bean并为消息建立连接)。但它似乎不起作用

我确实找到了一种方法,可以在发送消息后回调我的应用程序。我使用了一个单独的临时队列,并使用setJMSReplyTo方法设置回复目的地。更多信息可从本网站获得
. 希望这对其他人有所帮助。

上述代码似乎不起作用,因此我目前正在尝试了解如何实现从一个应用程序到另一个涉及EJB MDB的应用程序的错误传播。若消息是从一个应用程序发送的,并且在接收到消息后发生错误,那个么我们如何向后传播该错误呢。