jms - StatisticsPlugin 中“大小”的值始终为 0
问题描述
我正在使用 ActiveMQ 5.15.11,并且我正在尝试使用StatisticsPlugin插件以编程方式获取待处理消息的数量。
以下是用于创建和发送消息的代码ActiveMQ.Statistics.Broker
:
public void produceMessage(String queueName, String message, boolean replyToTempQueue) throws JMSException {
// Create a connection factory.
final ActiveMQConnectionFactory connectionFactory =
new ActiveMQConnectionFactory(System.getenv("WIRE_LEVEL_ENDPOINT"));
// Pass the username and password.
connectionFactory.setUserName(System.getenv("ACTIVE_MQ_USERNAME"));
connectionFactory.setPassword(System.getenv("ACTIVE_MQ_PASSWORD"));
// Create a pooled connection factory.
final PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory();
pooledConnectionFactory.setConnectionFactory(connectionFactory);
pooledConnectionFactory.setMaxConnections(10);
// Establish a connection for the producer.
final Connection producerConnection = pooledConnectionFactory.createConnection();
producerConnection.start();
// Create a session.
final Session producerSession = producerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create a queue named "MyQueue".
final ActiveMQQueue producerDestination = (ActiveMQQueue) producerSession.createQueue(queueName);
// Create a producer from the session to the queue.
final MessageProducer producer = producerSession.createProducer(producerDestination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// Create a message.
Message producerMessage = null;
// Add a reply to queue if one has been provided.
if (replyToTempQueue) {
producerMessage = producerSession.createMapMessage();
producerMessage.setJMSReplyTo(producerSession.createTemporaryQueue());
} else {
producerMessage = producerSession.createTextMessage(message);
}
// Send the message.
producer.send(producerMessage);
System.out.println("Message sent.");
producer.close();
producerSession.close();
producerConnection.close();
}
但是,它总是显示大小为 0。这是为什么呢?
ActiveMQMapMessage {commandId = 6, responseRequired = false, messageId = ID:DESKTOP-CQNTDSL-64043-1583929718154-177:1:1:1:1, originalDestination = null, originalTransactionId = null, producerId = ID:DESKTOP-CQNTDSL-64043-1583929718154-177:1:1:1, destination = queue://ActiveMQ.Statistics.Broker, transactionId = null, expiration = 0, timestamp = 1583946785436, arrival = 0, brokerInTime = 1583946785552, brokerOutTime = 1583946785811, correlationId = null, replyTo = temp-queue://ID:DESKTOP-CQNTDSL-64043-1583929718154-177:1:1, persistent = false, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = null, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false} ActiveMQMapMessage{ theTable = {} }
解决方案
推荐阅读
- aws-lambda - 一个或多个参数值无效:键 xyz 的类型不匹配预期:S 实际:M
- python - 在工作日的工作时间内绘制时间序列的百分位数
- reactjs - 使 React AppBar 和 SplitPane 适合没有滚动条
- c++ - 使用 Visual Studio 调试时如何查看 C++ 模板参数?
- html - 不存在导航项时隐藏引导汉堡图标
- python-3.7 - __init__() 在进行迁移时缺少 2 个必需的位置参数:“from_fields”和“to_fields”
- ios - 为静态 UIApplicationShortcutItem 使用 SF Symbols 系统映像
- javascript - 赛普拉斯:处理动态下拉列表以避免“TypeError:无法读取未定义的属性'selectize'”
- javascript - 当我尝试将连接字符串提供给图像 require 函数时,它会在 React Native 中引发错误
- python - Python正则表达式匹配两个字符串,如果另一个字符串不在之间