問題タブ [service-broker]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - サービス アカウントが両端で管理者でない限り、Windows 認証を使用したサービス ブローカー接続が失敗する
トポロジー:
マシン A - Windows Server 2008 - SQL 2008 R2 Dev SQL Server は mydomain\user1 として実行されています
マシン B -Windows 7 -SQL 2008 R2 Dev SQL Server は mydomain\user1 として実行されています
いずれかのエンドポイントのサービス アカウントに、いずれかの SQL サーバーのエンドポイントへの接続アクセス許可を付与しました。mydomain\user1 をいずれかのマシン管理者グループに追加すると、接続は問題なく行われます。これらのグループから削除すると、次のメッセージが表示されます。
接続ハンドシェイクに失敗しました。OS 呼び出しに失敗しました: (8009030c) 0x8009030c (ログオンの試行に失敗しました)。状態 67。
どんな助けでも大歓迎です。最低限必要な権利については、本当によくわかりません。最終的にこれを本番環境に移行することを計画していますが、SQL サービスをローカル マシンの管理者として実行することは望ましくありません。ところで、私はサーバー管理者をループに入れました.SPNは、彼らの知る限り正しく設定されているようです.
ここの MSDN フォーラムで同じ質問をしました。
sql-server-2005 - 現在のセキュリティコンテキストが信頼されていないため、リモートサーバーへのアクセスが拒否されました
ストアドプロシージャsp_dequeuequeue->ACTIVATION(STATUS = ON、MAX_QUEUE_READERS = 1、PROCEDURE_NAME = sp_dequeue、EXECUTE AS'Username');を呼び出すサービスブローカーがあります。sp_dequeueで、リンクサーバーにレコードを挿入しています...したがって、magmnt studioからsp_dequeueを呼び出すと、正常に機能します。しかし、サービスブローカーを介して自動的に呼び出されると、次のエラーメッセージが表示されます:「現在のセキュリティコンテキストが信頼されていないため、リモートサーバーへのアクセスが拒否されました。」
リンクサーバーのプロパティで、「このセキュリティ制約を使用して作成する」をチェックし、oracleユーザーIDとpwdを指定し、「ユーザー名」マッピングをoracleサーバーに追加しました(oracle / SQLのユーザー名とpwdは異なります)これをグーグルで検索しましたエラーはほとんどすべての組み合わせを試しました。plsはこの問題を解決するのに役立ちます。SQLServer2005とOracle10gを使用
sql-server-2005 - SQL Service Broker キューの削除が遅い
単一のデータベース内に SQL サーバー サービス ブローカーを使用するシステムがあります。このデータベースは、高い安全性モードとミラーリング監視を使用してミラーリングされます。
キューからメッセージを受信し、それらのメッセージをノードのキューに転送するルーティング アプリケーションがあります。8 つのノードごとに、そのメッセージを受信して処理し、ステータスをルーティング キューに送り返す別のアプリケーションがあります。
なんらかの理由で、そのアプリケーションは彼女のキューがすでにシステムに存在していることを認識せず、そのキューを何度も再作成しました。現在、システムには 8 ではなく 20000 のキューと 20000 の関連サービスがあります。
それらを削除し始めましたが、非常に遅いです (50 個のキューを削除するのに +/- 3 分)。これは通常とても遅いですか?ミラーリングは SSB に干渉しますか? これらのキューをすべて削除する別の方法はありますか?
ありがとう
sql-server - Microsoft SQL Server Service Broker のすべての要素をすばやくシャットダウンする方法は?
Service Broker を使用して SQL Server でキューとサービスを作成し、db 通信を処理するアプリがあります。アプリはこれらのサービスを使用し、メッセージを正しく送受信しますが、このアプリの初期化フェーズをテストしたいと思います (ブローカーと、舞台裏で動作するストアド プロシージャを作成します)。基本的に、ブローカ要素をある程度の頻度で削除する必要がありますが、現在は非常に遅いです。
それが役立つ場合、アプリがブローカー要素を作成する方法を変更できますが、この質問はすべてをシャットダウンすることに関連しています。
ブローカーをシャットダウンするために使用しているコードは次のとおりです。
これは、「ドロップ サービス [//XF/DBNotifyService-Initiator]」でしばらくハングします。Service Broker のすべてまたは一部の要素を閉じて削除するより迅速な方法はありますか?
ありがとう!
==アップデート==
わかりました、少し時間がかかりましたが、以下の答えで問題は解決しました。問題を抱えている可能性のある他の人のために明確にしたかったのです。
私のアプリは、すべてのサービス、キュー、コントラクト、およびメッセージを正しくシャットダウンしました。アプリのバグによる未解決の会話がたくさんあったため、サービスをシャットダウンするのに非常に時間がかかりました。これらの会話は作成され、メッセージの送信に使用され、次のように閉じられました。
「with cleanup」ビットは、会話のローカル エンドのみを閉じます (これにより、サーバーは相手側でエラーになった可能性のある会話をクリーンアップできると考えてください)。送信サービスの相手側を閉じないため、会話は開いたままになっていました。通常の会話は終了する必要があります。
これにより、アプリのバグが修正されました。ただし、データベースには数百万の壊れた会話がありました。通常の人のようにデータベースをドロップするか、それらを閉じる方法を見つけようとすることができます。それらをすべて 1 つずつ閉じるには、次の手順が必要です。
これには、接続ごとに数ミリ秒かかります (数百万の場合は非常に遅くなります)。それらをすべて非常に迅速に閉じたい場合は、以下の回答を使用して、変更されたコマンドを実行します。
with rollback immediate は、コミットを保証することなく、すべての接続をドロップします。ドキュメントには、「すべての不完全なトランザクションはロールバックされ、AdventureWorks2008R2 サンプル データベースへのその他の接続は直ちに切断される」と記載されています。 http://msdn.microsoft.com/en-us/library/bb522682.aspx
バグと開いている接続がなくなったため、サービスは現在非常に急速に低下しています。
sql-server-2005 - Are there other reasons for service broker to be disabled than a RESTORE DATABASE
We have a production database where service broker was disabled. We have a profiler that logs every backup / restore operation. I cannot find any restore operation in its trace. Are there any other reasons than a database restore for service broker to be disabled ?
Note that this database is mirrored using high-availability and a witness server. In the error log, I can find
Can mirorring failure disable service broker ? Or maybe is it the opposite : mirorring fails because service broker is disabled ?
Any suggestion to solve this issue would be greatly appreciated !
sql-server - SQL Server Broker Service ターゲット転送キューの問題
2 つの異なるインスタンスに 2 つの SSB を実装しました。非同期トリガーによるデータプッシュパターンです。
SQL Server Enterprise 2008 R2を使用しています。バージョン情報は以下にあります
私の SQL バージョンは Microsoft SQL Server Management Studio 10.0.4064.0 Microsoft Analysis Services Client Tools 10.0.4064.0 Microsoft Data Access Components (MDAC) 6.1.7601.17514 Microsoft MSXML 3.0 4.0 5.0 6.0 Microsoft Internet Explorer 9.0.8112.16421 Microsoft .NET Framework 2.0.50727.5446 動作中システム 6.1.7601
私のキューはRETENTIONがoffに設定されています。
Sender Queue と sys.TransmissionQueueは空です。
ターゲット キューは空ですが、ターゲット sys.transmissionqueueには送信した5000 件のメッセージが含まれています。
@Target DB に挿入されたテーブル、データはロックされています。「nolockで選択すると5000 件のレコードが表示されます」
プロファイラーショー
@送信者
ブローカー:会話 STARTED_OUTBOUND
ブローカー:会話 CONVERSING
ブローカー:メッセージ分類
Broker:リモートメッセージ確認
ブローカー:会話グループ
@受信者
ブローカー:会話 DISCONNECTED_OUTBOUND
ブローカー:会話グループ
ブローカー:メッセージ分類
Broker:リモートメッセージ確認
Broker:Message Undeliverable このメッセージは時間内にディスパッチできなかったため削除されました。状態: 1
- SSBDIAGNOSEはエラーを表示しません。
問題のトラブルシューティングに Rusanu のブログ エントリを使用しましたが、私の状況は違うと思います。
誰かが助けてくれることを願っています:)
sql-server-2005 - SQL Server Service Brokerは、Webサーバー(IIS)アプリケーションのサービスと会話できますか?
Webサーバー内のアプリケーションコンポーネントと通信する方法はありますか。私のアプリケーションは、IIS7.0のWebアプリケーションとSQLServer 2005のデータベースで構成されています。データベースをポーリングしているサテライトサービスがいくつかあり、これらをSQLデータベース自体からトリガーされるWebサービスに置き換えたいと考えています。
サービスブローカーはこれを行うことができますか?Webサーバー内のサービス(つまり、ASP.Netページ、Webサービス、またはWCFサービス)との会話を開始できますか?
編集:
SQLサーバーがWebアプリケーションコンポーネント(つまり、Webサービス、ASP.Netページなど)を呼び出す方法はありますか?私は知る必要がある。
sql-server - msdb.dbo.sp_send_dbmailはストアドプロシージャ内では実行されません
次のコードを使用して、デッドロックの監視を設定しました。
そしてそれはうまくいきます。私が抱えている問題は、msdb.dbo.sp_send_dbmailが機能していないように見えることです。セッションから手動で実行すると、正常に動作しますが、ストアドプロシージャ内から、次のエラーが発生します。
2011-08-23 16:42:45.28spid219sキューWayne.dbo.DeadLockNotificationsQueueで実行されているアクティブ化されたproc[dbo]。[usp_ProcessNotification]は、次のように出力します。データベース名:ウェイン; エラー番号:229; エラーメッセージ:オブジェクト'sp_send_dbmail'、データベース'msdb'、スキーマ'dbo'に対するEXECUTE権限が拒否されました。
私も以下を実行しました:
EXEC msdb.dbo.sp_addrolemember @rolename ='DatabaseMailUserRole'、@ membername ='';
メンバー名としてログオンしましたが、役に立たなかったようです。
これを修正するには何をする必要がありますか?
ありがとう。
ウェイン。
sql - SQLServerサービスブローカー-メッセージタイムアウト
私は、アプリケーションのメッセージ処理テクノロジとしてSQLServerサービスブローカーを研究しています。
このシナリオでは、1つのクライアントアプリケーション(WPF)から送信されたメッセージを、他のクライアントアプリケーション(android)が受信するサービスブローカーのキューに入れる必要があります。メッセージは時間に敏感であり、キューに投稿されてから「X」分(たとえば2分)以内に受信者が受信する必要があります。それまでに受信できない場合は、メッセージを期限切れにしてから削除する必要があります。列。
「x」分後にメッセージをタイムアウトするようにサービスブローカーに指示する方法はありますか?
編集:これをテストするために使用しているスクリプトを追加しました。
c# - SQL Server 通知 - Windows サービスから OnChange が起動しない
SQL Server 通知を使用して、Windows サービス内のデータベースで挿入/更新イベントをキャプチャしたいと考えています。SQLDependency オブジェクトを使用しようとしています。MSDN の記事を見ると、これはかなり単純明快に思えます。そこで、試してみるために小さなサンプル アプリケーションを作成しました。テーブルのデータに変更を加えると、OnChange イベントが発生しないように見えます。誰かが私に欠けているものを教えてもらえますか? ありがとう!私のコードのサンプルは以下のとおりです。