2017-02-20 5 views
0

Spec: IBMMQ 7.x, Jdk1.7, TOMCAT7, пьяниц-7IBMMQ сообщение Прибыл Event Listener в Java

Вопрос: Слушатель событие для непрерывного мониторинга очереди на указанном IBMMQ и оповещения/триггера/уведомить меня, что для потребления доступно «х нет свежих сообщений».

Проблема: «For-Loop» или Timer или Cron NOT - разрешено отслеживать очередь для новых сообщений.

Посоветуйте очень высоко.

ответ

0

Вместо этого почему бы не настроить прослушиватель сообщений и не использовать сообщения, когда и когда они прибудут? Слушатель сообщений ваших приложений будет вызван, когда сообщение поступит в очередь.

Вот пример кода:

 JmsFactoryFactory ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER); 

     // Create connection factory 
     cf = ff.createConnectionFactory(); 
     // Set MQ properties 
     cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, "QM1"); 
     cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT); 
     cf.setIntProperty(WMQConstants.WMQ_PORT,1414); 
     cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, "localhost"); 
     cf.setStringProperty(WMQConstants.WMQ_CHANNEL, "MY.SVRCONN");   
     System.out.println("Connection Factory created."); 

     connection = cf.createConnection(); 
     System.out.println("Connection created."); 

     session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 
     System.out.println("Session created."); 

     Destination destination = session.createQueue("SUB.Q"); 
     System.out.println("Destination created: " + destination.toString()); 
     consumer = session.createConsumer(destination); 
     System.out.println("Consumer created."); 
     // Now receive messages asynchronously 
     // Create and register a new MessageListener for this consumer 
     consumer.setMessageListener(new MessageListener() { 
      public void onMessage(Message msg) { 
      try { 
       // Display the message that just arrived 
       //System.out.println(msg); 
       TextMessage txtMsg = (TextMessage)msg; 
       System.out.println(txtMsg.getText()); 
      } // end try 
      catch (Exception e) { 
       System.out.println("Exception caught in onMessage():\n" + e); 
      } 
      return; 
      } // end onMessage() 
     }); // end setMessageListener    
     connection.start(); 
     Thread.sleep(5000); 
     session.close(); 
+0

>> почему бы не настроить сообщение слушатель Как и может сделать это в моем коде ~ Java, пожалуйста, предоставьте реф URL или пример кода для проверки того же. –

+0

Просмотрите образец JMS MessageListener, поставляемый с IBM MQ. Вы можете найти образцы в каталоге Mq install. – Shashi

+0

Сэр .. Код, приведенный выше, предназначен для потребления 1-го раза ... исправьте меня, если он ошибочен ... У меня уже есть этот код и он необходим для непрерывного отслеживания событий слушателем, чтобы свежие сообщения были доступны ... »For-Loop 'или Timer или Cron NOT - разрешено отслеживать очередь для новых сообщений. " –