2017-02-20 9 views
0

仕様:IBMMQ 7.xの、Jdk1.7、TOMCAT7、のWinOS-7IBMMQメッセージ

質問:継続的に指定IBMMQと警告/トリガにキューを監視するリスナーイベント/新鮮なメッセージのxは消費するために利用可能であることを私に通知する。

問題: '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

>>なぜセットアップuは私のコードでこれを行うことができますどのようにメッセージリスナ〜ジャワ、同じことを検証するための参照URLまたはサンプルコードを提供してください:ここでは

は、サンプルコードです。 –

+0

IBM MQに同梱のMessageListener JMSサンプルを参照してください。サンプルはMqインストールディレクトリの下にあります。 – Shashi

+0

Sir ..上記で提供されたコードは1回分のメッセージ消費です...間違っていれば正解...私はすでにそのコードを持っており、継続的にイベントを受信するためにリスナーを監視しています... "For-LoopタイマーかCronはNOTである - 新しいメッセージのためのキューを監視することを許可されます。 –