Krunoslav Andričević created AMQNET-632:
-------------------------------------------
Summary: Connect to AmazonMQ broker using Apache.NMS.AMQP
Key: AMQNET-632
URL: https://issues.apache.org/jira/browse/AMQNET-632
Project: ActiveMQ .Net
Issue Type: Improvement
Components: AMQP
Affects Versions: 1.8.0
Reporter: Krunoslav Andričević
I am having trouble connecting to my AmazonMQ broker using Apache.NMS.AMQP
client.
I have AmazonMQ broker up and running and I can connect to broker console. In
my .NET project I have installed Apache.NMQ.AMQP NuGet (v1.8.0) which should be
used to connect to ActiveMQ brokers over AMQP.
According to AWS console for Amazon MQ this is the brokers AMQP endpoint,
notice {{amqp+ssl}} schema:
{code:java}
amqp+ssl://*my-broker-url*.amazonaws.com:5671
{code}
This code snippet is used to connect to broker:
{code:java}
var endpoint = "amqp+ssl://*my-broker-url*.amazonaws.com:5671";
var connectionFactory = new NmsConnectionFactory(endpoint);
var connection = connectionFactory.CreateConnection("myTestUserName",
"myTestPassword");
connection.Start();
{code}
When using above specified code snippet and broker URL I get following
exception when calling {{connection.Start()}} method:
{code:java}
Apache.NMS.NMSException: Failed to create Provider instance for amqp+ssl{code}
After some research I've realised that broker should be configured for
{{amqp+ssl}} transport connector which I've tried according to [[ActiveMQ
documentation||http://activemq.apache.org/amqp]
[http://activemq.apache.org/amqp] []|http://activemq.apache.org/amqp] for AMQP.
So I have tried adding following XML to broker configuration:
{code:java}
<broker>
<!-- some other configuration entries -->
<transportConnectors>
<transportConnector name="amqp+ssl" uri="amqp+ssl://localhost:5671"/>
</transportConnectors>
<!-- some other configuration entries -->
</broker>
{code}
When trying to save edited configuration AWS presents me the following message:
{code:java}
The specified XML configuration data is invalid: cvc-attribute.3:
The value 'amqp+ssl' of attribute 'name' on element 'transportConnector' is not
valid with respect to its type,
'protocol'. and cvc-enumeration-valid:
Value 'amqp+ssl' is not facet-valid with respect to enumeration '[openwire]'.
It must be a value from the enumeration.
{code}
Which, I suppose, means that only 'openwire' transport connector is allowed to
be specified in configiration.The next solution that I've tried is changing
broker URL to use amqp schema so I got following:
{code:java}
var endpoint = "amqp://*my-broker-url*.amazonaws.com:5672";
{code}
instead of
{code:java}
var endpoint = "amqp+ssl://*my-broker-url*.amazonaws.com:5671";
{code}
which also threw me an exception when calling {{connection.Start()}} with
following message:
{code:java}
Apache.NMS.NMSException:
A connection attempt failed because the connected party did not properly
respond after a period of time,
or established connection failed because connected host has failed to respond.
{code}
Is there any way to connect to Amazon managed ActiveMQ broker using AMQP
protocol and .NET and if there is what am I missing here?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)