Как отловить ошибку при отправке сообщения из JMS - PullRequest
0 голосов
/ 07 мая 2018

Я отправляю сообщение через мое автономное приложение, которое использует EJB MDB для связи с другим моим сервером приложений, работающим на сервере JBOSS. Мой сервер приложений подключен к серверу MSSQL. В определенном случае соединение с базой данных теряется на стороне сервера приложений, и мы получаем следующую ошибку -

Connection is reset.

Позже, когда я пытаюсь отправить сообщение, я не получаю никаких ошибок в своих автономных EJB-журналах MDB, и процесс просто перестает выполняться. Я получаю журнал ошибок в журналах на стороне сервера приложений, но те же журналы не распространяются на мой Журналы ошибок EJB MDB.

Насколько я понимаю, когда соединение с db потеряно, все компоненты ejb, присутствующие в контейнере jboss, тоже обнуляются (я могу ошибаться, я новичок в 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();
        }
    }

У меня сложилось впечатление, что объект Queueconnection будет аннулирован, когда наше соединение с БД потеряно (так как мы создаем бин и устанавливаем соединение для сообщения). Но это не похоже на работу.

1 Ответ

0 голосов
/ 10 мая 2018

Я нашел способ перезвонить моей заявке после отправки сообщения. Я использовал отдельную временную очередь и использовал метод setJMSReplyTo для установки пункта назначения ответа. Более подробную информацию можно получить из этого ссылка . Надеюсь, что это помогает другим.

...