Thanks, wasn't aware of PN_TRACE_FRM, here's some output from connecting to Azure and attempting to open a receiver then sender with that tracing enabled:
Address: https://TWDIoTHub.azure-devices.net:5671 [0x6dd470]: -> AMQP on_start [0x6dd470]:0 -> @open(16) [container-id="77e8331f-ca64-4b22-8200-311024ede12d", channel-max=32767] [0x6dd470]: <- AMQP [0x6dd470]:0 <- @open(16) [container-id="DeviceGateway_5245347c74864eca98e80fc05547102b", hostname="10.0.4.43", max-frame-size=65536, channel-max=8191, idle-time-out=240000] on_connection_open [0x6dd470]:0 -> @begin(17) [next-outgoing-id=0, incoming-window=2147483647, outgoing-window=2147483647] [0x6dd470]:0 -> @attach(18) [name="fbad141a-325e-4751-b2fe-3524960cff1e/1", handle=0, role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="$cbs", durable=0, timeout=0, dynamic=false], target=@target(41) [durable=0, timeout=0, dynamic=false], initial-delivery-count=0] [0x6dd470]:0 -> @attach(18) [name="fbad141a-325e-4751-b2fe-3524960cff1e/2", handle=1, role=false, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41) [address="$cbs", durable=0, timeout=0, dynamic=false], initial-delivery-count=0] [0x6dd470]:0 -> @flow(19) [incoming-window=2147483647, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=0, link-credit=10, drain=false] [0x6dd470]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=1, incoming-window=5000, outgoing-window=5000, handle-max=262143] on_session_open [0x6dd470]:0 <- @attach(18) [name="fbad141a-325e-4751-b2fe-3524960cff1e/1", handle=0, role=false, snd-settle-mode=2, rcv-settle-mode=0, initial-delivery-count=0, max-message-size=1048576] [0x6dd470]:0 <- @detach(22) [handle=0, closed=true, error=@error(29) [condition=:"amqp:internal-error", description="Object reference not set to an instance of an object.", info={:exception="System.NullReferenceException: Object reference not set to an instance of an object.\x0d\x0a\x0d\x0aServer stack trace: \x0d\x0a at Microsoft.Azure.Devices.Gateway.Cloud.Common.Amqp.AmqpExtensionMethods.GetIotHubName(AmqpConnection connection) in D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Gateway.Cloud.Common\Amqp\AmqpExtensionMethods.cs:line 17\x0d\x0a at Microsoft.Azure.Devices.Gateway.Runtime.Amqp.AmqpGatewayProtocolHead.<OpenLinkAsync>d__83.MoveNext() in D:\jenkins\workspace\Build\gateway\runtime\Amqp\AmqpGatewayProtocolHead.cs:line 624\x0d\x0a\x0d\x0aException rethrown at [0]: \x0d\x0a at Microsoft.Azure.Devices.Common.Cloud.ExceptionDispatcher.Throw(Exception exception) in D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Common\ExceptionDispatcher.cs:line 14\x0d\x0a at Microsoft.Azure.Devices.Common.Cloud.TaskHelpers.EndAsyncResult(IAsyncResult asyncResult) in D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Common\TaskHelpers.cs:line 310\x0d\x0a at Microsoft.Azure.Amqp.AmqpLink.OnProviderLinkOpened(IAsyncResult result)"}]] [0x6dd470]:0 <- @attach(18) [name="fbad141a-325e-4751-b2fe-3524960cff1e/2", handle=1, role=true, snd-settle-mode=2, rcv-settle-mode=0, max-message-size=1048576] [0x6dd470]:0 <- @detach(22) [handle=1, closed=true, error=@error(29) [condition=:"amqp:internal-error", description="Object reference not set to an instance of an object.", info={:exception="System.NullReferenceException: Object reference not set to an instance of an object.\x0d\x0a\x0d\x0aServer stack trace: \x0d\x0a at Microsoft.Azure.Devices.Gateway.Cloud.Common.Amqp.AmqpExtensionMethods.GetIotHubName(AmqpConnection connection) in D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Gateway.Cloud.Common\Amqp\AmqpExtensionMethods.cs:line 17\x0d\x0a at Microsoft.Azure.Devices.Gateway.Runtime.Amqp.AmqpGatewayProtocolHead.<OpenLinkAsync>d__83.MoveNext() in D:\jenkins\workspace\Build\gateway\runtime\Amqp\AmqpGatewayProtocolHead.cs:line 624\x0d\x0a\x0d\x0aException rethrown at [0]: \x0d\x0a at Microsoft.Azure.Devices.Common.Cloud.ExceptionDispatcher.Throw(Exception exception) in D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Common\ExceptionDispatcher.cs:line 14\x0d\x0a at Microsoft.Azure.Devices.Common.Cloud.TaskHelpers.EndAsyncResult(IAsyncResult asyncResult) in D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Common\TaskHelpers.cs:line 310\x0d\x0a at Microsoft.Azure.Amqp.AmqpLink.OnProviderLinkOpened(IAsyncResult result)"}]] Doesn't make a great deal of sense to me, but it does look as though the error is indeed firmly inside Azure. Please let me know if this makes any more sense to you. You mention that service bus authenticates to the link - I think that Azure is slightly different, although not certain. I was playing around with service bus before Azure, and service bus takes a username/password in the address. Whereas Azure firstly requires a TLS/SSL handshake in order to connect at all, and then after that the authentication is achieved by opening a sender on the endpoint '$cbs' and sending a message containing a shared access signature and some specific fields in the properties. If this succeeds, authentication is complete and a corresponding message is sent to a receiver opened on the path '$cbs'. After this one can open senders and receivers at device endpoints and communicate directly with devices. -- View this message in context: http://qpid.2158936.n2.nabble.com/qpid-proton-0-12-2-connection-engine-and-ssl-tp7647090p7647865.html Sent from the Apache Qpid users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
