You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "dbit-xia (JIRA)" <ji...@apache.org> on 2019/01/20 08:43:00 UTC

[jira] [Updated] (ARTEMIS-2233) AMQP protocol does not seem to support virtual topic

     [ https://issues.apache.org/jira/browse/ARTEMIS-2233?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

dbit-xia updated ARTEMIS-2233:
------------------------------
    Description: 
h4.  AMQP protocol does not seem to support virtual topic?

"Openwire" I tried it is ok!

 (First issue :))
{code:java}
package org.apache.activemq.artemis.jms.example;


import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;

import org.apache.qpid.jms.JmsConnectionFactory;

public class AMQPVirtualTopic {
public static void main(final String[] args) throws Exception {
Connection connection = null;	

try {
ConnectionFactory connectionFactory = new JmsConnectionFactory("amqp://127.0.0.1:5672");

connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

//create consumer on queue that is used by the Virtual Topic
Queue queue = session.createQueue("Consumer.A.VirtualTopic.Orders");
Topic topic = session.createTopic("VirtualTopic.Orders");

MessageConsumer messageConsumer = session.createConsumer(queue);
messageConsumer.setMessageListener(new MessageListener(){
public void onMessage(Message message) {
try {
System.out.println("messageConsumer1 Received ID: " + message.getJMSMessageID() + " from Queue,"+((TextMessage)message).getText());
message.acknowledge();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});

MessageConsumer messageConsumer2 = session.createConsumer(queue);
messageConsumer2.setMessageListener(new MessageListener(){
public void onMessage(Message message) {
try {
System.out.println("messageConsumer2 Received ID: " + message.getJMSMessageID() + " from Queue,"+((TextMessage)message).getText());
message.acknowledge();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});

MessageProducer producer = session.createProducer(topic); //artemis的amqp协议不生效

connection.start();

for (int i=0;i<10;i++){
//send message to virtual topic
TextMessage message = session.createTextMessage("This is a text message:"+i);
producer.send(message); 
//	System.out.println("Sent message with ID: " + message.getJMSMessageID() + " to Topic: " + topic.getTopicName());
}

}
//	catch (Exception e){
//	System.out.print(e);
//	
//	} 
finally {
//	if (connection != null) {
//	connection.close();
//	}
}
}

}
{code}
 

  was:
 AMQP protocol does not seem to support virtual topic?

 (First issue :))
{code:java}
package org.apache.activemq.artemis.jms.example;


import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;

import org.apache.qpid.jms.JmsConnectionFactory;

public class AMQPVirtualTopic {
public static void main(final String[] args) throws Exception {
Connection connection = null;	

try {
ConnectionFactory connectionFactory = new JmsConnectionFactory("amqp://127.0.0.1:5672");

connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

//create consumer on queue that is used by the Virtual Topic
Queue queue = session.createQueue("Consumer.A.VirtualTopic.Orders");
Topic topic = session.createTopic("VirtualTopic.Orders");

MessageConsumer messageConsumer = session.createConsumer(queue);
messageConsumer.setMessageListener(new MessageListener(){
public void onMessage(Message message) {
try {
System.out.println("messageConsumer1 Received ID: " + message.getJMSMessageID() + " from Queue,"+((TextMessage)message).getText());
message.acknowledge();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});

MessageConsumer messageConsumer2 = session.createConsumer(queue);
messageConsumer2.setMessageListener(new MessageListener(){
public void onMessage(Message message) {
try {
System.out.println("messageConsumer2 Received ID: " + message.getJMSMessageID() + " from Queue,"+((TextMessage)message).getText());
message.acknowledge();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});

MessageProducer producer = session.createProducer(topic); //artemis的amqp协议不生效

connection.start();

for (int i=0;i<10;i++){
//send message to virtual topic
TextMessage message = session.createTextMessage("This is a text message:"+i);
producer.send(message); 
//	System.out.println("Sent message with ID: " + message.getJMSMessageID() + " to Topic: " + topic.getTopicName());
}

}
//	catch (Exception e){
//	System.out.print(e);
//	
//	} 
finally {
//	if (connection != null) {
//	connection.close();
//	}
}
}

}
{code}
 


> AMQP protocol does not seem to support virtual topic
> ----------------------------------------------------
>
>                 Key: ARTEMIS-2233
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2233
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 2.6.3, 2.6.4
>         Environment: OS: CentOS release 6.10 (Final)
> javac: 1.8.0_91
>            Reporter: dbit-xia
>            Priority: Major
>              Labels: easyfix
>         Attachments: AMQPVirtualTopic.java
>
>   Original Estimate: 12h
>  Remaining Estimate: 12h
>
> h4.  AMQP protocol does not seem to support virtual topic?
> "Openwire" I tried it is ok!
>  (First issue :))
> {code:java}
> package org.apache.activemq.artemis.jms.example;
> import javax.jms.Connection;
> import javax.jms.ConnectionFactory;
> import javax.jms.JMSException;
> import javax.jms.Message;
> import javax.jms.MessageConsumer;
> import javax.jms.MessageListener;
> import javax.jms.MessageProducer;
> import javax.jms.Queue;
> import javax.jms.Session;
> import javax.jms.TextMessage;
> import javax.jms.Topic;
> import org.apache.qpid.jms.JmsConnectionFactory;
> public class AMQPVirtualTopic {
> public static void main(final String[] args) throws Exception {
> Connection connection = null;	
> try {
> ConnectionFactory connectionFactory = new JmsConnectionFactory("amqp://127.0.0.1:5672");
> connection = connectionFactory.createConnection();
> Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
> //create consumer on queue that is used by the Virtual Topic
> Queue queue = session.createQueue("Consumer.A.VirtualTopic.Orders");
> Topic topic = session.createTopic("VirtualTopic.Orders");
> MessageConsumer messageConsumer = session.createConsumer(queue);
> messageConsumer.setMessageListener(new MessageListener(){
> public void onMessage(Message message) {
> try {
> System.out.println("messageConsumer1 Received ID: " + message.getJMSMessageID() + " from Queue,"+((TextMessage)message).getText());
> message.acknowledge();
> } catch (JMSException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
> }
> });
> MessageConsumer messageConsumer2 = session.createConsumer(queue);
> messageConsumer2.setMessageListener(new MessageListener(){
> public void onMessage(Message message) {
> try {
> System.out.println("messageConsumer2 Received ID: " + message.getJMSMessageID() + " from Queue,"+((TextMessage)message).getText());
> message.acknowledge();
> } catch (JMSException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
> }
> });
> MessageProducer producer = session.createProducer(topic); //artemis的amqp协议不生效
> connection.start();
> for (int i=0;i<10;i++){
> //send message to virtual topic
> TextMessage message = session.createTextMessage("This is a text message:"+i);
> producer.send(message); 
> //	System.out.println("Sent message with ID: " + message.getJMSMessageID() + " to Topic: " + topic.getTopicName());
> }
> }
> //	catch (Exception e){
> //	System.out.print(e);
> //	
> //	} 
> finally {
> //	if (connection != null) {
> //	connection.close();
> //	}
> }
> }
> }
> {code}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)