Hi! I am trying to use Apache Qpid Dispatcher as a standalone router to route
messages to a Rabbit MQ broker using AMQP 1.0. The dispatcher in installed on a
Fedora 38 server. The sending of the message is done via a Java application
using Apache Qpid JMS. I have managed to configure up a listener and a
connector in qdrouter.conf file so that the connector gets connected to the
broker via amqps when I start the Dispatcher. (The broker is at another company
and I don't have direct access to the setup or log files.) When the Java
application has connection to the router it starts to send messages. Here
things start to go wrong, the Java application hangs with no log or timeout.
There is a log in the dispatcher proxy though saying:
2024-05-29 13:00:22.735228 +0200 ROUTER_CORE (info) [C2][L7] Link attached:
dir=in
source={nhn_tjenestebuss_connection_bd093b5d-8b30-4a1f-8c60-00ed2c71f126:101:4:1
expire:sess outcomes:@PN_SYMBOL[:"amqp:accepted:list", :"amqp:rejected:list",
:"amqp:released:list", :"amqp:modified:list"]}
target={/exchange/NHNTESTServiceBus/8093239_async expire:sess
caps:@PN_SYMBOL[:queue]}
2024-05-29 13:00:22.735638 +0200 PROTOCOL (trace) [C2]:FRAME: 4 -> @attach(18)
[name="qpid-jms:sender:nhn_tjenestebuss_connection_bd093b5d-8b30-4a1f-8c60-00ed2c71f126:101:4:1:/exchange/NHNTESTServiceBus/8093239_async",
handle=0x0, role=true, snd-settle-mode=0x2, rcv-settle-mode=0x0,
source=@source(40)
[address="nhn_tjenestebuss_connection_bd093b5d-8b30-4a1f-8c60-00ed2c71f126:101:4:1",
durable=0x0, expiry-policy=:session-end, timeout=0x0, dynamic=false,
outcomes=@<symbol>[:"amqp:accepted:list", :"amqp:rejected:list",
:"amqp:released:list", :"amqp:modified:list"]], target=@target(41)
[address="/exchange/NHNTESTServiceBus/8093239_async", durable=0x0,
expiry-policy=:session-end, timeout=0x0, dynamic=false,
capabilities=@<symbol>[:queue]], initial-delivery-count=0x0,
max-message-size=0x0]
I also did a tcp dump on the communication between the dispatcher and the
broker and got a checksum error meaning The checksum reported by the TCP/IP
stack is 0xad3f, but it should be 0xdc4c. The connector and SSL setup looks
like this:
connector {
name: helsenorge_connector
host: tb.test.nhn.no
role: route-container
port: 5671
saslMechanisms: PLAIN
saslUsername: Testuser
saslPassword: file:/home/test/.pwd
sslProfile: sslProfile1
}
sslProfile {
name: sslProfile1
certFile: /etc/qpid-dispatch/cert.pem
privateKeyFile: /etc/qpid-dispatch/key.pem
caCertFile: /etc/qpid-dispatch/ca-cert.pem
}
The listener is not using amqps but amqp and is configured like this:
listener {
host: 0.0.0.0
port: 5673
role: normal
#authenticatePeer: yes
idleTimeoutSeconds: 12
saslMechanisms: ANONYMOUS
}
Other config for the dispatcher looks like this:
router {
mode: standalone
}
address {
prefix: myAddress
distribution: closest
}
linkRoute {
prefix: myAddress
connection: helsenorge_connector
direction: in
}
linkRoute {
prefix: myAddress
connection: helsenorge_connector
direction: out
}
log {
module: DEFAULT
enable: trace+
}
When I turn off the dispatcher and send messages directly from the Java
application to the broker everything works fine. What have I missed here?
Kind Regards
Björn Eklund