Github user graben commented on a diff in the pull request:
https://github.com/apache/activemq-artemis/pull/1820#discussion_r164166706
--- Diff:
artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQSession.java
---
@@ -698,8 +699,17 @@ private ActiveMQMessageConsumer createConsumer(final
ActiveMQDestination dest,
*/
if (!response.isExists() ||
!response.getQueueNames().contains(dest.getSimpleAddress())) {
if (response.isAutoCreateQueues()) {
+ SimpleString queueNameToUse = dest.getSimpleAddress();
+ SimpleString addressToUse = queueNameToUse;
+ RoutingType routingTypeToUse = RoutingType.ANYCAST;
+ if
(CompositeAddress.isFullyQualified(queueNameToUse.toString())) {
+ CompositeAddress compositeAddress =
CompositeAddress.getQueueName(queueNameToUse.toString());
+ addressToUse = new
SimpleString(compositeAddress.getAddress());
+ queueNameToUse = new
SimpleString(compositeAddress.getQueueName());
+ routingTypeToUse = RoutingType.MULTICAST;
--- End diff --
Sorry, that's not correct vt and shared subscriptions are only similar but
not equal. Shared subscriptions still need connection to have a clientid.
Therefor those connections are bounded to a special use case. VTs has queue
semantic. No "special" connections are needed. Such pooling of connections for
almost everything sending/consuming/... is possible. Artemis still leaks such a
feature on its core protocol.
---