I'm setting up a new spoke broker. It works fine except for one durable
topic subscription.
I've copied the config across from an existing one that works. The spokes
connect into the hub:
<networkConnectors>
<networkConnector uri="static://(ssl://hub:61617)"
name="hub"
duplex="true"
conduitSubscriptions="false"
destinationFilter="ActiveMQ.Advisory.Consumer.Queue.Server.Message.Events,ActiveMQ.Advisory.Consumer.Queue.account_events,ActiveMQ.Advisory.Consumer.Queue.accounts.ack,ActiveMQ.Advisory.Consumer.Topic.accounts,ActiveMQ.Advisory.Consumer.Topic.Account.Requests,ActiveMQ.Advisory.Consumer.Topic.Server.Requests"
dynamicOnly="false">
<staticallyIncludedDestinations>
</staticallyIncludedDestinations>
<dynamicallyIncludedDestinations>
<queue physicalName="account_events"/>
<queue physicalName="accounts.ack"/>
<queue physicalName="Server.Message.Events"/>
<topic physicalName="accounts"/>
<topic physicalName="Account.Requests"/>
<topic physicalName="Server.Requests"/>
</dynamicallyIncludedDestinations>
<excludedDestinations>
<queue physicalName="software"/>
</excludedDestinations>
</networkConnector>
</networkConnectors>
The one for topic Server.Requests appears in the new spoke's console as a
durable topic subscriber. But in the log all I see is:
2013-05-31 11:04:00,500 | DEBUG | Activating
DurableTopicSubscription-morant-server_requests:morant-server_requests,
id=ID:morant-48672-1369993406909-2:101:-1:1, active=false, destinations=1,
total=0, pending=0, dispatched=0, inflight=0, prefetchExtension=0 |
org.apache.activemq.broker.region.DurableTopicSubscription | ActiveMQ
Transport: tcp:///127.0.0.1:55623 [ at ] 61612
2013-05-31 11:04:00,501 | DEBUG | Unregistering MBean
org.apache.activemq:BrokerName=morant,Type=Subscription,persistentMode=Durable,subscriptionID=morant-server_requests,destinationType=Topic,destinationName=Server.Requests,clientId=morant-server_requests
| org.apache.activemq.broker.jmx.ManagementContext | ActiveMQ Transport:
tcp:///127.0.0.1:55623 [ at ] 61612
Contrast this with a near identical client on the same new spoke:
2013-05-31 11:01:19,447 | DEBUG | Activating
DurableTopicSubscription-morant-account_requests:morant-account_requests,
id=ID:morant-48672-1369993406909-2:88:-1:1, active=false, destinations=1,
total=0, pending=0, dispatched=0, inflight=0, prefetchExtension=0 |
org.apache.activemq.broker.region.DurableTopicSubscription | ActiveMQ
Transport: tcp:///127.0.0.1:55597 [ at ] 61612
2013-05-31 11:01:19,448 | DEBUG | Unregistering MBean
org.apache.activemq:BrokerName=morant,Type=Subscription,persistentMode=Durable,subscriptionID=morant-account_requests,destinationType=Topic,destinationName=Account.Requests,clientId=morant-account_requests
| org.apache.activemq.broker.jmx.ManagementContext | ActiveMQ Transport:
tcp:///127.0.0.1:55597 [ at ] 61612
2013-05-31 11:01:19,453 | DEBUG | bridging (morant -> hub)
ID:morant-48672-1369993406909-1:1:0:0:452, consumer:
ID:morant-48672-1369993406909-3:2:1:1, destination
topic://ActiveMQ.Advisory.Consumer.Topic.Account.Requests, brokerPath:
[ID:morant-48672-1369993406909-0:1], message: ActiveMQMessage {commandId =
0, responseRequired = false, messageId =
ID:morant-48672-1369993406909-1:1:0:0:452, originalDestination = null,
originalTransactionId = null, producerId =
ID:morant-48672-1369993406909-3:1:1:1, destination =
topic://ActiveMQ.Advisory.Consumer.Topic.Account.Requests, transactionId =
null, expiration = 0, timestamp = 0, arrival = 0, brokerInTime =
1369994479452, brokerOutTime = 1369994479453, correlationId = null, replyTo
= null, persistent = false, type = Advisory, priority = 0, groupID = null,
groupSequence = 0, targetConsumerId = null, compressed = false, userID =
null, content = null, marshalledProperties = null, dataStructure =
ConsumerInfo {commandId = 3, responseRequired = false, consumerId =
ID:morant-48672-1369993406909-2:88:-1:1, destination =
topic://Account.Requests, prefetchSize = 1, maximumPendingMessageLimit = 0,
browser = false, dispatchAsync = true, selector = null, subscriptionName =
morant-account_requests, noLocal = false, exclusive = false, retroactive =
false, priority = 0, brokerPath = null, optimizedAcknowledge = false,
noRangeAcks = false, additionalPredicate = null}, redeliveryCounter = 0,
size = 1024, properties = {consumerCount=1, originBrokerURL=stomp://
0.0.0.0:61612, originBrokerId=ID:morant-48672-1369993406909-0:1,
originBrokerName=morant}, readOnlyProperties = false, readOnlyBody = false,
droppable = false} |
org.apache.activemq.network.DemandForwardingBridgeSupport | ActiveMQ
BrokerService[morant] Task-11
Evidently the bridging is happening for one but not the other. I can't see
why. All the spokes are supposed to be identical bar hostname.
This is with ActiveMQ 5.7.0 throughout the network.
Advice appreciated.
James
topic subscription.
I've copied the config across from an existing one that works. The spokes
connect into the hub:
<networkConnectors>
<networkConnector uri="static://(ssl://hub:61617)"
name="hub"
duplex="true"
conduitSubscriptions="false"
destinationFilter="ActiveMQ.Advisory.Consumer.Queue.Server.Message.Events,ActiveMQ.Advisory.Consumer.Queue.account_events,ActiveMQ.Advisory.Consumer.Queue.accounts.ack,ActiveMQ.Advisory.Consumer.Topic.accounts,ActiveMQ.Advisory.Consumer.Topic.Account.Requests,ActiveMQ.Advisory.Consumer.Topic.Server.Requests"
dynamicOnly="false">
<staticallyIncludedDestinations>
</staticallyIncludedDestinations>
<dynamicallyIncludedDestinations>
<queue physicalName="account_events"/>
<queue physicalName="accounts.ack"/>
<queue physicalName="Server.Message.Events"/>
<topic physicalName="accounts"/>
<topic physicalName="Account.Requests"/>
<topic physicalName="Server.Requests"/>
</dynamicallyIncludedDestinations>
<excludedDestinations>
<queue physicalName="software"/>
</excludedDestinations>
</networkConnector>
</networkConnectors>
The one for topic Server.Requests appears in the new spoke's console as a
durable topic subscriber. But in the log all I see is:
2013-05-31 11:04:00,500 | DEBUG | Activating
DurableTopicSubscription-morant-server_requests:morant-server_requests,
id=ID:morant-48672-1369993406909-2:101:-1:1, active=false, destinations=1,
total=0, pending=0, dispatched=0, inflight=0, prefetchExtension=0 |
org.apache.activemq.broker.region.DurableTopicSubscription | ActiveMQ
Transport: tcp:///127.0.0.1:55623 [ at ] 61612
2013-05-31 11:04:00,501 | DEBUG | Unregistering MBean
org.apache.activemq:BrokerName=morant,Type=Subscription,persistentMode=Durable,subscriptionID=morant-server_requests,destinationType=Topic,destinationName=Server.Requests,clientId=morant-server_requests
| org.apache.activemq.broker.jmx.ManagementContext | ActiveMQ Transport:
tcp:///127.0.0.1:55623 [ at ] 61612
Contrast this with a near identical client on the same new spoke:
2013-05-31 11:01:19,447 | DEBUG | Activating
DurableTopicSubscription-morant-account_requests:morant-account_requests,
id=ID:morant-48672-1369993406909-2:88:-1:1, active=false, destinations=1,
total=0, pending=0, dispatched=0, inflight=0, prefetchExtension=0 |
org.apache.activemq.broker.region.DurableTopicSubscription | ActiveMQ
Transport: tcp:///127.0.0.1:55597 [ at ] 61612
2013-05-31 11:01:19,448 | DEBUG | Unregistering MBean
org.apache.activemq:BrokerName=morant,Type=Subscription,persistentMode=Durable,subscriptionID=morant-account_requests,destinationType=Topic,destinationName=Account.Requests,clientId=morant-account_requests
| org.apache.activemq.broker.jmx.ManagementContext | ActiveMQ Transport:
tcp:///127.0.0.1:55597 [ at ] 61612
2013-05-31 11:01:19,453 | DEBUG | bridging (morant -> hub)
ID:morant-48672-1369993406909-1:1:0:0:452, consumer:
ID:morant-48672-1369993406909-3:2:1:1, destination
topic://ActiveMQ.Advisory.Consumer.Topic.Account.Requests, brokerPath:
[ID:morant-48672-1369993406909-0:1], message: ActiveMQMessage {commandId =
0, responseRequired = false, messageId =
ID:morant-48672-1369993406909-1:1:0:0:452, originalDestination = null,
originalTransactionId = null, producerId =
ID:morant-48672-1369993406909-3:1:1:1, destination =
topic://ActiveMQ.Advisory.Consumer.Topic.Account.Requests, transactionId =
null, expiration = 0, timestamp = 0, arrival = 0, brokerInTime =
1369994479452, brokerOutTime = 1369994479453, correlationId = null, replyTo
= null, persistent = false, type = Advisory, priority = 0, groupID = null,
groupSequence = 0, targetConsumerId = null, compressed = false, userID =
null, content = null, marshalledProperties = null, dataStructure =
ConsumerInfo {commandId = 3, responseRequired = false, consumerId =
ID:morant-48672-1369993406909-2:88:-1:1, destination =
topic://Account.Requests, prefetchSize = 1, maximumPendingMessageLimit = 0,
browser = false, dispatchAsync = true, selector = null, subscriptionName =
morant-account_requests, noLocal = false, exclusive = false, retroactive =
false, priority = 0, brokerPath = null, optimizedAcknowledge = false,
noRangeAcks = false, additionalPredicate = null}, redeliveryCounter = 0,
size = 1024, properties = {consumerCount=1, originBrokerURL=stomp://
0.0.0.0:61612, originBrokerId=ID:morant-48672-1369993406909-0:1,
originBrokerName=morant}, readOnlyProperties = false, readOnlyBody = false,
droppable = false} |
org.apache.activemq.network.DemandForwardingBridgeSupport | ActiveMQ
BrokerService[morant] Task-11
Evidently the bridging is happening for one but not the other. I can't see
why. All the spokes are supposed to be identical bar hostname.
This is with ActiveMQ 5.7.0 throughout the network.
Advice appreciated.
James