Ich kann nicht verstehen, wie ActiveMQ nicht lokal verwendet wird.
Angenommen, ich habe 2 Maschinen, die einige Nachrichten austauschen müssen.
Auf die auf der Maschine starten ich ActiveMQ Broker:Wie kann activemq nicht lokal verwendet werden?
> ~/bin/activemq
und verwenden Sie so etwas wie:
javax.naming.Context ctx = new InitialContext();
TopicConnectionFactory factory = (TopicConnectionFactory)ctx.lookup("connectionFactory");
conn = factory.createTopicConnection();
TopicSession session = conn.createTopicSession(false,TopicSession.AUTO_ACKNOWLEDGE);
Topic topic = null;
try{
topic = (Topic)ctx.lookup("MyTopic");
System.out.println("MyTopic was found");
}catch(NameNotFoundException nnfe){
topic = session.createTopic("MyTopic");
System.out.println("MyTopic was created");
}
TextMessage textMessage = session.createTextMessage();
TopicPublisher publisher = session.createPublisher(topic);
conn.start();
textMessage.setText("My topic message number");
publisher.publish(textMessage);
System.out.println("sendMessage2topic");
wo in jndi.properties ich habe:
java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url = tcp://localhost:61616
Aber was soll ich erstellen auf der anderen Maschine zu diesem Thema abonnieren? Shoul Ich erstelle einen zweiten lokalen ActiveMQ-Broker auf der zweiten Maschine und wie abonniere ich das Remote-Thema auf der ersten Maschine?
Ist das nicht die URL, die die JNDI-Verbindung durchführt? Wäre die URL zur Verbindung mit dem Broker nicht in das ConnectionFactory-Objekt eingebettet? –