cancel
Showing results for 
Search instead for 
Did you mean: 

AMQP Transporter failed to connect to the broker

benzhang
Advisor
Advisor
0 Kudos

In the current project, we use toolkit_amqp_json_input as the adapter to receive data from a remote RMQ(Rabbit MQ) server. Here is the sample ccl in my streaming project:

ATTACH INPUT ADAPTER AMQP_INPUT_HANA TYPE toolkit_amqp_json_input TO s_in_hana PROPERTIES Address = 'xxx.xxx.xxx.xxx' , Username = 'customer' , Password = '123456' , encrypted = FALSE , Queue = '17b45636-4cc2-472c-88b3-xxxxx' , jsonColsMappingList = '\"alarmSet[0]\";

Then I run this project in studio, and it failed to connect to the RMQ server, the error log shows to me: inequivalent arg 'x-expires' for queue 'xxx-xxx-xxx-xxx' in vhost '/': received none but current is the value '86400000' of type 'long'.

Then look up the streaming adapter guider for the relevant settings, but no availabe parameter can be used for it.

From RMQ official: 'x-expires' controls for how long a queue can be unused before it is automatically deleted, but it looks it's required when establish the connection, so my question is how can I pass the additional arguments for the queue in the ccl file?

Note when I use java to test, the following code works, but if I remote the "x-expires" argument from map, same error occurs.

Accepted Solutions (1)

Accepted Solutions (1)

benzhang
Advisor
Advisor
0 Kudos

Confirmed with SDS team, currently there's no configurable parameters for the queue arguments. After researching on the RabbitMQ's web site, there're 2 ways to set kind of "expires" and "ttl" queue parameters: optional queue arguments and policies. Now the customer is using the first, which has a shortage: requires same settings between server side and client side. The second is officially recommanded, and only need a rabbitmqctl command from server side. I've verified locally, it has same effect as the first solution. Here's the detail: https://www.rabbitmq.com/ttl.html

Answers (0)