MQQueue.NET クラス
MQQueue を使用して、メッセージの送受信、および IBM® MQ キューの属性の照会を行います。 コンストラクター、または MQQueueManager.AccessProcess メソッドを使用して MQQueue オブジェクトを作成します。
クラス
System.Object
|
└─ IBM.WMQ.MQBase
|
└─ IBM.WMQ.MQBaseObject
|
└─ IBM.WMQ.MQManagedObject
|
└─ IBM.WMQ.MQDestination
|
└─ IBM.WMQ.MQQueue
public class IBM.WMQ.MQQueue extends IBM.WMQ.MQDestination;
プロパティー
プロパティーの取得時にスローされた MQException をテストします。
public int ClusterWorkLoadPriority {get;}- キューの優先順位を指定します。 このパラメーターはローカル、リモート、および別名キューにのみ有効です。
public int ClusterWorkLoadRank {get;}- キューのランクを指定します。 このパラメーターはローカル、リモート、および別名キューにのみ有効です。
public int ClusterWorkLoadUseQ {get;}- 宛先キューにローカル・インスタンスと最低 1 つのリモート・クラスター・インスタンスがある場合に、MQPUT 操作の動作を指定します。 MQPUT がクラスター・チャネルから出された場合、このパラメーターは適用されません。 このパラメーターは、ローカル・キューにのみ有効です。
public DateTime CreationDateTime {get;}- このキューが作成された日時。
public int CurrentDepth {get;}- 現在キューにあるメッセージの数を取得します。 この値は、書き込み呼び出し中、および取得呼び出しのバックアウト中に増分されます。 また、ブラウズ以外の取得呼び出し中、 および書き込み呼び出しのバックアウト中に減分されます。
public int DefinitionType {get;}- キューが定義された方法。 指定できる値は以下のとおりです。
MQC.MQQDT_PREDEFINEDMQC.MQQDT_PERMANENT_DYNAMICMQC.MQQDT_TEMPORARY_DYNAMIC
public int InhibitGet {get; set;}- このキューまたはこのトピックの、どちらでメッセージを読み取るかを制御します。 指定できる値は以下のとおりです。
MQC.MQQA_GET_INHIBITEDMQC.MQQA_GET_ALLOWED
public int InhibitPut {get; set;}- このキューまたはこのトピックの、どちらにメッセージを書き込むかを制御します。 指定できる値は以下のとおりです。
MQQA_PUT_INHIBITEDMQQA_PUT_ALLOWED
public int MaximumDepth {get;}- 同時にキューに存在できるメッセージの最大数。 すでにこれだけ多くのメッセージが入っているキューにさらにメッセージを書き込もうとすると、理由コード
MQC.MQRC_Q_FULLで失敗します。 public int MaximumMessageLength {get;}- このキューの各メッセージに含めることができるアプリケーション・データの最大長。 この値より大きいメッセージを書き込もうとすると、理由コード
MQC.MQRC_MSG_TOO_BIG_FOR_Qで失敗します。 public int NonPersistentMessageClass {get;}- このキューに書き込まれる非持続メッセージの信頼性のレベル。
public int OpenInputCount {get;}- キューからメッセージを削除するために現在有効なハンドルの数。 OpenInputCount は、アプリケーションによって作成されたハンドルのみではなく、ローカル・キュー・マネージャーに認識されている有効な入力ハンドルの総数です。
public int OpenOutputCount {get;}- キューにメッセージを追加するために現在有効なハンドルの数。 OpenOutputCount は、アプリケーションによって作成されたハンドルのみではなく、ローカル・キュー・マネージャーに認識されている有効な出力ハンドルの総数です。
public int QueueAccounting {get;}- キューのアカウンティング情報のコレクションを使用可能に設定できるようにするかどうかを指定します。
public int QueueMonitoring {get;}- キューのモニターを使用可能に設定できるようにするかどうかを指定します。
public int QueueStatistics {get;}- キューの統計のコレクションを使用可能に設定できるようにするかどうかを指定します。
public int QueueType {get;}- このキューのタイプを次のいずれかの値で戻します。
MQC.MQQT_ALIASMQC.MQQT_LOCALMQC.MQQT_REMOTEMQC.MQQT_CLUSTER
public int Shareability {get;}- 入力のためにキューを複数回オープンできるかどうか。 指定できる値は以下のとおりです。
MQC.MQQA_SHAREABLEMQC.MQQA_NOT_SHAREABLE
public string TPIPE {get;}- IBM MQ IMS ブリッジを使用する OTMA との通信に使用される
TPIPE名。 public int TriggerControl {get; set;}- アプリケーションのキュー・サービスを開始するために、トリガー・メッセージが開始キューに書き込まれるかどうか。 指定できる値は以下のとおりです。
MQC.MQTC_OFFMQC.MQTC_ON
public string TriggerData {get; set;}- キュー・マネージャーがトリガー・メッセージに挿入する自由形式のデータ。 このキューに到着したメッセージによって、トリガー・メッセージが開始キューに書き込まれることになった場合に、TriggerData が挿入されます。 ストリングの可能な最大長は、
MQC.MQ_TRIGGER_DATA_LENGTHによって示されます。 public int TriggerDepth {get; set;}- トリガー・タイプが
MQC.MQTT_DEPTHに設定されているときに、トリガー・メッセージが書き込まれる前に、キューに入れなければならないメッセージ数。 public int TriggerMessagePriority {get; set;}- メッセージによってトリガー・メッセージが生成されない場合のメッセージ優先順位。 すなわち、キュー・マネージャーは、トリガーを生成するかどうかを判定するときに、これらのメッセージを無視します。 値がゼロの場合、すべてのメッセージによってトリガー・メッセージが生成されます。
public int TriggerType {get; set;}- このキューにメッセージが到着する結果として、トリガー・メッセージが書き込まれる条件。 指定できる値は以下のとおりです。
MQC.MQTT_NONEMQC.MQTT_FIRSTMQC.MQTT_EVERYMQC.MQTT_DEPTH
方法
public void Get(MQMessage message);public void Get(MQMessage message, MQGetMessageOptions getMessageOptions);public void Get(MQMessage message, MQGetMessageOptions getMessageOptions, int MaxMsgSize);MQException をスローします。
キューからメッセージを取得します。
読み取りに失敗した場合は、MQMessage オブジェクトは変更されません。 それが成功した場合は、MQMessage のメッセージ記述子とメッセージ・データ部分が、着信メッセージのメッセージ記述子とメッセージ・データに置き換わります。
特定の MQQueueManager から IBM MQ へのすべての呼び出しは同期しています。 そのため、get with wait を実行すると、同じ MQQueueManager を使用する他のすべてのスレッドは、Get 呼び出しが完了するまで、以降の IBM MQ 呼び出しを行うことができなくなります。 複数のスレッドが同時に IBM MQ にアクセスする必要がある場合、各スレッドは独自の MQQueueManager オブジェクトを作成する必要があります。
- メッセージ
- メッセージ記述子と返されたメッセージ・データを含んでいます。 メッセージ記述子のいくつかのフィールドは、入力パラメーターです。 MessageId および CorrelationId 入力パラメーターが、必須として設定されているのを確認することが重要です。
- getMessageOptions
- 読み取りのアクションを制御するオプション。
オプション
MQC.MQGMO_CONVERTを使用すると、結果として、1 バイト文字コードを 2 バイトコードに変換するときに、理由コードMQC.MQRC_CONVERTED_STRING_TOO_BIGの例外になる可能性があります。 この場合、メッセージは変換されずにバッファーにコピーされます。getMessageOptionsが指定されていない場合、使用されるメッセージ・オプションはMQGMO_NOWAITです。再接続可能なクライアントで
MQGMO_LOGICAL_ORDERオプションを使用すると、MQRC_RECONNECT_INCOMPATIBLE理由コードが返されます。 - MaxMsgSize
- このメッセージ・オブジェクトで受信する最大メッセージ。 キューのメッセージがこのサイズより大きい場合、次の 2 つのいずれかが行われます。
MQGMO_ACCEPT_TRUNCATED_MSGフラグが MQGetMessageOptions オブジェクトに設定された場合、メッセージは、最大限までメッセージ・データで埋められます。 例外が、MQCC_WARNING完了コードとMQRC_TRUNCATED_MSG_ACCEPTED理由コードと共にスローされます。MQGMO_ACCEPT_TRUNCATED_MSGフラグが設定されていない場合、メッセージはキューに残されます。 例外が、MQCC_WARNING完了コードとMQRC_TRUNCATED_MSG_FAILED理由コードと共にスローされます。
MaxMsgSizeが指定されていない場合、メッセージ全体が取得されます。
public void Put(MQMessage message);public void Put(MQMessage message, MQPutMessageOptions putMessageOptions);MQException をスローします。
メッセージをキューに書き込みます。
書き込み呼び出しの完了後に MQMessage オブジェクトを変更しても、 IBM MQ キューまたはパブリケーション・トピックの実際のメッセージには影響しません。
Put は、 MQMessage オブジェクトの MessageId および CorrelationId プロパティーを更新し、メッセージ・データをクリアしません。 Put または Get 呼び出しは、MQMessage オブジェクト内の更新情報を参照します。 例えば、次のコード・スニペットでは、最初のメッセージがaを含み、2 番目のメッセージがabを含んでいます。msg.WriteString("a"); q.Put(msg,pmo); msg.WriteString("b"); q.Put(msg,pmo);- メッセージ
- メッセージ記述子データを含む MQMessage オブジェクト、および送信されるメッセージ。 このメソッドの結果、メッセージ記述子は変更することができます。 このメソッドの完了直後のメッセージ記述子の値は、キューに書き込みされた値か、トピックに公開された値です。
- putMessageOptions
- 書き込みのアクションを制御するオプション。
注: 単純化とパフォーマンスのために、単一のメッセージをキューに書き込む場合は、 MQQueueManager.Put オブジェクトを使用します。 このためには MQQueue オブジェクトを持っている必要があります。public void PutForwardMessage(MQMessage message);public void PutForwardMessage(MQMessage message, MQPutMessageOptions putMessageOptions);MQException をスローします
messageが元のメッセージである場合のキューに対してメッセージが書き込まれます。- メッセージ
- メッセージ記述子データを含む MQMessage オブジェクト、および送信されるメッセージ。 このメソッドの結果、メッセージ記述子は変更することができます。 このメソッドの完了直後のメッセージ記述子の値は、キューに書き込みされた値か、トピックに公開された値です。
- putMessageOptions
- 書き込みのアクションを制御するオプション。
public void PutReplyMessage(MQMessage message)public void PutReplyMessage(MQMessage message, MQPutMessageOptions putMessageOptions)MQException をスローします。
messageが元のメッセージである場合のキューに対して応答メッセージが書き込まれます。- メッセージ
- メッセージ記述子と返されたメッセージ・データを含んでいます。 メッセージ記述子のいくつかのフィールドは、入力パラメーターです。 MessageId および CorrelationId 入力パラメーターが、必須として設定されているのを確認することが重要です。
- putMessageOptions
- 書き込みのアクションを制御するオプション。
public void PutReportMessage(MQMessage message)public void PutReportMessage(MQMessage message, MQPutMessageOptions putMessageOptions)MQException をスローします。
messageが元のメッセージである場合のキューに対してレポート・メッセージが書き込まれます。- メッセージ
- メッセージ記述子と返されたメッセージ・データを含んでいます。 メッセージ記述子のいくつかのフィールドは、入力パラメーターです。 MessageId および CorrelationId 入力パラメーターが、必須として設定されているのを確認することが重要です。
- putMessageOptions
- 書き込みのアクションを制御するオプション。
コンストラクター
public MQQueue MQQueueManager.AccessQueue(string queueName, int openOptions);public MQQueue MQQueueManager.AccessQueue(string queueName, int openOptions, string queueManagerName, string dynamicQueueName, string alternateUserId);MQException をスローします。
このキュー・マネージャーのキューにアクセスします。
メッセージの取得または参照、メッセージの書き込み、キューの属性を照会するか、またはキューの属性を設定する。 指定されたキューがモデル・キューである場合は、動的ローカル・キューが作成されます。 結果の MQQueue オブジェクトの
name属性を照会して、動的キューの名前を調べます。- queueName
- オープンするキューの名前。
- openOptions
- キューのオープンを制御するオプション。
MQC.MQOO_ALTERNATE_USER_AUTHORITY- 指定したユーザー ID で検証します。
MQC.MQOO_BIND_AS_QDEF- キューのデフォルトのバインディングを使用します。
MQC.MQOO_BIND_NOT_FIXED- 特定の宛先にバインドしません。
MQC.MQOO_BIND_ON_OPEN- キューがオープンされたときに、ハンドルを宛先にバインドします。
MQC.MQOO_BROWSE- メッセージのブラウズ用にオープンします。
MQC.MQOO_FAIL_IF_QUIESCING- キュー・マネージャーが静止中の場合は失敗します。
MQC.MQOO_INPUT_AS_Q_DEF- キュー定義のデフォルトを使用したメッセージの読み取り用にオープンします。
MQC.MQOO_INPUT_SHARED- 共有アクセスによるメッセージの読み取り用にオープンします。
MQC.MQOO_INPUT_EXCLUSIVE- 排他的アクセスによるメッセージの読み取り用にオープンします。
MQC.MQOO_INQUIRE- 照会用にオープンします。プロパティーを照会する場合に必要です。
MQC.MQOO_OUTPUT- メッセージの書き込み用にオープンします。
MQC.MQOO_PASS_ALL_CONTEXT- すべてのコンテキストを渡すことができるようにします。
MQC.MQOO_PASS_IDENTITY_CONTEXT- 識別コンテキストを渡すことができます。
MQC.MQOO_SAVE_ALL_CONTEXT- メッセージが取り出されるときにコンテキストを保管します。
MQC.MQOO_SET- 属性の設定のためにオープンします。プロパティーを設定するときに必要です。
MQC.MQOO_SET_ALL_CONTEXT- すべてのコンテキストの設定を許可します。
MQC.MQOO_SET_IDENTITY_CONTEXT- ID コンテキストの設定を許可します。
- queueManagerName
- キューが定義されているキュー・マネージャーの名前。 全体がブランクまたはヌルである名前は、MQQueueManager オブジェクトが接続されているキュー・マネージャーを表します。
- dynamicQueueName
dynamicQueueNameは、queueName がモデル・キュー名を指定しなければ、無視されます。 指定された場合、dynamicQueueNameは、作成する動的キューの名前を指定します。 ブランクまたはヌルである名前は、queueName がモデル・キュー名を指定している場合は無効になります。 名前の最後の非ブランク文字がアスタリスク*である場合、キュー・マネージャーはこのアスタリスクを文字ストリングと置き換えます。 文字によって、キューのために生成される名前が、このキュー・マネージャー上で確実に固有のものとなります。- alternateUserId
MQC.MQOO_ALTERNATE_USER_AUTHORITYが openOptions パラメーターで指定されている場合、alternateUserIdは、オープンに関する権限を確認するために使用される代替ユーザー ID を指定します。MQC.MQOO_ALTERNATE_USER_AUTHORITYが指定されていない場合、alternateUserIdはブランクまたはヌルのままにすることができます。
public MQQueue(MQQueueManager queueManager, string queueName, int openOptions, string queueManagerName, string dynamicQueueName, string alternateUserId);MQException をスローします。
queueManagerのキューにアクセスします。メッセージの取得または参照、メッセージの書き込み、キューの属性を照会するか、またはキューの属性を設定する。 指定されたキューがモデル・キューである場合は、動的ローカル・キューが作成されます。 結果の MQQueue オブジェクトの
name属性を照会して、動的キューの名前を調べます。- queueManager
- アクセス対象のキューがあるキュー・マネージャー。
- queueName
- オープンするキューの名前。
- openOptions
- キューのオープンを制御するオプション。
MQC.MQOO_ALTERNATE_USER_AUTHORITY- 指定したユーザー ID で検証します。
MQC.MQOO_BIND_AS_QDEF- キューのデフォルトのバインディングを使用します。
MQC.MQOO_BIND_NOT_FIXED- 特定の宛先にバインドしません。
MQC.MQOO_BIND_ON_OPEN- キューがオープンされたときに、ハンドルを宛先にバインドします。
MQC.MQOO_BROWSE- メッセージのブラウズ用にオープンします。
MQC.MQOO_FAIL_IF_QUIESCING- キュー・マネージャーが静止中の場合は失敗します。
MQC.MQOO_INPUT_AS_Q_DEF- キュー定義のデフォルトを使用したメッセージの読み取り用にオープンします。
MQC.MQOO_INPUT_SHARED- 共有アクセスによるメッセージの読み取り用にオープンします。
MQC.MQOO_INPUT_EXCLUSIVE- 排他的アクセスによるメッセージの読み取り用にオープンします。
MQC.MQOO_INQUIRE- 照会用にオープンします。プロパティーを照会する場合に必要です。
MQC.MQOO_OUTPUT- メッセージの書き込み用にオープンします。
MQC.MQOO_PASS_ALL_CONTEXT- すべてのコンテキストを渡すことができるようにします。
MQC.MQOO_PASS_IDENTITY_CONTEXT- 識別コンテキストを渡すことができます。
MQC.MQOO_SAVE_ALL_CONTEXT- メッセージが取り出されるときにコンテキストを保管します。
MQC.MQOO_SET- 属性の設定のためにオープンします。プロパティーを設定するときに必要です。
MQC.MQOO_SET_ALL_CONTEXT- すべてのコンテキストの設定を許可します。
MQC.MQOO_SET_IDENTITY_CONTEXT- ID コンテキストの設定を許可します。
- queueManagerName
- キューが定義されているキュー・マネージャーの名前。 全体がブランクまたはヌルである名前は、MQQueueManager オブジェクトが接続されているキュー・マネージャーを表します。
- dynamicQueueName
dynamicQueueNameは、queueName がモデル・キュー名を指定しなければ、無視されます。 指定された場合、dynamicQueueNameは、作成する動的キューの名前を指定します。 ブランクまたはヌルである名前は、queueName がモデル・キュー名を指定している場合は無効になります。 名前の最後の非ブランク文字がアスタリスク*である場合、キュー・マネージャーはこのアスタリスクを文字ストリングと置き換えます。 文字によって、キューのために生成される名前が、このキュー・マネージャー上で確実に固有のものとなります。- alternateUserId
MQC.MQOO_ALTERNATE_USER_AUTHORITYが openOptions パラメーターで指定されている場合、alternateUserIdは、オープンに関する権限を確認するために使用される代替ユーザー ID を指定します。MQC.MQOO_ALTERNATE_USER_AUTHORITYが指定されていない場合、alternateUserIdはブランクまたはヌルのままにすることができます。