問題タブ [system.messaging]
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.
vb.net - system.messaging キューがフリーズしている間、message.receive
このメッセージング ライブラリを使用したのはこれが初めてで、サンプル コードを使用して実装しました。初めて実行したときは完全に機能しましたが、解析方法が間違っているように思われたため、突然コードを停止しました。そのため、再起動すると、コードは次の行でフリーズします。
メッセージキューが破損した可能性はありますか? サーバーマネージャーを確認したところ、以前と同じようにキューがまだ存在し、メッセージ数 = 1 のようです。これが私のコードの残りの部分です:
編集:
キューの作成方法:
そしてそれがどのように使用されるか:
それがトランザクションであるかどうかを確認しました。
そうではありません。
c# - Windows メッセージキューですべてのメッセージを取得中に散発的なエラーが発生しました
Windows Server 2003 で実行されている C# ASP.NET 3.5 Web アプリケーションで、次のエラーが発生することがあります。
このエラーをスローするコード行は次のとおりです。
ここでGlobal.getOutputQueue(mode)
、メッセージを取得したいメッセージキューを指定します。
アップデート:
p>system.messaging - 指定された形式名は、要求された操作をサポートしていません。たとえば、ダイレクト キュー形式名は削除できません
Message オブジェクトを使用してメッセージをキューに送信しようとしていますが、エラーが発生しています
指定された形式名は、要求された操作をサポートしていません。たとえば、ダイレクト キュー形式名は削除できません。
これがコードです。
これに関する任意の助けをいただければ幸いです。
トム
.net - MessageEnumerator RemoveCurrent を使用すると、キューの最後にいるかどうかをどのように知ることができますか?
.NET 上の MSMQ では、MessageEnumerator を使用して、キュー内のすべてのメッセージを調べています。特定の条件を満たすメッセージを削除したい。
MoveNext を呼び出してキューをステップスルーすると、現在のメッセージが存在するかどうかを示すブール値が返されます。しかし、RemoveCurrent を実行すると、削除後の現在のメッセージが存在するかどうかをどのように知ることができますか? Current をチェックして例外を処理する唯一の方法はありますか?
これは、1 年以上経過したメッセージを削除するという単純な条件を使用する例です。キューが別の場所で作成され、MessageReadPropertyFilter.ArrivedTime = true で設定されたとします。
c# - MSMQ キューの監視
プライベート MSMQ キューに書き込むアプリケーションがあります。キューを監視して、アプリケーションが正常に動作しているかどうかを監視したい。通常は、パフォーマンス カウンターを使用してキューにあるメッセージの数を確認できますが、非常に積極的なキュー リーダーがあります。監視プログラムがキュー内のメッセージを確認することに依存している場合、メッセージは監視アプリケーションが確認する前に既に読み取られているため、何も確認できない可能性が高くなります。つまり、次のタイムラインが心配です。
上記のように、キューにはアクティビティ (書き込みと読み取り) がありますが、監視中のアクティビティはまったくありません。
過去 1 分または 1 時間に通過したキュー アイテムの数を確認する方法はありますか? または、キューを監視できる他のものはありますか?
msmq - MSMQ メッセージがリモート サーバーに到達すると消える
SenderServer (MS Server 2012) とReceiverServer (MS Server 2008 R2)という同じドメイン内の 2 つのサーバー間にMSMQメッセージング メカニズムを作成する必要があります。
ReceiverServer にプライベートなトランザクション キューを作成し、.\private$\receiver
システムと管理者にメッセージの受信 (およびピーク) 権限を与えました。
次に、次のコードを使用して、メッセージを作成してキューに転送するクライアント アプリケーションを作成しました。
アプリケーションを展開する前に、自分のマシン (Windows 7) で、 と を使用して発信キューを正しく作成することをテストしましDirect=OS:ReceiverServer\private$\receiver
た。メッセージは正しくReceiverServerに送信され、キューに入れられます。各メッセージのReceiverServerは、次の 2 つのイベントをログに記録します。State:Connected
Connection History:Connection is ready to transfer messages
\private$\receiver
End2End log
- メッセージがネットワーク経由で送信されました (EventId: 4)
- のメッセージ
ID CN=msmq, CN=[mymachinename], CN=Computers, DC=[domain], DC=[other]
がキューに入れられましたReceiverServer\private$\receiver
(EventId: 1)
次に、同じコードを使用してSenderServer内からクライアント アプリケーションを使用しました。サーバーはとを使用して送信キューDirect=OS:ReceiverServer\private$\receiver
を正しく作成します。メッセージがキューに入れられて送信されるのを確認できますが、リモートのReceiverServerキューでメッセージを受信しません。ReceiverServerのEnd2End イベント ログを確認すると、最初のメッセージ (メッセージがネットワーク経由で送信された (EventId: 4)) だけが表示されますが、メッセージはキューに配置されません。State:Connected
Connection History:Connection is ready to transfer messages
.\private$\receiver
両方のマシンからファイアウォールをオフにし、キューの承認設定を変更し、キューに対して次のエンドポイントを試しました。
FormatName:Direct=OS:[IPv6 address]\private$\receiver
FormatName:Direct=TCP:ReceiverServer\private$\receiver
FormatName:Direct=TCP:[IPv6 address]\private$\receiver
運がない。マイクロソフトのトラブルシューティング プロセスとドキュメントは非常に一般的で単純化されているため、ここで質問することにしました。
.net - キューが存在しないか、操作を実行するための十分な権限がありません。MSMQ 経由でメッセージを送信中の例外
MSMQ 経由でメッセージを送信する関数を作成しましたが、実行中に例外が発生しました。以下は私の機能です。
例外:- キューが存在しないか、操作を実行するための十分な権限がありません。
また、[コンピュータの管理] の [メッセージング キュー] の [セキュリティ] タブを開くことができません。添付のスクリーンショットを参照してください。
手動でプライベートの下にメッセージキューを作成しようとしましたが、システムで許可されました。下記参照
以下は mmc スパンです。