2010-07-28 43 views

回答

1

肯定是的,如果它在目標上有一個偵聽器,它也會產生消息。

0

正如您在下面的示例中看到的,客戶端既可以是生產者又可以是消費者。這真的取決於你如何設置它。通常情況下,如果您正在進行異步消息傳遞,客戶端可能是消費者或生產者。如果您正在做請求/回覆,那麼它會執行這兩個操作,並且您將使用correlationID或messageID來跟蹤您的請求和回覆。下面的示例用於異步通信。

myConnFactory = new com.sun.messaging.ConnectionFactory(); 
    Connection myConn = myConnFactory.createConnection(); 
    //Create a session within the connection. 
    Session mySess = myConn.createSession(false, Session.AUTO_ACKNOWLEDGE); 
    myQueue = new com.sun.messaging.Queue("world"); 

    //Create a message producer. 
    MessageProducer myMsgProducer = mySess.createProducer(myQueue); 

    //Create a message consumer. (Use if going to read from the queue) 
    MessageConsumer myMsgConsumer = mySess.createConsumer(myQueue); 

    //Start the Connection 
    myConn.start(); 

    //Create and send a message to the queue. 
    TextMessage myTextMsg = mySess.createTextMessage(); 
    myTextMsg.setText("Hello World"); 
    System.out.println("Sending Message: " + myTextMsg.getText()); 
    myMsgProducer.send(myTextMsg); 

    // The rest of the code is for reading from a queue - optional 
    //Receive a message from the queue. 
    Message msg = myMsgConsumer.receive(); 

    //Retreive the contents of the message. 
    if (msg instanceof TextMessage) { 
     TextMessage txtMsg = (TextMessage) msg; 
     System.out.println("Read Message: " + txtMsg.getText()); 
    } 
+0

看起來像打字錯誤。它應該是「下面的示例是用於同步通信」。 – Sujee 2010-08-15 16:23:24

+0

@Sujee - 重新安排了代碼。你是部分正確的。其實它是用於異步通信 - 如果我想要同步,我會等待獲取某個ID或特定相關ID的消息。 – 2010-08-15 16:32:09

2

我得到的答案..有noLocal標誌哪一個可以設置爲不從相同的連接

相關問題