Невозможно отправить сообщение в ActiveMQ - PullRequest
0 голосов
/ 17 января 2019

Я успешно помещаю сообщение в ActiveMQ из локальной настройки Eclipse. Однако тот же код не выдвигает сообщение, когда я пытаюсь выполнить его с сервера как задание cron. Он даже не генерирует исключение во время выполнения кода.

среда Java - 1,8

Используемые опорные банки:

  • SLF4J-апи-1.8.0-beta2.jar
  • javax.annotation-апи-1.2.jar
  • javax.jms-апи-2.0.1.jar
  • управление-апи-1,1-преподобный 1.jar
  • ActiveMQ-ядро-5.7.0.jar

Код:

try {           
    map = getMessageDetails(session,"MessageQueueEmail");
    userName = map.get("userName");
    password = map.get("password");
    hostName = map.get("mqHostName");
    queue = map.get("queueName");
    // Create a ConnectionFactory
    ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(userName, password, hostName);
    // Create a Connection
    connection = factory.createConnection();
    // start the Connection
    connection.start();
    System.out.println("MQ started connection");
    // Create a Session
    sessionMQ = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

    // Create the destination Queue
    Destination destination = sessionMQ.createQueue(queue);

    // Create a MessageProducer from the Session to the Queue
    messageProducer = sessionMQ.createProducer(destination);
    messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

    // Create a message
    Message message = sessionMQ.createTextMessage(textMsg);
    System.out.println("MQ Message sent successfully");
    // Tell the producer to send the message
    messageProducer.send(message);
} catch(Exception e) {
    e.printStackTrace();
    System.out.println("\n::::::::::::Error occurred sendEmailMessageToIntranet::::::::::::: " + e.getMessage());
}

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Спасибо всем за ответ. Проблема устранена после импорта правильного файла сертификата на сервер. Хотите знать, почему MQ пытается записать сообщение об ошибке

0 голосов
/ 19 января 2019

Ваш код выглядит нормально, но у вас может быть истечение срока действия. Попробуйте использовать PERSISTENT, и, скорее всего, это проблемы, которые вы не перенаправляете в свой cronjob stderr? Убедитесь, что вы делаете что-то вроде этого:

* / 1 * * * * /something/send.sh & >> /something/out.log

А потом проверь утром.

...