問題タブ [message-queue]

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.

0 投票する
1 に答える
1773 参照

multithreading - スレッドのメッセージ キューのサイズを監視できますか?

私たちのアプリケーションは、DCOM ( 0x80010100) から System Call Failed RPC エラーを受け取りました。ターゲット スレッドのメッセージ キューがいっぱいであると思われます (ただし、これが完全であるとは確信していません)。キューがメッセージに限定されて10,000いることはわかっており、一般的なケースでこの数に近いかどうかを確認したいと考えています。スレッドのメッセージ キューのサイズを監視する方法はありますか?

私が見つけた最も有望なオプションはこれでしGetQueueStatusたが、これにはキュー内のメッセージの数は含まれず、そのタイプのみが含まれます。

0 投票する
1 に答える
419 参照

java - XmlBlasterの長所と短所

XmlBlasterを使用していますか?あなたはそれについてどう思いますか?その弱点と強みは何ですか?

0 投票する
2 に答える
4058 参照

logging - すべてのメッセージのJMSキューロギング/ブラウジング(キューの非表示コンシューマ)(OpenJMS)

JMSキューを参照/ログに記録するための優れた方法があるかどうか、考えがありますか?(私はOpenJMSを使用しています)

トピックについては、もう1つのコンシューマーを追加するだけで済みます。それだけですが、キューを使用しても、まだソリューションを完成させていません。特定のキューとトピックにあるすべてのメッセージを、キューから「ポップ」せずにログに記録したいと思います(これにより、ロガーはキューを「非表示」に参照できます)。

javax.jms.QueueBrowserを使用すると、キューのスナップショットを取得できますが、「リスナーソリューション」を提供していないようです。無限ループでキュー上のすべてのメッセージを何度も読み取り、両方のメッセージが書き込まれないことを期待しています。スナップショットの前に消費されました-それは良い解決策のようには思えませんでした。

もう1つのオプションは、「論理キュー」ごとに2つのキューを作成することです。1つはロガー用、もう1つは実際の使用用です。ロガーはメッセージを「実際のキュー」に転送します。これは機能する可能性がありますが、より良い解決策があるでしょうか。

したがって、誰かが「見えない」ロガーによってキュー内のすべてのメッセージを取得するソリューション、またはロギングのための他の優れたソリューションを持っている場合、それはクールです。

0 投票する
4 に答える
1621 参照

queue - テーブルを使用したキュー

テーブルを使用してキューを実装する必要があります。ビジネス要件は、次のジョブを取得するために 5 ~ 10 個のボックスがアクセスする単一のキューを持つことです。1 日あたり 5000 以上のジョブはありません。また、ジョブのバッチは一度に「デキュー」する必要があります。

以前に行ったことがないので、私が遭遇する可能性のある問題領域と問題は何なのかと思っています。誰かがこれに直面した/これを以前に行ったことがある場合は、設計/サンプルの実装、または対処する必要がある問題を教えてください。

ありがとう

0 投票する
3 に答える
2635 参照

message-queue - WebsphereMQメッセージ履歴

私のアプリケーションは、IBMWebsphereMQを介して別のシステムと通信します。時々メッセージが私のキューに入ってこないが、他のシステムは彼らがすでに私に送ったと言った。だから私は私のキューに到着するすべてのメッセージの履歴を保持する方法を知りたいです。

0 投票する
3 に答える
7150 参照

message-queue - Websphere MQスクリプトを生成する方法は?

スクリプトファイルからMQキューマネージャーを作成するために「mqsc」を使用することがよくありますが、スクリプトファイルを生成する方法がわかりません。

ありがとう

0 投票する
8 に答える
5061 参照

.net - ASP.NET - 新しいアプリケーションに最適なキュー システム

私の組織は、asp.net アプリケーションである新しいシステムを実装する準備をしています。アプリケーションには、Web サイトによって開始されるオフライン作業の大きなキューがあります。このキューは、理想的には XML メッセージで、さまざまな種類のアクティビティを保持します。メール通知、スケジュールされたタスクなどを考えてみてください。

以前は、組織は MSMQ を使用してこのタスクを実行していた可能性があります。ただし、彼らは MSMQ を古い学校と見なしているため (私も部分的に彼らに同意します)、「最適な」ソリューションを決定するためにアーキテクチャのレビューを行う予定です。

考えられる選択肢はいくつかあり

ます。 1. MSMQ の最新バージョンでの新しい実装に固執します。これは理想的ではありませんが、既知の製品です。
2. Windows Workflow Foundation を使用します。これは、この種の目的でこれを使用している他の数人の開発者から聞いたことがあります。
3. カスタム データベース ソリューションを開発します。

