Wiadomość z SQL Server do aplikacji zewnętrznej (activemq)

Mam bazę danych SQL Server i Activemq zainstalowany w moim systemie. Próbowałem utworzyć punkt końcowy, aby nasłuchiwać portu, na którym znajduje się activemq. Port to 61617

CREATE ENDPOINT InstInitiatorEndpoint
STATE = STARTED
AS TCP ( LISTENER_PORT = 61617 )
FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS );
GO

Ale powoduje to błąd:

Punkt końcowy usługi Service Broker nie może nasłuchiwać połączeń z powodu następującego błędu: „10013 (Podjęto próbę uzyskania dostępu do gniazda w sposób zabroniony przez jego uprawnienia dostępu.)”.

Ponieważ activemq jest już uruchomiony na tym samym porcie. Czy powinienem podać inny port? Jeśli podam inny numer portu, zostanie on pomyślnie uruchomiony. Ale w zasadzieLISTENER_PORT=61617 oznacza, że ​​punkt końcowy nasłuchuje na porcie 61617, prawda? czy ktoś może wyjaśnić moje wątpliwości?

EDYTOWAĆ: Załóżmy, że utworzyłem punkt końcowy, typ wiadomości, umowę, kolejkę i usługę w następujący sposób

 CREATE MESSAGE TYPE RequestMessage
   VALIDATION = WELL_FORMED_XML;
 CREATE MESSAGE TYPE ReplyMessage
   VALIDATION = WELL_FORMED_XML;
 GO



 CREATE CONTRACT SimpleContract
  (RequestMessage
     SENT BY INITIATOR,
   ReplyMessage
     SENT BY TARGET
  );
 GO


  CREATE QUEUE InstInitiatorQueue;

 CREATE SERVICE InitiatorService
   AUTHORIZATION InitiatorUser
   ON QUEUE InstInitiatorQueue;
 GO



DECLARE @Cmd NVARCHAR(4000);

SET @Cmd = N'USE InstInitiatorDB;
CREATE ROUTE InstTargetRoute
WITH SERVICE_NAME =
   N''TargetService'',
 ADDRESS = N''TCP://localhost:61617'';';

EXEC (@Cmd);

DECLARE @Cmd NVARCHAR(4000);
SET @Cmd = N'USE msdb
CREATE ROUTE InstInitiatorRoute
WITH SERVICE_NAME =
   N''InitiatorService'',
 ADDRESS = N''LOCAL''';

 EXEC (@Cmd);
GO

CREATE REMOTE SERVICE BINDING TargetBinding
  TO SERVICE
     N'TargetService'
  WITH USER = TargetUser;

GO

Teraz tworzę uchwyt do rozmowy jako

 DECLARE @InitDlgHandle UNIQUEIDENTIFIER;
 DECLARE @RequestMsg NVARCHAR(100);

 BEGIN TRANSACTION;

 BEGIN DIALOG @InitDlgHandle
 FROM SERVICE InitiatorService
 TO SERVICE N'TargetService'
 ON CONTRACT SimpleContract
 WITH
     ENCRYPTION = ON;

 SELECT @RequestMsg = N'<RequestMsg>Message for Target service434.</RequestMsg>';

 SEND ON CONVERSATION @InitDlgHandle
 MESSAGE TYPE RequestMessage
 (@RequestMsg);

SELECT @RequestMsg AS SentRequestMsg;

COMMIT TRANSACTION;
GO

Tutaj Jeśli zobaczysz, próbowałem przykład konwersacji między dwoma wystąpieniami serwera SQL, aby przeprowadzić konwersację między serwerem SQL a activemq. Muszę określić komunikację między serwerem a serwerem, w związku z tym muszę określić usługę (inicjatora) usługi (docelowej). Znam serwer inicjatora, który jest serwerem sql, ale nie znam usługi activemq. Jaka byłaby usługa activemq, którą powinienem określić podczas obsługi konwersacji po stronie bazy danych?

questionAnswers(0)

yourAnswerToTheQuestion