Layer7 API Management

Expand all | Collapse all

How to pass Dynamic values to AMQP?

  • 1.  How to pass Dynamic values to AMQP?

    Posted 03-12-2019 12:50 AM

    I have a requirement to implement AMQP in API Gateway servers. We have multiple Inbound and Outbound Queue Names. Currently, we have configured API Policy with Individual Inbound/Outbound Queue Names. We want to reuse the same API policy for multiple partners.

     

    Ex:

     Inbound - 5 different Queue Names

     Outbound - 4 Different Queue Names

     

    Manually we have mentioned all Queue and connection details in JMS Destination -> Additional Properties. Is it possible to pass the Queue Name dynamically at run time? How to capture JMS property header values?

     

    We are capturing Queue Name from request Header and configured queue name details in JMS Destination-> Additional Properties as mentioned below.

     

    ${request.http.header.queuename}.IN

    ${request.http.header.queuename}.OUT   // Not able to capture these value 

     

    It is working as expected if we hard code all Individual Queue Names. Appreciate, any quick response and help to implement this functionality.



  • 2.  Re: How to pass Dynamic values to AMQP?

    Posted 03-12-2019 02:22 PM

    Good afternoon,

     

    Unlike the JMS Queue configuration, the AMQP does not have the functionality to allow for a template to be setup so context variables can be used for specific attributes including queue name.

     

    Sincerely,

     

    Stephen Hughes

    Broadcom Support



  • 3.  Re: How to pass Dynamic values to AMQP?

    Posted 03-21-2019 11:56 PM

    Sorry for the delay in my response. Is it OK if we use AMQP with JMS Destination without AMQP tactical assertion?  Sorry to repeat the same question because I want to know the impact or problems occurs if we use JMS Destination for AMQP.

     

    If I use AMQP tactical assertion then can I use set context variable for Queue Name?



  • 4.  Re: How to pass Dynamic values to AMQP?

    Posted 03-22-2019 12:14 PM

    AMQP and JMS are two different protocols and they build messages and communication differently. JMS has the concept of templates where AMQP does not.

     

    Sincerely,

     

    Stephen Hughes

    Broadcom Support



  • 5.  Re: How to pass Dynamic values to AMQP?

    Posted 03-13-2019 01:48 PM

    Thank you, Stephen for the reply. So, May I know how to set context variable in Additional Properties for Queue Name? Actually, I have tried with context variable but it is throwing an error as "Unable to load property file" . Is there any option to capture the property details to check the values in the context variable?

     

    Am storing the Queue Name details from request header into Set context variable and passing this value in JMS Destination -> Additional Properties.

    ${queueName}

     

    Error Details:

    Caught unexpected Throwable in outbound JMS request processing: Unable to load property file: amqp://10*.*.*.*:52201.; Unable to load property file: amqp://10*.*.*.*:52201..  Exception caught!

     

    Regards,

    Suneel 



  • 6.  Re: How to pass Dynamic values to AMQP?

    Posted 03-13-2019 02:10 PM

    Suneel,

     

    From your comments, I want to confirm that you are using the AMQP tactical implementation not the JMS standard integration. The JMS standard integration does not work properly for AMQP and will cause problems.

     

    Sincerely,

     

    Stephen Hughes

    Broadcom Support



  • 7.  Re: How to pass Dynamic values to AMQP?

    Posted 03-19-2019 04:08 PM

    Thanks Stephen. We are using Apache QPID broker not Rabbit MQ. Am not sure AMQP tactical assertion can be used for both brokers Apache QPID & Rabbit MQ. Kindly confirm for the same. May I please know what kind of issue will occur when we use JMS Standard integration?

     

    Am trying to reduce our API complexity with help of dynamic context variable in JMS Additional properties. As mentioned previously am seeing issues when am using additional properties with context variable.

     

    Error Details:

    Caught unexpected Throwable in outbound JMS request processing: Unable to load property file: amqp://10*.*.*.*:52201.; Unable to load property file: amqp://10*.*.*.*:52201..  Exception caught!

     

    Regards,

    Suneel



  • 8.  Re: How to pass Dynamic values to AMQP?

    Posted 03-19-2019 04:30 PM

    Suneel,

     

    Apache QPID broker is just another AMQP message broker and does not use the JMS messaging protocol. 

     

    Sincerely,

     

    Stephen Hughes

    Broadcom Support