???????Session?д?????MessageConsumer????????????????Destination?????????????????????????MessageConsumer?????????????÷?????в????κβ???????????????Message?????????????裬????????Message???????????????????????????????MessageConsumer??????MessageListener?????????????????Topic ?? Queue?????á?MessageListener??????????????????? —— onMessage????????????????????Message?????????????Destination????????onMessage?????????÷?????Sender.java??Receiver.java?е?onMessage????????????????????Receiver.java?У?????????????????initializeJMS?????У???δ???????MessageConsumer?????QueueReceiver????????MessageListener??????
????// Create a Receiver for the Queue...
????receiver = session.createReceiver(queue);
????// Set the listener (this class)
????receiver.setMessageListener(this);
?????????????Connection??start????????????????Destination?????????Consumer??
????ReplyTo——??????????
???????????????Sender.java??Receiver.java???????MessageConsumers??MessageProducers????????????MessageListener?????????JMS??????????????????????????????Destination?????????????????????????????ó?????????????????Queue????Topic?????????????Message?д??????Destination??
????Message??????????JMSReplyTo???????????????????????????????????????????Queue????Topic????????????Message??JMSReplyTo?????С????????????????????????е????Destination?????????????????????????????????????????????????????????????????????????С?Sender.java?а??????????????Σ??????????????Queue??????????????TextMessage??JMSReplyTo?????У?
????// Create a temporary queue for replies...
????tempQueue = (Queue) session.createTemporaryQueue();
???????????д????????Sender.java??initializeJMS?????????????δ??????????ó??????????????Queue???????Queue??????????ó?????????????????С????????д????????Sender.java??sendMsg????????????????????????JMSReplyTo???????????????Queue??
????// Set ReplyTo to temporary queue...
????msg.setJMSReplyTo(tempQueue);
??????Receiver.java??QueueReceiver?????????????????JMSReplyTo???????????Queue????????????ó????????QueueSender????????????????Sender.java??????????????JMS Message????????????????е????Destination?????????????????????????????μ????????Producer???????????Consumer??????????????Receiver.java??????????δ?JMS Message????????Queue????????onMessage???????????Щ????
????// Get the temporary queue from the JMSReplyTo
????// property of the message...
????tempQueue = (Queue) msg.getJMSReplyTo();
???????′????????sendReplyToMsg??????????????δ???QueueSender????η??????
????// create a Sender for the temporary queue
????if (sender == null)
????sender = session.createSender(tempQueue);
????TextMessage msg = session.createTextMessage();
????msg.setText(REPLYTO_TEXT);
????...
????// Send the message to the temporary queue...
????sender.send(msg);
????????
????Topic????????“????/????”??????????????????Queue???????????Producer?????Consumer???????Topic????????????????ж????????????????Producer??????ж???????????Topic?????????Consumer??
????Topic??MessageProducers??MessageConsumers???????????Queue????????????????Session??????TopicPublishers??TopicSubscribers??????????QueueSender??QueueReceiver???????????????????????Topic?????????????????????MessageProducer??MessageConsumer????
????TopicPublisher??????????????QueueSender????????????????????′???????Publisher.java??sendMsg????????????TopicPublisher??????????????????Topic?????????
????// create a Publisher if there isnt one...
????if (publisher == null)
????publisher = session.createPublisher(topic);
????TextMessage msg = session.createTextMessage();
????msg.setText(text);
????...
????// Publish it to the topic...
????publisher.publish(msg);
????????????
????TopicSubscribers??????????????????????????????????Ω????????????Session?????????????Session?????????????Client ID?????ID???????Connection???????????????????????????????????й?ConnectionFactory????????????????????У???????weblogic.properties?????????????????????????????Connection?????????????Client ID??Session????????????????????Session?е?Ω?????????????????Client ID????????????????????????????Topic???????Ω????????Consumer??
???????????TopicSession??createDurableSubscriber????????TopicSubscriber????ó??????????????????????????????????????????????????磬??????????????????????????????????????????????????????Ω???????????Topic??????????????Connection/Session??Ω?Client ID????????????Topic?????????????????Topic?????????????????????????????????????ζ??????????????????????????????????????????????????′?????????????????????Ω???????????????Client ID?????????Consumer????Subscriber.java ??????????????????????????????????????????????????????????????????????????????????????????ó???????????г???????????????????????????“readme.txt”???????д??????????Subscriber.java??initializeJMS??????????????δ?TopicSession?д???????????????
????subscriber = session.createDurableSubscriber(
????topic??
????subscriberID??
????SELECTOR??
????false);
????// Set the listener (this class)
????subscriber.setMessageListener(this);
????TopicSubscribers????б???????????????????????????????????????????????????????????
????????ù???????????Topic????????????????????Sun??JMS???????????????????????????????????÷?????????????????????????SELECTOR????????????????Consumer?й??????????????????????????ù???????????????????????
????????——???????????
???????????????й?JMS????????????????????????????????????MessageConsumers???????????????????????????????????????????????????????壩???????????????????????????JMS?????????????????????Щ???????????????????????????????SQL-92?????????????????????????MessageConsumer????????????????MessageConsumer??QueueReceiver????TopicSubscriber?????????????????????????????????????в?????????????????Subscriber.java??????????Publisher??Subscriber??ó??????????????????????????????????????′??????Subscriber.java?ж???????????????????ó???????????????????и????????????
????public final String SELECTOR = "JMSType = TOPIC_PUBLISHER";
????????????????????Topic??????????JMSType???????????????????????????TOPIC_PUBLISHER???????????????????MessageListener???????????????????????????????“readme.txt”????????ù?????????Щ??ó??????????????????????????????????Sun??JMS?????
??????????
????JMS?????????ó????д?????????????????????????????????????????????????????“????”??“????/????”??????????????????????????BEA??WebLogic??÷??????????????????????JMS????????????÷?????????????????????????????EJB??servlet?????????????????????????????????е?????????????????????????????????????????????????????????????????????????WebLogic????????JMS????????????