1

システムにデータベースSQL Server 2012とactivemqがインストールされています。Java プログラムを使用して、activemq にメッセージを送信し、activemq からメッセージを受信できます。MessageProducer と MessageConsumer という 2 つの Java プログラムをそれぞれ送信用と受信用に作成しました。データベースからactivemqにメッセージを送信したいのですが、これを行うのを手伝ってくれる人はいますか?

注: 同じデータベースでメッセージを送受信できます。次のリンクからこれを行いました。ただし、異なるSQL Server間でもなく、同じデータベースにあります。endpointsサーバー間通信に使えばいいのかなと思ってやってみましたが、使い方がわかりません。

私の質問を快適に編集してください。

私の質問をご覧いただきありがとうございます。

編集:少し検索した後、データベースからメッセージを送信するためにこのようなことをしました

--Create a Service Broker endpoint
USE master;
GO
IF EXISTS (SELECT * FROM sys.endpoints
          WHERE name = N'InstInitiatorEndpoint')
 DROP ENDPOINT InstInitiatorEndpoint;
GO
CREATE ENDPOINT InstInitiatorEndpoint
STATE = STARTED
AS TCP ( LISTENER_PORT = 61616 )
FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS );
GO

--Create the Initiator database, master key, and user
USE master;
GO
IF EXISTS (SELECT * FROM sys.databases
       WHERE name = N'InstInitiatorDB')
 DROP DATABASE InstInitiatorDB;
GO
CREATE DATABASE InstInitiatorDB;
GO
USE InstInitiatorDB;
GO

CREATE MASTER KEY
   ENCRYPTION BY PASSWORD = N'<EnterStrongPassword2Here>';
GO
CREATE USER InitiatorUser WITHOUT LOGIN;
GO

--Create the Initiator certificate
CREATE CERTIFICATE InstInitiatorCertificate
 AUTHORIZATION InitiatorUser
 WITH SUBJECT = N'Initiator Certificate',
      EXPIRY_DATE = N'12/31/2013';

 BACKUP CERTIFICATE InstInitiatorCertificate
  TO FILE = 
  N'I:\MsSql\QueryNotification\InstTargetCertificate.cer';
GO


 --Create the message types

 CREATE MESSAGE TYPE [//BothDB/2InstSample/RequestMessage]
   VALIDATION = WELL_FORMED_XML;
 GO

--Create the contract
CREATE CONTRACT [//BothDB/2InstSample/SimpleContract]
  (     [//BothDB/2InstSample/RequestMessage]   SENT BY INITIATOR
  );
GO

--Create the Initiator queue and service

CREATE QUEUE InstInitiatorQueue;

CREATE SERVICE [//InstDB/2InstSample/InitiatorService]
   AUTHORIZATION InitiatorUser
   ON QUEUE InstInitiatorQueue;
GO


--Create routes

DECLARE @Cmd NVARCHAR(4000);

SET @Cmd = N'USE msdb
CREATE ROUTE InstInitiatorRoute
WITH SERVICE_NAME =
   N''//InstDB/2InstSample/InitiatorService'',
 ADDRESS = N''TCP://localhost:61616''';

EXEC (@Cmd);
GO

activemq tcp ポートはtcp//localhost:61616で、SQL サーバーを実行しているポートは1433です。この後、SQL サーバーからメッセージを送信し、activemq のキューにメッセージを表示するにはどうすればよいですか?

4

0 に答える 0