2017-11-16 2 views
0

Ich möchte eine Nachricht veröffentlichen, für die ich eine JMS-Anwendung schreibe, die Nachrichten in Tibco EMS-Warteschlangen veröffentlichen wird. Es gibt zwei Warteschlangen, eine für die normale Protokollierung und eine für die Protokollierung von Ausnahmen. Wie kann ich Nachrichten an zwei verschiedene Warteschlangen in JMS senden? Kann mir jemand dabei helfen, da es sehr kritisch ist?JMS sendende Nachricht

+0

Ich sehe nicht, wo ist das Problem, das zu implementieren? – Losusovic

+0

Im Allgemeinen senden wir Nachrichten an eine Warteschlange. Aber hier muss ich zwei verschiedene Arten von Nachrichten an zwei verschiedene Warteschlangen senden. Eine Warteschlange für die Protokollierung und eine weitere für Fehler. – user2713075

Antwort

0

Der grundlegende JMS-API-Code zum Senden von Nachrichten an die Warteschlange wird unten angezeigt. Sie müssen die Verbindungsfactory sowie den Warteschlangennamen entsprechend Ihrer Umgebung anpassen. Außerdem müssen die anfänglichen Kontexteinstellungen angepasst werden.

void sendMessage() { 
    Connection con = null; 
    try { 

     // Get the initial context 
     Hashtable<String, String> hTable = new Hashtable<String, String>(); 
     hTable.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 
     hTable.put(Context.PROVIDER_URL, "t3://localhost:7001"); 
     Context ctx = new InitialContext(hTable); 

     // Create ConnectionFactory 
     ConnectionFactory cf = (ConnectionFactory) ctx.lookup("JMS-JNDI-ConFactory"); 

     // Create connection 
     con = cf.createConnection(); 

     // Create Non transacted Session with auto ack 
     Session session = con.createSession(false, Session.AUTO_ACKNOWLEDGE); 

     // Create the destination 
     Queue queue = (Queue) ctx.lookup("JMS-JNDI-Queue"); 

     // Create MessageProducer for the destination 
     MessageProducer producer = session.createProducer(queue); 

     // Create empty Message with header and properties only 
     TextMessage message = session.createTextMessage(); 

     // set the message body 
     message.setText("Message-1"); 

     // Send the message 
     producer.send(message); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     if (con != null) { 
      try { 
       con.close(); 
      } catch (JMSException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 
+0

Danke .. Aber ich muss zwei verschiedene Arten von Nachrichten an zwei verschiedene Warteschlange senden. Eine Warteschlange für die Protokollierung und eine weitere für Fehler. – user2713075

+0

Dies ist nur ein Beispiel für das Senden von Nachrichten. Sie können den Code verwenden, um jede Art von Nachricht an andere Warteschlangen zu senden. –