明らかな解決策がありませんか?これは理想的には Microsoft 製品ですが、実際には Microsoft 中心のショップで動作する必要があります。

私が懸念しているのは、次の点です
。 1. 実装と保守の容易さ
2. しばらくの間使用できるソリューション
3. 中サイズの XML データを含む大量の行を処理できること
4. 迅速な更新を備えた絶対的に信頼性の高いキュー システム (複数のユーティリティ プロセスがキューからレコードを取得して処理する可能性があります)。

0 投票する
3 に答える
2405 参照

winapi - Win32:IProgressDialogは、マウスを合わせるまで消えません。

Win32の進行状況ダイアログを使用しています。最もひどいことは、私が電話するときです:

消えません。ユーザーがマウスをその上に移動するまで画面に表示されたままになり、その後突然消えます。

の呼び出しStopProgressDialogはすぐに戻ります(つまり、同期呼び出しではありません)。呼び出しが戻った後に何かをすることでこれを証明できます:

フォーム:

  • 灰色で始まります
  • 見つめていることを示すために赤に変わります
  • 灰色に戻り、停止と呼んだことを示します

StopProgressDialogしたがって、進行状況ダイアログがまだそこにあり、私をあざけり、メッセージを表示していることを除いて、への呼び出しが戻ってきました。

進行状況ダイアログの停止

代替テキスト


10秒間表示されない

さらに、進行状況ダイアログは、

10秒の睡眠が終わりました。


.NETWinFormsに限定されません

同じコードがDelphiでも失敗します。これは、Windowのウィンドウのオブジェクトラッパーでもあります。


PreserveSig

StopProgressDialog失敗した場合は例外がスローされます。

IProgressDialogのほとんどのメソッドは、C#(またはDelphi)に変換されると、失敗したCOMHRESULTSを母国語の例外に変換するコンパイラの自動メカニズムを使用します。

つまり、COM呼び出しがエラーHRESULT(つまり、ゼロ未満の値)を返した場合、次の2つのシグニチャは例外をスローします。

以下では、HRESULTを確認し、自分で反応することができます。

HRESULTは32ビット値です。上位ビットが設定されている場合(または値が負の場合)、エラーになります。

私は前者の構文を使用しています。したがって、StopProgressDialogがエラーを返す場合、それは自動的に言語例外に変換されます。

注:構文を使用したSaGの[PreserveSig]場合、返されるHRESULTはゼロです。


MsgWait?

症状は、レイモンド・チェンがかつて説明したものと似ています。これは、PeekMessageとそれに続くMsgWaitForMultipleObjectsの誤った使用に関係しています。

「プログラムが動かなくなって、必要なレコードより1つ少ないレコードが報告されることがあります。更新する値を取得するには、マウスを動かす必要があります。しばらくすると、2つ遅れ、次に3つ遅れます...」

ただし、CLR .NET WinFormsとネイティブWin32コードで同じように失敗するため、失敗はIProgressDialogにあることを意味します。

0 投票する
11 に答える
6775 参照

sql - MSMQ v データベース テーブル

既存のプロセスは、ユーザー入力に応じて、テーブル内の予約レコードのステータス フィールドを変更します。

特定のステータスのレコードに対して非同期で実行する、別のプロセスを作成する必要があります。テーブル レコードを読み取り、いくつかの操作 (サード パーティの Web サービスへの呼び出しを含む) を実行し、レコードのステータス フィールドを更新して、処理が完了したことを示します (または、エラー カウントでエラーが発生したことを示します)。

この操作は、キューに非常に似ています。この状況で、SQL テーブルではなく MSMQ を使用する利点とトレードオフは何ですか? また、どちらか一方を選択する必要があるのはなぜですか?

テーブル内のレコードを追加および更新しているのは、当社のソフトウェアです。

これは、非同期処理を実行する新しい作業 (Windows サービス) です。これは「常に稼働」している必要があります。

0 投票する
4 に答える
4056 参照

java - 優先度のあるメッセージ処理

Java Webアプリケーションでは、タイプAのメッセージが繰り返し読み込まれます(たとえば、1時間ごとに20,000)。次に、2番目のタイプのメッセージ(タイプB)がありますが、これらは時々表示されますが、タイプA(たとえば、3,000)よりも優先度が高くなります。オープンソースソフトウェアを使用して、これらのメッセージを1台以上のマシンで処理できるようにしたいと考えています。

優先度に基づいてキューからメッセージを送信するJMSサーバーがあれば、JMSでそれを行うことができるように思えます(たとえば、タイプAのすべてのメッセージがメッセージキューの一番上にあります)。

それを実行できるJMSサーバーを知っていますか?またはこれを実装する別の方法を知っていますか?