問題タブ [msmq]
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.
performance - MSMQ サーバーのパフォーマンス テスト
MSMQ に対して何らかのパフォーマンス テストを行った人はいますか?
データベースまたはイベント モニターに配布するためにエラーが MSMQ に追加される本番環境でのソリューションがあります。
このシステムの容量をテストする必要がありますが、開始方法がわかりません。
誰かツールを知っているか、何かヒントを持っていますか?
msmq - リモート コンピューターの MSMQ にアクセスすると、「リモート コンピューターは利用できません」と表示される
サーバー上で実行され、他の 4 つのサーバー (すべてドメイン内のメンバー) にアクセスして、各プライベート キュー内のメッセージを取得する Windows アプリケーションがあります。新しいサーバーをインストールしたばかりですが、何らかの理由でアプリケーションがそのコンピューターにアクセスしようとすると、「リモート コンピューターが利用できません」というメッセージが表示されます。
アプリケーションは、管理ドメイン ユーザーであるユーザーを使用して他のサーバーにアクセスします。
誰かがそのような問題に遭遇したことがありますか、または何が原因であるかについての手がかりを持っていますか?
wcf - WCF と NetMsmqBinding を使用する場合、メッセージ ラベルをどのように指定しますか?
NetMsmqBinding を使用して MSMQ メッセージ ラベルを設定したいと考えています。MsmqIntegrationBinding を使用すると簡単だと理解していますが、引き続き NetMsmqBinding を使用したいと思います (可能であれば、プライベート メソッドを呼び出すこともできます)。
.net-2.0 - MSMQジェネリックメッセージング
さまざまなプロセス間メッセージを処理するための汎用メッセージキューを作成することを考えています。(現時点では、WCFはオプションではありません。)したがって、特定のメッセージに対して10〜15の異なるキューを用意するのではなく、「キャッチオール」である1つのキューを用意します。
明らかに、このキューにメッセージを送信することは問題ではありません。各受信者は新しいメッセージのキューをリッスンしてから「ピーク」しますが、これを行うためのクリーンで効率的な方法を探しています。クリーンとは、すべての受信者がすべてのメッセージの本文を読む必要がない方法を意味します。
windows-xp - Windows XP でコンピュータの管理ツールを使用して MSMQ からメッセージを削除する方法
コンピュータの管理 -> サービスとアプリケーション -> メッセージ キュー
特定のキューからメッセージを削除するには? 何らかの方法があったようですが、今は見つけられません。
sql-server - Windowsで変更されたFIFOセマンティクスを使用した作業項目処理システムの設計
バックエンド処理のためにキューに入れられる「作業項目」を生成するシステムを構築しています。私は最近、同じ要件を持つシステムを完成させ、最適とは思えないアーキテクチャを思いついたので、この新しいシステムについてのアドバイスを期待していました。
作業項目は一元的にキューに入れられ、基本的にFIFOの順序で処理する必要があります。これが唯一の要件である場合、私はおそらくMSMQまたはSQLServerサービスブローカーソリューションを好むでしょう。ただし、実際には、変更されたFIFO順序で作業項目を選択する必要があります。作業項目にはいくつかの属性があり、属性値の特定の組み合わせが存在する場合は、FIFO順に割り当てる必要があります。
例として、作業項目には、Office、Priority、Group Number、およびSequence Number(グループ内)の属性があります。複数のアイテムが同じグループ番号でキューに入れられる場合、それらはシーケンス番号の順序でキューに入れられることが保証され、同じ優先順位を持ちます。
特定のサービスの特定の構成パラメーターを指定して、変更されたFIFO順序で作業時間をプルするいくつかのバックエンドプロセス(現在はWindowsサービスとして実装されています)があります。ワシントンDCを実行しているサービスは、DCの作業項目のみを処理するように構成されていますが、NYのサービスは、NYとDCの両方の項目を処理するように構成されている場合があります(主に全体的なスループットを向上させるため)。このタイプの選択性に加えて、優先度の高いアイテムを最初に処理し、同じ「グループ番号」を含むアイテムをシーケンス番号の順序で処理する必要があります。したがって、NYサービスがシーケンス1のグループ100のDCアイテムを処理している場合、シーケンス1はまだ完了していないため、DCサービスがグループ100のシーケンス2のDCアイテムをプルオフすることは望ましくありません。他のグループのアイテムは、引き続き処理の対象となる必要があります。
最後のシステムでは、SQLテーブルを使用してキューを実装しました。アイテムを送信し、さらに重要なことに、アイテムの処理を担当するWindowsサービスにアイテムを「割り当てる」ためのストアドプロシージャを作成しました。割り当てストアドプロシージャには、上記で説明した選択ロジックが含まれています。各Windowsサービスは、割り当てストアドプロシージャを呼び出し、サービスのそのインスタンス(適格なオフィスなど)に固有のパラメーターを渡します。この割り当てストアドプロシージャは、割り当てられた(処理中の)ワークアイテムにスタンプを付け、作業が完了すると、最後のストアドプロシージャが呼び出され、アイテムが「キュー」(テーブル)から削除されます。
このソリューションには、単純なSQLselectステートメントでこれらの「キュー」の状態をすばやく調べることができるという点でいくつかの利点があります。キューを簡単に操作することもできます(たとえば、単純なSQL更新ステートメントで優先順位を上げることができます)。ただし、欠点として、これらのキューテーブルのデッドロックに対処しなければならず、これらのストアドプロシージャを作成する必要があります(しばらくすると面倒になります)。
どういうわけか、MSMQ(WCSの有無にかかわらず)またはServiceBrokerのいずれかがより洗練されたソリューションを提供できるはずだと思います。自分のキューイング/作業項目処理システムをローリングするのは、気分が悪いだけです。しかし、私が知る限り、これらのテクノロジーは、割り当てプロセスに必要な柔軟性を提供していません。私は自分が間違っていることを望んでいます。どんなアドバイスでも大歓迎です。
wcf - MSMQ 経由の WCF が機能しない
私は、NetMsmqBinding を利用する WCF サービスを実装する任務を負っています。サービスを作成しましたが、正常に動作します。問題は、Active Directory との統合は行われないだろうと彼らが直前に私に告げたことです。そのため、サービスのセキュリティを構成する方法がわかりません。サービスのマシンとクライアントのマシンの間には VPN トンネルがありますが、それらは同じアクティブ ディレクトリを使用していません。ご意見をお聞かせください。あらゆる種類のヘルプやチュートリアルをいただければ幸いです。
問題は、サービスが常にオンラインであるとは限らないことです。そのため、このシナリオでは MSMQ よりも WCF を使用することが推奨されます。そのため、MSMQ を介して一方向のメッセージを送信しています。これは正常に機能します。私の唯一の問題は、私が WCF を初めて使用し、WCF のセキュリティに精通していないことです。サービスに送信される情報は機密であるため、メッセージに署名して暗号化できるようにしたいと考えています。許可されたクライアントのみがサービスを呼び出すようにしたいと考えています。助言がありますか?
multithreading - MSMQ スレッドセーフですか?
MSMQ キューを監視する複数のプロセスがあります。最初にメッセージをのぞいてから、いくつかの基準に基づいてメッセージを受信するなど、複数ステップの操作を実行したいと考えています。1 つのメッセージが複数のプロセスの受信基準を通過する場合があるため、複数のプロセスが同じメッセージを受信しようとする場合があります。これらの操作はスレッドセーフになりますか? そうでない場合、あるプロセスが他のプロセスが既に受信したメッセージの受信に失敗しないようにするにはどうすればよいですか?
sql - トランザクションに MSMQ または SQL Service Broker を使用する必要がありますか?
チーム リーダーから、製品の新しいバージョンのオプションとして MSMQ を調査するように依頼されました。現在のバージョンでは SQL Service Broker を使用しています。どの製品が私のニーズに適しているかを見つけるために、実験とグーグルをかなり試しましたが、プログラミングの回答については、私が知っている最高のサイトに尋ねようと思いました.
いくつかの詳細:
- クライアントは .NET 1.1 および 2.0 コードです。ここからメッセージが送信されます。
- SQL Server 2005 インスタンスのターゲット。すべてのメッセージは、最終的にデータベースの更新または挿入になります。
- トランザクションとして扱われなければならないいくつかの更新を送信します。
- メッセージを完全に復元できる必要があります。メッセージが失われることはありません。
- ターゲットの SQL サーバーがダウンしている場合でも、非同期でメッセージを受け入れることができる必要があります。
- 独自のキューイング ソリューションを開発することはできません。私たちは小さなチームです。
これまでに発見したこと:
- MSMQ と SQL Service Broker の両方がこの仕事を行うことができます。
- トランザクション メッセージの場合、Service Broker の方が高速なようです。
- Service Broker はどこかで実行されている SQL サーバーを必要としますが、MSMQ はどこかで実行されている構成済みの Windows マシンを必要とします。
- MSMQ は、クラスターでのセットアップ/実行がより優れている/高速である/簡単であるように見えます。
何か不足していますか?ここに明確な勝者はいますか?考え、経験、またはリンクは高く評価されます。ありがとうございました!
編集: 一部のクライアント コードでカスタム DB フレームワークを使用しているため、サービス ブローカーを使用することになりました (トランザクションをより適切に処理します)。そのコードはトランザクションの SQL をキャプチャしましたが、. クライアント コードもすべて .NET のバージョン 1.1 だったので、すべてのクライアント コードをアップグレードする必要がありました。ご協力いただきありがとうございます!
.net - WCF MSMQ を使用したオブザーバー パターン
MSMQ によって伝送されるメッセージに対して複数のリスナーを持つことは可能ですか?
WCF はサービスの観点からすべてを組み立てるように見え、通信をポイント ツー ポイントの事柄にします。メッセージ キューを使用して、ログをデータベースに記録する別のプロセスの受信トラフィックをバッファリングしたいと考えています。
着信トラフィックの監視に関心のある他のプロセスがいくつでも存在する可能性があり、これはオブザーバー パターンを積極的に要求しますが、少なくとも WCF 経由で MSMQ を使用しない限り、オブザーバー パターンを表現する方法がわかりません。
誰でもこれについて私にアドバイスできますか?
問題を説明するのにも役立つかもしれない理由についての背景: 私は、現場の小さなブラック ボックスからの接続要求を受け入れる Windows サービスを持っています。ソケットをセットアップし、ブラック ボックスは、時間と空間の GPS 位置で注釈が付けられたイベントを説明するメッセージを送信します。
ソケット ストリームからのメッセージ パケットを解析し、MSMQ を介して別のプロセスに送信します。別のプロセスは重複をフィルター処理し、パケットをデータベース テーブルに書き込みます。
着信トラフィックに応じてインクリメンタル計算を行うことでメリットが得られる後処理がいくらでもあり、ユーザー ツールは着信トラフィックにも応じてユーザー通知を実行します。
したがって、1 つのプロセスでメッセージを送信し、いくつかのプロセスでメッセージを受信したいと考えています。これらの受信者の 1 つは、パケットの内容を解析し、メッセージをデータベースに転記します。これは、キューからメッセージを最終的に削除する責任の明らかな候補ですが、これがメッセージを処理する最後のハンドラーであることを確認する方法の問題があります。