Both routes specify the port as 4022. So not sure why the one appears as it does.
I have setup Service Broker on another instance of SQL going between 2 databases and it works perfectly. So I am now retro fitting the works bits back into the cross server version.
here is my procedure that I use to send the code:
ALTER PROCEDURE [dbo].[usp_AuditSendData_f]
(
@AuditedData XML
)
AS
BEGIN
BEGIN TRY
DECLARE @dlgId UNIQUEIDENTIFIER
-- Check if our database already has a dialog id that was previously used
-- if it does reuse the conversation
SELECT@dlgId = tlg_dialogID
FROMdbo.tbl_AuditDialog
WHEREtlg_dbID = DB_ID()
-- if we're reusing a dialog conversation then
-- check if it is in a good state for conversation ...
IF @dlgId IS NOT NULL
AND NOT EXISTS(SELECT*
FROMsys.conversation_endpoints
WHEREconversation_handle = @dlgId AND state IN ('SO', 'CO'))
BEGIN
-- ... if it isn't then delete it from our saved dialogs table ...
DELETE
FROMdbo.tbl_AuditDialog
WHEREtlg_dbID = DB_ID()
AND tlg_dialogID = @dlgId
-- ... optionally you can end the conversation here,
-- but it is better to end it from target server
-- END CONVERSATION @dlgId WITH CLEANUP
-- ... and set it to null to create a new dialog
SELECT@dlgId = NULL
END
IF @dlgId IS NULL
BEGIN
-- Begin the dialog, with the new Id
BEGIN DIALOG CONVERSATION @dlgId
FROM SERVICE [tcp://10.0.0.89:4022/db_ActivityManagement/Audit/DataSender]
TO SERVICE '//Audit/AcMan_DataWriter',
-- this is a MasterAuditDatabase Service Broker Id
-- (change it to yours and remove )
'51E3A8D4-BE8B-4162-8B90-245E321F674A'
ON CONTRACT [//Audit/AcMan_Contract]
WITH ENCRYPTION = OFF;
-- add our db's dialog to AuditDialogs table if it doesn't exist yet
INSERT INTO dbo.tbl_AuditDialog(tlg_dbID, tlg_dialogID)
SELECTDB_ID(), @dlgId
END
-- Send our data to be audited
;SEND ON CONVERSATION @dlgId
MESSAGE TYPE [//Audit/AcMan_rMessage] (@AuditedData)
END TRY
BEGIN CATCH
INSERT INTO dbo.tbl_AuditError
(
aer_ErrorProcedure
,aer_ErrorLine
,aer_ErrorNumber
,aer_ErrorMessage
,aer_ErrorSeverity
,aer_ErrorState
,aer_AuditedData
)
SELECT ERROR_PROCEDURE()
,ERROR_LINE()
,ERROR_NUMBER()
,ERROR_MESSAGE()
,ERROR_SEVERITY()
,ERROR_STATE()
,@AuditedData
END CATCH
END