Solace JMS Queue and Azure Service Bus

BH56
BH56 Member Posts: 10

Wondering if anybody has any examples/suggestions on connecting up to a Solace JMS queue with MS Azure services. A partner organizations uses Solace JMS queues. Would like to consume with an Azure service. Looking to leverage potentially Azure Service Bus possibly to consume. Anybody implemented this Use Case before? Or any other suggestions or pointers?

Comments

  • marc
    marc Member, Administrator, Moderator, Employee Posts: 955 admin

    Hi @BH56,

    Check out this page. I think it's exactly what you're looking for and was recently added in v9.5 of the broker. Note that Solace's multi-protocol support will allow the publisher to use JMS while using our RDP functionality to deliver to Azure Service Bus.
    https://docs.solace.com/Configuring-and-Managing/HTTP-Header-Authentication-Azure-Event-Hub.htm#Sending

    -Marc

  • swenhelge
    swenhelge Member, Employee Posts: 80 Solace Employee

    Hi,
    There are multiple ways to connect Solace with Azure as we provide a number of different APIs. It really boils down to what technologies you prefer, message volumes, message sizes and therefore associated cost on the Azure platform.
    I personally have built integrations using Azure functions to send messages using our Javascript/node.js API. A colleague in my team also set up Solace to propagate messages to Azure Service Bus.
    It's generally easier to send messages or poll for messages than to listen to messages as there are currently no out of the box inbound bindings eg for Azure Functions. However it's entirely feasible to build event driven service in .net subscribing to Solace using the .net API, here are the samples that would help with this approach https://solace.com/samples/solace-samples-dotnet/
    Regarding the two integration approaches I listed above ...
    Here's a short Azure function to publish to Solace: https://github.com/solace-iot-team/azure-iot-hub-integration/blob/master/IoTHub_To_Solace.js
    A way to propagate messages from Solace PS+ to e.g. Azure Service Bus is via the REST Delivery Point feature in the broker.
    The RDP binds to a queue and submits all messages arriving on the queue to a REST endpoint - in this case the REST API to publish messages to Service Bus. The latest release in April added support for setting the auth header required by the Azure Service Bus API.

  • BH56
    BH56 Member Posts: 10

    Thanks for your quick feedback. I'll take a look at your suggestions. I'm not sure if I was clear in my ask. I want to consume messages from the JMS queue. I'm at the mercy on how the partner organization has implemented their solution and version they are on. I'm currently using sdkperf to hook up to their queue and start messages they are sending. Will take a look at your references and see if that points me in the right direction. Appreciate your help so far!

  • swenhelge
    swenhelge Member, Employee Posts: 80 Solace Employee

    Hi,
    OK - if you are restricted to JMS then you will need to write something Java based ... e.g. Azure Functions in Java.
    You can use the JMS examples as a starting point .. https://github.com/SolaceSamples/solace-samples-jms.
    The point Marc and I are making is that technically you are not restricted to JMS to consume from a queue so if you can convince your partner to give you access via another protocol will give you easier options.

  • BH56
    BH56 Member Posts: 10

    Thanks for the clarification and further details. I'm not sure it will be that easy to get our partners to update/change. I will try as it would make it easier on our end. Thanks for your assistance.