我是HornetQ的新手,我正在测试hornetQ示例。我在运行示例EmbeddedExample.java时遇到异常(驻留在:hornetq-2.2.5.Final \ examples \ core \ embedded \ src \ org \ hornetq \ core \示例中)。我在这个例子中做了一些改变,并得到Exception。我所做的改变是,我已经把发送过程和消费过程放在了一个迭代100,000次的循环中。 的代码是:HornetQ 2.2.5嵌入式示例异常
System.out.println("Producer:");
System.out.println("StartDate: "+new Date());
for (int i = 0; i < 100000; i++)
{
message.putStringProperty(propName, "Message: " + i);
producer.send(message);
}
System.out.println("EndDate: "+new Date());
// Step 7. Create the message consumer and start the connection
ClientConsumer messageConsumer = session.createConsumer(queueName);
session.start();
// Step 8. Receive the message.
System.out.println("Consumer:");
System.out.println("StartDate: "+new Date());
for (int i = 0; i < 100000; i++)
{
ClientMessage messageReceived = messageConsumer.receive();
System.out.println(messageReceived.getStringProperty(propName));
}
System.out.println("EndDate: "+new Date());
监制工作正常,和消费者阅读18K或13K msges后给我一个例外。堆栈跟踪如下:
[java] Message: 18384
[java] Sep 2, 2011 11:15:29 AM org.hornetq.core.logging.impl.JULLogDelegate
info
[java] INFO: HornetQ Server version 2.2.5.Final (HQ_2_2_5_FINAL_AS7, 121) [
588e32ee-d493-11e0-b759-0026b6a94d9b] stopped
[java] HornetQException[errorCode=102 message=Consumer is closed]
[java] at org.hornetq.core.client.impl.ClientConsumerImpl.checkClosed(C
lientConsumerImpl.java:811)
[java] at org.hornetq.core.client.impl.ClientConsumerImpl.receive(Clien
tConsumerImpl.java:163)
[java] at org.hornetq.core.client.impl.ClientConsumerImpl.receive(Clien
tConsumerImpl.java:364)
[java] at org.hornetq.core.example.EmbeddedExample.main(EmbeddedExample
.java:107)
[java] Java Result: -1
BUILD FAILED
C:\hornetq-2.2.5.Final\examples\core\embedded\build.xml:40: EmbeddedExample
我该如何克服此异常?
感谢Clebert, 它在我再次启动消费者循环中的会话时起作用。我已经尝试过你的建议,但它不起作用,例外仍然存在。 –
我需要查看完整的代码。 –
你可以在这里看到代码:http://stackoverflow.com/questions/7291648/how-to-make-a-queue-persisted-in-hornetq-2-2-5-core-client –