[jboss-jira] [JBoss JIRA] (WFLY-10054) [Artemis 2.x Upgrade] Client is not able to instantiate destinations by names
Jeff Mesnil (JIRA)
issues at jboss.org
Thu Aug 9 07:42:00 EDT 2018
[ https://issues.jboss.org/browse/WFLY-10054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13616959#comment-13616959 ]
Jeff Mesnil commented on WFLY-10054:
------------------------------------
I am not sure about this one.
Artemis Core API is supported, that's correct. But ActiveMQJMSClient is not part of the Core API.
It is part of Artemis JMS client library. It is a non-standard, non-portable way to instantiate JMS resources.
Application should use JNDI to lookup JMS resources and not used broker-specific library.
I am not sure if our support extends to this class.
[~bilge] Could you please confirm? We need to know the support for using non-standard ActiveMQJMSClient library in client application.
If it is not supported, it is ok that this code breaks.
If it is supported, we need to fix such a regression. We should also revisit the decision to support it as there is no good reason for Java EE applications to use broker-specific way to instantiate JMS resources when there is standard way to do so using JNDI.
> [Artemis 2.x Upgrade] Client is not able to instantiate destinations by names
> -----------------------------------------------------------------------------
>
> Key: WFLY-10054
> URL: https://issues.jboss.org/browse/WFLY-10054
> Project: WildFly
> Issue Type: Bug
> Components: JMS
> Reporter: Martin Styk
> Assignee: Martyn Taylor
> Priority: Blocker
> Labels: activemq
>
> Having queue defined as follows
> {code:xml}
> <jms-queue name="InQueue" entries="jms/queue/InQueue java:jboss/exported/jms/queue/InQueue" durable="true"/>
> {code}
> Client is instantiating it directly using its name.
> {code:title=Client}
> HashMap<String, Object> map = new HashMap<String, Object>();
> map.put("host", hostName);
> map.put(TransportConstants.HTTP_UPGRADE_ENABLED_PROP_NAME, true);
> map.put("port", httpPort);
> TransportConfiguration transportConfiguration = new TransportConfiguration(NettyConnectorFactory.class.getName(), map);
> try {
> ConnectionFactory cf = ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF, transportConfiguration);
> Queue orderQueue = ActiveMQJMSClient.createQueue("InQueue");
> connection = cf.createConnection();
> session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
> MessageProducer producer = session.createProducer(orderQueue);
> connection.start();
> ...
> {code}
> Client is not able to send messages to, because {{session.createProducer(orderQueue)}} throws following exception
> {code}
> javax.jms.InvalidDestinationException: Destination InQueue does not exist
> at org.apache.activemq.artemis.jms.client.ActiveMQSession.createProducer(ActiveMQSession.java:326)
> {code}
> This is regression against EAP 7.1.0
> Issue was hit with Artemis 2.5.0 with https://github.com/jmesnil/wildfly/tree/WFLY-9407_upgrade_artemis_2.4.0_with_prefix (commit 51dd8102f103ccb0470a3cfc8713d3f9bdb1b65d)
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the jboss-jira
mailing list