0
私はACK & NACKチャネルを設定しようとしていると のようなエラーを取得していますが確認-ACKと確認-NACKチャネルは
Below are the things which I tried:
1. confirm-correlation-expression="#root" //no result found
2. Changed the amqp template like below
<rabbit:connection-factory id="connectionFactory" host="localhost" publisher-confirms="true" publisher-returns="true" />
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory" mandatory="true" /> <!-- for nacks -->
<rabbit:admin connection-factory="connectionFactory" />
/>
The error was not there but the ack channel is not getting invoked.
Can anyone help me on this?
「一つだけ確認コールバックチャンネルを一度に設定することができ、」呼び出され得ていませんここで
MQの設定ここで
<rabbit:template id="nonTransactionalRabbitTemplate"
connection-factory="nonTransactionalConnectionFactory"
mandatory="true"
channel-transacted="false"
confirm-callback="confirmCallback"
return-call`enter code here`back="returnCallback" />
<rabbit:connection-factory id="nonTransactionalConnectionFactory"
connection-factory="rabbitClientConnectionFactory"
publisher-confirms="true"
publisher-returns="true"/>
<rabbit:connection-factory id="nonTransactionalConnectionFactory"
connection-factory="rabbitClientConnectionFactory"
publisher-confirms="true"
publisher-returns="true"/>
<bean id="rabbitClientConnectionFactory" class="com.rabbitmq.client.ConnectionFactory" >
<property name="uri" value="${mq.uri}" />
<property name="requestedHeartbeat" value="30" />
</bean>
は私のアウトバウンドアダプタです
<int-amqp:outbound-channel-adapter channel="abc"
routing-key="xyz"
amqp-template="amqpTemplate"
confirm-correlation-expression="payload"
confirm-ack-channel="successRespTransformChannel"
confirm-nack-channel="failureRespTransformChannel"
return-channel="failureRespTransformChannel"
mapped-request-headers="*"
0123ここ
は、アダプタ内のテンプレートを使用している場合、あなたはが
confirm-callback="confirmCallback"
return-callback="returnCallback" />
独自のコールバックを設定してはいけません
<chain input-channel="successRespTransformChannel">
<int:header-enricher>
<error-channel ref="failed-publishing" />
</int:header-enricher>
<service-activator id="successResp" expression="@abc.addRequestTracking(payload.id,'success')"/>
</chain>
おかげゲイリーは、私は、コールバックを削除しても、パブリッシュ設定しています-confirms = true。それでも私のackチャンネルは呼び出されていません。あなたは私を助けてくれますか? – user3668349
私の編集を参照してください。 DEBUGロギングで私とあなたのものを実行し、ログを比較してみてください。 –