- ベストアンサー
メッセージキューイングとは?
すみません。 メッセージキューイングとは、どのように使用するものでしょうか? まだ、開発経験が浅い為、このような質問方法でいいかもよく分かっていないのですが、どなたか分かりやすく回答頂けないでしょうか? 例えば、同サーバー(Win2003サーバー)内で、AとBのプロセスがあった場合にAからメッセージを発行し、Bはそのメッセージを受け取って処理を開始するみたいに使用出来るのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず検索及び考えたところで... 1)ミドルウエアソフト(MSMQ)を使用する。 http://www.microsoft.com/japan/msdn/msmq/ 2).NET Fameworkの System.Messaging クラスを使用する。 http://www.microsoft.com/japan/msdn/net/bda/bdadotnetasync1.aspx 3)データベースでメッセージテーブルを作成・使用する。 メッセージ識別ID 呼出プログラム(プロセス)ID 実行プログラム(プロセス)ID 起動時パラメータ 作成日時 実行日時 処理フラグ 等をフィールド定義 使用者による実行制限制御を行う場合は、ユーザーID 等を 追加する。 4)共有メモリを使用する。 データベースを使用した場合と同様 データベースを使用する場合より高速での処理が可能。 但し、メッセージの発生数が多い場合にはメモリ容量を圧迫 する事になるので不向き。 5)決められたディレクトリに作成されるメッセージファイル の発生を監視する。 上記をシステム規模等、要件によって使い分ける事になります。 注) メッセージを発行する側は、メッセージ発行後すぐに次の処理 に移れる点がメリットになりますが、そのメッセージの処理に エラーが発生した場合、メッセージの発行側にはそれを知る事 ができないというデメリットも持っています。 その為、通常はメッセージ処理の実行内容及び成否をログ出力 等して監視する処理も必要になります。
その他の回答 (2)
- don_go
- ベストアンサー率31% (336/1059)
補足 >Bは自分の仕事が無い場合に受付箱を覗き メッセージ処理用の別プロセスCがBの作業状況を 監視して、Bの作業が空くのを待ってメッセージ をBに送るという方法も有ります。
お礼
回答ありがとうございます。 <Bの作業が空くのを待ってメッセージをBに送るという方法> などもあるんですね
- don_go
- ベストアンサー率31% (336/1059)
>AとBのプロセスがあった場合にAからメッセージを発行し、 >Bはそのメッセージを受け取って処理を開始するみたいに >使用出来るのでしょうか? AからBに直接メッセージを渡すのではなく、Aはメッセージ を受付箱に入れるだけ、Bは自分の仕事が無い場合に受付箱 を覗き、中にメッセージが入っていたらそれを順番に実行 していきます。 A1,A2,A3と複数のプロセスから同時にBに対するメッセージ を出す場合でも、Bの作業の有無によらずメッセージを送る 事ができ次の処理を継続できます。
お礼
回答ありがとうございます。 もう少しお聞きしてよろしいですか? このAがメッセージを受付箱に入れて、Bがメッセージ箱を見に行ってメッセージがあったらBが処理を行うって方法ってどのように行うんですか? 何かサンプルみたいな感じで教えていただけないでしょう? 例えば、2つdllファイルを用意して、行うことが出来るなど・・・ もしくは、どこか良いサイトがありましたら教えてください。 (色々、調べたのですがうまくhitしないので・・・) よろしくお願いします。m(__)m
お礼
色々と、本当にありがとうございます。 教えて頂いた、1)~5)を少し勉強して考えてみます。 もしかしたら、又、お聞きすることが出るかもしれませんが、その時はよろしくお願いします。 本当に、ありがとうございます。 m(__)m