Broker network flooded with unoccupied ActiveMQ.Advisory.TempQueue messages

I am currently investigating a memory issue in my brokerage network. According to JConsole, ActiveMQ.Advisory.TempQueue occupies 99% of the configured memory when the broker starts blocking messages.

Some configuration information

Standard configuration for the most part. One open nio plug, one open openwire. All brokers form a hypercube (one connection to each other broker (it is easier to auto-generate)). No flow control.

Problem Details

The web console displays something like 1974234, and 45345 deleted messages from 30 consumers (6 brokers, one consumer, and the remaining clients that use the java connector). As far as I know, the amount of dequeue should not be much less than: exposed * consumers. therefore, in my case, a lot of tips are not consumed and begin to fill my temporary message space. (currently I configured several gb as temporary space)

Since no client actively uses time queues, I find this very strange. Looking at the temporary queue, I am even more confused. Most messages look like this (msg.toString):

ActiveMQMessage {commandId = 0, responseRequired = false, messageId = ID:srv007210-36808-1318839718378-1:1:0:0:203650, originalDestination = null, originalTransactionId = null, producerId = ID:srv007210-36808-1318839718378-1:1:0:0, destination = topic://ActiveMQ.Advisory.TempQueue, transactionId = null, expiration = 0, timestamp = 0, arrival = 0, brokerInTime = 1318840153501, brokerOutTime = 1318840153501, correlationId = null, replyTo = null, persistent = false, type = Advisory, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = null, marshalledProperties = org.apache.activemq.util.ByteSequence@45290155, dataStructure = DestinationInfo {commandId = 0, responseRequired = false, connectionId = ID:srv007210-36808-1318839718378-2:2, destination = temp-queue://ID:srv007211-47019-1318835590753-11:9:1, operationType = 1, timeout = 0, brokerPath = null}, redeliveryCounter = 0, size = 0, properties = {originBrokerName=broker.coremq-behaviortracking-675-mq-01-master, originBrokerId=ID:srv007210-36808-1318839718378-0:1, originBrokerURL=stomp://srv007210:61612}, readOnlyProperties = true, readOnlyBody = true, droppable = false}

After watching these posts, I have a few questions:

  • Do I understand correctly that the message source is a drowning connection?
  • , stomp- ?
  • , ?

, bridgeTempDestinations . , , . , :

  • ?
  • ?

: , . , ( , mutch java, activemq lib) . , .

+5

All Articles