JMS
Instalacja
-
Pobierz ze strony mq.java.net plik:
Open MQ 4.5 (zip archive, no installer)
-
Uruchom program brokera:
mq/bin/imqbrokerd -vmargs -d64
Zadania
-
Zaimplementuj aplikację dodającą wiadomości do kolejki (Queue). W tym celu należy:
-
utworzyć obiekt klasy:
new com.sun.messaging.ConnectionFactory();
-
stworzyć obiekt reprezentujący połączenie z brokerem:
Connection conn = myConnFactory.createConnection();
-
nadać identyfikator klienta:
conn.setClientID("nazwa");
-
utworzyć obiekt sesji:
Session mySess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-
utworzyć obiekt reprezentujący kolejkę o określonej nazwie:
Queue myQueue = new com.sun.messaging.Queue("nazwaKolejki");
-
przy pomocy obiektu reprezentującego sesję, utworzyć producenta wiadomości:
MessageProducer myMsgProducer = mySess.createProducer(myQueue);
-
przy pomocy obiektu reprezentującego sesję, utworzyć nową wiadomość:
TextMessage myTextMsg = mySess.createTextMessage(); myTextMsg.setText(args[0]);
-
wysłać wiadomość:
myMsgProducer.send(myTextMsg);
-
zamknąć sesję i połączenie:
mySess.close(); conn.close();
-
utworzyć obiekt klasy:
-
Napisz aplikację pobierając wiadomości z kolejki. Aby pobrać wiadomość należy:
- utworzyć obiekty reprezentujące połączenie, sesję i kolejkę, tak jak w przypadku nadawcy wiadomości
-
rozpocząć połączenie i odebrać wiadomość:
myConn.start(); MessageConsumer myMsgConsumer = mySess.createConsumer(myQueue); Message msg = myMsgConsumer.receive();
- zamknąć połączenie i sesję
-
Skompiluj i uruchom aplikacje:
javac -cp "jms.jar:imq.jar:." *.java java -cp "jms.jar:imq.jar:." NazwaProgramu
- W aplikacjach zmień Queue na Topic i porównaj sposób działania.
- Zaimplementuj program konsumenta, który odbiera wiadomości z kolejki asynchronicznie.
- Zaimplementuj konsumenta korzystającego z mechanizmu trwałej subskrypcji.
- Przetestuj mechanizm filtrowania wiadomości (Session.createConsumer, Message.setStringProperty).