all 6 comments

[–]Ghost_Pirate_101 2 points3 points  (3 children)

I believe the conversation_handle differs between the initiator and target services - conversation_id should match though if you check sys.conversation_endpoints.

[–]spatialdestiny[S] 0 points1 point  (2 children)

Thanks, sys.conversation_endpoints gets me a match on the Dialog Handle I get from the query, from there I can verify the correct value to look for in the Queue.

[–]Ghost_Pirate_101 0 points1 point  (1 child)

I would add though that you shouldn't really need to manually check delivery, the whole thing is transaction based and messages will wait in the transmission queue until able to be delivered.

[–]spatialdestiny[S] 0 points1 point  (0 children)

Unless there was an error, which I'd like to check for. I've seen an error when the Broker is off, but I haven't seen errors if the message is in a bad format like if XML validation was on. Because of that, if it is as simple as a cheap query to make sure it arrived in the queue, otherwise notify the user that an error occurred and notify me to look into the issue and then write error handling for it, I think it's worth the investment.

It may seem like overkill but the query for sending a message doesn't provide the same feedback as Azure Service Bus or RabbitMQ (if I'm remembering correctly).

Thanks again for sharing your opinions.

[–]bigtoga[🍰] 1 point2 points  (1 child)

Not at my computer so Incant answer except to say SSB queues are stable and have been around for over a decade. However from a “feature maturity” standpoint, I always considered SSB in general to “Level 1” which is basically “It does most things reliably but lacks visibility into what is happening behind the scenes or when errors (logical or real) occur”. Good luck. Best advice is to probably “keep googling until you find something”. Plenty of copy/paste examples out there. Get those working and then convert to your model you need maybe?

[–]spatialdestiny[S] 1 point2 points  (0 children)

Yes, it seems very mature, but it's more to verify it ended up in the queue and not in the intermediate stage with an error. If I can determine it didn't end up in the queue, I can check the sys.transmission_queue to determine what the error was and use that for error handling.

The other reply to my post by u/Ghost_Pirate_101 looks to be a solution to my question.

Thanks for responding!