• ベストアンサー

メッセージキューイングとは?

すみません。 メッセージキューイングとは、どのように使用するものでしょうか? まだ、開発経験が浅い為、このような質問方法でいいかもよく分かっていないのですが、どなたか分かりやすく回答頂けないでしょうか? 例えば、同サーバー(Win2003サーバー)内で、AとBのプロセスがあった場合にAからメッセージを発行し、Bはそのメッセージを受け取って処理を開始するみたいに使用出来るのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • don_go
  • ベストアンサー率31% (336/1059)
回答No.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)決められたディレクトリに作成されるメッセージファイル の発生を監視する。 上記をシステム規模等、要件によって使い分ける事になります。 注) メッセージを発行する側は、メッセージ発行後すぐに次の処理 に移れる点がメリットになりますが、そのメッセージの処理に エラーが発生した場合、メッセージの発行側にはそれを知る事 ができないというデメリットも持っています。 その為、通常はメッセージ処理の実行内容及び成否をログ出力 等して監視する処理も必要になります。

NewSQL
質問者

お礼

色々と、本当にありがとうございます。 教えて頂いた、1)~5)を少し勉強して考えてみます。 もしかしたら、又、お聞きすることが出るかもしれませんが、その時はよろしくお願いします。 本当に、ありがとうございます。 m(__)m

その他の回答 (2)

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.2

補足 >Bは自分の仕事が無い場合に受付箱を覗き メッセージ処理用の別プロセスCがBの作業状況を 監視して、Bの作業が空くのを待ってメッセージ をBに送るという方法も有ります。

NewSQL
質問者

お礼

回答ありがとうございます。 <Bの作業が空くのを待ってメッセージをBに送るという方法> などもあるんですね

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.1

>AとBのプロセスがあった場合にAからメッセージを発行し、 >Bはそのメッセージを受け取って処理を開始するみたいに >使用出来るのでしょうか? AからBに直接メッセージを渡すのではなく、Aはメッセージ を受付箱に入れるだけ、Bは自分の仕事が無い場合に受付箱 を覗き、中にメッセージが入っていたらそれを順番に実行 していきます。 A1,A2,A3と複数のプロセスから同時にBに対するメッセージ を出す場合でも、Bの作業の有無によらずメッセージを送る 事ができ次の処理を継続できます。

NewSQL
質問者

お礼

回答ありがとうございます。 もう少しお聞きしてよろしいですか? このAがメッセージを受付箱に入れて、Bがメッセージ箱を見に行ってメッセージがあったらBが処理を行うって方法ってどのように行うんですか? 何かサンプルみたいな感じで教えていただけないでしょう? 例えば、2つdllファイルを用意して、行うことが出来るなど・・・ もしくは、どこか良いサイトがありましたら教えてください。 (色々、調べたのですがうまくhitしないので・・・) よろしくお願いします。m(__)m

関連するQ&A