Question

Je reçois en dessous de la déclaration de débogage et mon auditeur de messages ne consomment aucun message.

22: 25: 17.870 [org.springframework.jms.listener.defaultMessagelisteneContainer # 0-1] Déboguer o.a.acivemq.activemqmessageconsumer - ID: Consum-1401814509338-1: 1: 1: 1 message reçu expiré: MessageDispatch {CommandId= 0, Responsecablequiitéd= False, ConsumERID= ID: Constate-1401814509338-1: 1: 1: 1, Destination= Sujet: //Topic.all, Message= ActiveMQTextMessage {CommandId= 23284887, Respiruritaire = faux, messageid= id: proc-1398663597609-0: 1: 1: 1: 23284883, originalDestination= null, originalTransactionid= null, producteur= ID: PROC-1398663597609-0: 1: 1: 1, destination= sujet: //topic.all, transactionnement= null, expiration= 1401814515925, horodatage= 1401814514925, arrivée= 0, courtierImble= 1401814514934, courtierTime= 1401814514934, corrélationid= null, replyto= null, persistant= faux, type= null, priorité= 4, groupid= null, GroupeSuence= 0, cibleConsumerid= null, compressé= false, userid = null, contenu= org.apache.activemq.util.bytesequence@2fec90f6, MarshalledProperties= org.apache.activemq.util.bytesequence@62a08837, DataStructure= null, redeliverycounter= 0, taille= 0, propriétés= {_componentid= _epsync_readwrite, _attributename= NetworkAddress, _Operation= mise à jour, _Orod= 51e8e5c3e4b0ccc716bff43cc, _type= attribut, _eventtype= attribut, _Repository= qdb, _userid= null}, readonlyproperties= true, readonlybody= true, goutte dressable= false, jmsxgroupfirstforConsumerger= faux, texte= {"_eventtype": "attribut" , "_Opération": ... Kaddress "}]}}, RedeliveryCounter= 0}


Veuillez trouver mon configuration Spring ci-dessous:

<bean id="qConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
        <property name="targetConnectionFactory">
            <bean class="org.apache.activemq.ActiveMQConnectionFactory">
                <property name="brokerURL">
                    <value>tcp://localhost:61616?wireFormat.maxInactivityDuration=0</value>
                </property>
            </bean>
        </property>
</bean>

<bean id="qMessageListener" class="com.xyz.listener.QManifestListener" />

<jms:listener-container destination-type="topic" 
        container-type="default" connection-factory="qConnectionFactory"
        acknowledge="auto" cache="auto">
        <jms:listener destination="Topic.ALL" ref="qMessageListener"
            method="onMessage" />
</jms:listener-container>

aidez-moi s'il vous plaît à comprendre ce qui me manque ..

Était-ce utile?

La solution

Si votre producteur envoie des messages avec une très courte valeur d'expiration, ils pourraient expirer avant d'atteindre le consommateur.Toutefois, dans beaucoup de cas, ce type d'erreur se pose car les horloges de l'expéditeur et du récepteur ne sont pas synchronisées et que le message semble avoir expiré quand il ne devrait pas vraiment pas avoir.La solution peut être de veiller à ce que vos machines soient toutes synchronisées en utilisant NTP.

Il y a une autre alternative devrait synchroniser les horloges non possibles qui consiste à utiliser le Activeremq Timestampplugin mettre à jour l'horodatage sur les messages entrants avant de les envoyer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top