Artemis 1.2.0。分页不能与activemq(5.12.0,5.13.2)客户端一起使用

时间:2016-04-28 10:07:56

标签: jms activemq activemq-artemis

Artemis 1.2.0独立经纪人conf:

<address-full-policy>PAGE</address-full-policy>
<page-size-bytes>1048576</page-size-bytes>

其他设置是默认设置。

&#34;的 TCP://本地主机:61616 &#34; - 是&#34; artemis&#34;多协议接受者

正常情况:

行为:分页有效。

客户: artemis-jms-client v1.2.0

类: org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory

ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616", user, pass);
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("tmpQueue");
MessageProducer producer = session.createProducer(queue);
connection.start();

byte[] bytes = new byte[Integer.parseInt(size)];
Random random = new Random();

whilt (true) {
    BytesMessage bytesMessage = session.createBytesMessage();
    random.nextBytes(bytes);
    bytesMessage.writeBytes(bytes);
    producer.send(bytesMessage);
}

错误案例:

行为:分页不起作用。当消息将队列填充到max-size-bytes设置时,JMX的Address.Paging变为true,页面文件被创建,页面文件计数变为1,但生产者冻结,直到消费者开始工作。 Log告诉我们分页正在启动,所以它应该没问题,但是id并没有。即使我设置了跟踪级别,也没有其他消息。

客户端: activemq-client v5.12.0(也尝试了最新的5.13.2,没有区别)

类: org.apache.activemq.ActiveMQConnectionFactory

ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, pass, "tcp://localhost:61616");
// the same code after ConnectionFactory as for artemis-jms-client ...

这是一个错误还是我做错了?

1 个答案:

答案 0 :(得分:0)

Artemis正在大力发展,OpenWire的支持尤为年轻。这很可能是固定的,因为主分支上有大量正在进行的工作。您可以从Github镜像中检出源代码并自行构建以测试它。

如果您发现无法正常工作的事情,您当然可以为他们打开Jira问题,但鉴于该项目的新用途,最好在此时针对开发快照进行测试。