Cosminexus V9 アプリケーションサーバ Cosminexus Reliable Messaging
Reliable Messagingは,アプリケーションとキューとの間でメッセージの受け渡しをします。
アプリケーションとキューとの間でメッセージを受け渡す方式には,値渡し方式と参照渡し方式の二つ方法があります。それぞれの方法について説明します。
値渡し方式は,Reliable Messagingで扱うメッセージとアプリケーションが保持するメッセージを分離する方式です。そのため,アプリケーションが1度登録したメッセージを変更したり,取り出したメッセージを再び登録したりできます。Reliable Messagingは,メッセージの登録時および取り出し時にメッセージをコピーします。
値渡し方式を利用したメッセージの受け渡しの概要を次の図に示します。
図2-13 値渡し方式を利用したメッセージの受け渡しの概要
参照渡し方式は,アプリケーションが保持するメッセージをそのままReliable Messagingで扱う方式です。アプリケーションがReliable Messagingと同じメッセージのインスタンスを参照するため,アプリケーションでメッセージを利用するときに,メッセージの再利用ができないなどの制限があります。しかし,値渡し方式よりも高速にメッセージを送受信できます。
参照渡し方式を利用する場合,RMPassByReferenceプロパティにtrueを指定します。
参照渡し方式を利用したメッセージの受け渡しの概要を次の図に示します。
図2-14 参照渡し方式を利用したメッセージの受け渡しの概要
参照渡し方式では,送信側アプリケーションが保持するメッセージと受信側アプリケーション(受信をロールバックした場合,ロールバックする前の受信側アプリケーションを含む)が保持するメッセージが同じインスタンスとなります。そのため,最後の受信側アプリケーションがメッセージを受信すると,送信側アプリケーションと以前の受信側アプリケーションが保持するメッセージは,最後の受信側アプリケーションのメッセージと同じ状態となります。
参照渡し方式を利用した場合の動作を次の図に示します。
図2-15 参照渡し方式を利用した場合の動作
図2-14に示すように,送信側アプリケーションと受信側アプリケーションでは次の状態となります。
参照渡し方式を利用した場合,Reliable Messagingが持つメッセージのインスタンスをアプリケーションも保持していることがあります。そのため,アプリケーションによるメッセージの再利用は行えません。メッセージの再利用とは,Reliable Messagingのキューに登録されたメッセージまたは登録を試みたメッセージを,再び登録することやそのメッセージに設定した情報を変更することです。アプリケーションによってメッセージを再利用した場合はエラーが発生します。再利用できないメッセージを次に示します。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.