別の方法は、サービス ブローカーのマスター キーを作成することです。
まず、キューを右クリックして送信キューを表示するか、単にこのクエリを使用して、Service Broker キューを確認します
SELECT *, casted_message_body = CASE message_type_name WHEN 'X'
THEN CAST(message_body AS NVARCHAR(MAX))
ELSE message_body
END
FROM [DATABASE_NAME].[sys].[transmission_queue]
ここにデータが見つかった場合、transmission_status 列にその理由が示されます。
ブローカーがその役割を果たしていない場合は、次のクエリで NEW_BROKER を作成します
USE [master]
ALTER DATABASE [DATABASE_NAME] SET NEW_BROKER
次に、TRUSTWORTHY を ON に設定して BROKER を有効にします。
ALTER DATABASE DATABASE_NAME SET ENABLE_BROKER;
ALTER DATABASE DATABASE_NAME SET TRUSTWORTHY ON;
最後に、マスター キーを削除し、新しいマスター キーを作成して新しいパスワードで暗号化します。
ALTER AUTHORIZATION ON DATABASE::DATABASE_NAME TO [SA];
DROP MASTER KEY
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '79HGKJ67ghjgk^&*^fgj'
GO
パスワードは、ユーザーが定義した英数字と記号の組み合わせにすることができます。
上記の手順のいずれかの実行に時間がかかる場合は、クエリを停止して SQL マネージャーを再度開き、もう一度やり直すことをお勧めします。うまくいくはずです!!