電子書籍の厳選無料作品が豊富!

MQ(「MQS」IBM製のミドルウェア)を利用したCのプログラムを書いているのですが、Queueに入っているメッセージをGetする際、Put側の意図するメッセージグループ単位(任意の行数)でGetすることはできるのでしょうか?
できる場合、どのようなロジックを使えば良いでしょうか?

上の文章では分かりにくいと思うので、実装例を書いておきます。
(例)
Queue:"orange" が一つ存在する
メッセージをPutするアプリケーション:"mqs_put"
メッセージをGetするアプリケーション:"mqs_get"
(1)mqs_put1が3行分のメッセージをorangeにPutする

(2)mqs_put2が5行分のメッセージをorangeにPutする

(この時点でorangeには8行のメッセージが存在)

(3)mqs_get1が、mqs_put1がPutしたメッセージ(3行分)をGetする

(4)mqs_get2が、mqs_put2がPutしたメッセージ(5行分)をGetする

A 回答 (1件)

ロジックでの解決は難しいと思います。


この場合、MQ-IDを使用すればいかがでしょうか。
例で言うと、
1)mqs_put1がorageにMQ-ID=1で3行PUT
2)mqs_put2がorageにMQ-ID=2で5行PUT
3)mqs_get1がMQ-ID=1のメッセージをorageから3行GET
4)mqs_get2がMQ-ID=2のメッセージをorageから5行GET
と言う事が可能です。
ちなみにGET時MQ-IDを指定せずにGETすると全てのメッセージ
がGETされます。
MQ-IDはMQヘッダーの部分で実際のメンバー名は今は
覚えておりませんが、分からないようであればまた
ご回答させていただきます。
質問の要望にあってなければごめんなさい。

この回答への補足

アドバイスありがとうございます。

アドバイスしていて頂いたMQ-IDを利用したコーティングが可能なのであれば、なんとかできそうですね。
ヘッダー部分での実際のメンバー名についてもし教えていただけましたら、よろしくお願いします(コーティング例などありましたら併せてお願い致します)。

ちなみに、MQ-IDを指定せずにPutしたメッセージは、MQ-IDはどのように設定されるのでしょうか。

補足日時:2006/01/24 14:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!