저는 JMS에 익숙하지 않고 Active MQ Hello world의 예를 통해 설명합니다. 난 DB에서 직원 테이블에서 항목 을 할 때마다 내가 시나리오를 말해봐, 내가 queue.here에서 메시지를 넣어야 할 것은 내 질문에JMS 대기열에 메시지 게시?
public static class HelloWorldProducer {
public void createMessageOnQueue() {
try {
// Create a ConnectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost");
// Create a Connection
Connection connection = connectionFactory.createConnection();
connection.start();
// Create a Session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the destination (Topic or Queue)
Destination destination = session.createQueue("TEST.FOO");
// Create a MessageProducer from the Session to the Topic or Queue
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// Create a messages
String text = "Hello world! From: " + Thread.currentThread().getName() + " : " + this.hashCode();
TextMessage message = session.createTextMessage(text);
// Tell the producer to send the message
System.out.println("Sent message: "+ message.hashCode() + " : " + Thread.currentThread().getName());
producer.send(message);
// Clean up
session.close();
connection.close();
}
catch (Exception e) {
System.out.println("Caught: " + e);
e.printStackTrace();
}
}
}
이제 세계 예 안녕하세요 생산자 코드 내가를 닫을 경우입니다 연결 및 세션, 그것은 또한 대기열을 닫을 것인가? 그렇다면 메시지가 아직 소비되지 않았다면 어떻게됩니까?
두 번째 질문은 두 번째로 같은 대기열 (예 : 'TEST.FOO')에 메시지를 게시해야 할 경우 createMessageOnQueue
메쏘드를 다시 호출해야하는지입니다. 예인 경우 새 큐를 생성하지 않습니다. session.createQueue("TEST.FOO")?