Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置activemq networkconnector时,主题消息已过期_Java_Activemq_Ttl - Fatal编程技术网

Java 设置activemq networkconnector时,主题消息已过期

Java 设置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

经纪人A

<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>