Java 设置activemq networkconnector时,主题消息已过期
经纪人AJava 设置activemq networkconnector时,主题消息已过期,java,activemq,ttl,Java,Activemq,Ttl,经纪人A <broker xmlns="http://activemq.apache.org/schema/core" brokerName="mqtt_1" dataDirectory="${activemq.data}" persistent="true" schedulePeriodForDestinationPurge="13000" offlineDurableSubscriberTimeout="90000" offlineDurableSubscriberTaskSchedu
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="mqtt_1" dataDirectory="${activemq.data}" persistent="true" schedulePeriodForDestinationPurge="13000" offlineDurableSubscriberTimeout="90000" offlineDurableSubscriberTaskSchedule="20000" useJmx="true">
</broker>
但是,一旦将消息发布到代理B,消息就过期了
2015-01-23 16:51:41930调试消息已过期ActiveMQMapMessage
{commandId=6,responseRequired=true,messageId=
ID:test.local-50762-1421999415422-1:1:1:1,
originalDestination=null,originalTransactionId=null,producerId=
ID:test.local-50762-1421999415422-1:1:1,目的地=
topic://a.b.c.e,transactionId=null,到期日=1421999420843,
时间戳=1421999415843,到达=0,代理时间=1421999501929,
BrokerRoutTime=0,correlationId=null,replyTo=null,持久=
true,type=null,priority=4,groupID=null,groupSequence=0,
targetConsumerId=null,compressed=false,userID=null,content=
org.apache.activemq.util。ByteSequence@457096,marshalledProperties=
null,dataStructure=null,redeliveryCounter=0,size=0,
properties=null,readOnlyProperties=false,readOnlyBody=false,
droppable=false,jmsXGroupFirstForConsumer=false}
ActiveMQMapMessage{theTable={}|
org.apache.activemq.broker.region.RegionBroker | activemq传输:
tcp:///xxx.xxx.xxx.xxx:50763@61616
删除此代码('topicPublisher.setTimeToLive(5000);“)后,成功。
为什么会出现此代码问题?topicPublisher.setTimeToLive(5000)会导致邮件在5秒后过期。它解决了问题 activemq.xml
<plugins>
<timeStampingBrokerPlugin/>
</plugins>
一旦将消息发布到代理B,消息就过期了。
String url = "tcp://Broker B IP:61616";
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
TopicConnection tpConnection = connectionFactory.createTopicConnection();
tpConnection.start();
TopicSession tpSession = tpConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = tpSession.createTopic("a/b/c/e");
TopicPublisher topicPublisher = tpSession.createPublisher(topic);
topicPublisher.setTimeToLive(5000);
MapMessage map = tpSession.createMapMessage();
map.setString("test", "value");
topicPublisher.publish(map);
tpConnection.stop();
topicPublisher.close();
tpSession.close();
tpConnection.close();
<plugins>
<timeStampingBrokerPlugin/>
</plugins>