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_PREDEFINED
  • MQC.MQQDT_PERMANENT_DYNAMIC
  • MQC.MQQDT_TEMPORARY_DYNAMIC
public int InhibitGet {get; set;}
このキューまたはこのトピックの、どちらでメッセージを読み取るかを制御します。 指定できる値は以下のとおりです。
  • MQC.MQQA_GET_INHIBITED
  • MQC.MQQA_GET_ALLOWED
public int InhibitPut {get; set;}
このキューまたはこのトピックの、どちらにメッセージを書き込むかを制御します。 指定できる値は以下のとおりです。
  • MQQA_PUT_INHIBITED
  • MQQA_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_ALIAS
  • MQC.MQQT_LOCAL
  • MQC.MQQT_REMOTE
  • MQC.MQQT_CLUSTER
public int Shareability {get;}
入力のためにキューを複数回オープンできるかどうか。 指定できる値は以下のとおりです。
  • MQC.MQQA_SHAREABLE
  • MQC.MQQA_NOT_SHAREABLE
public string TPIPE {get;}
IBM MQ IMS ブリッジを使用する OTMA との通信に使用される TPIPE 名。
public int TriggerControl {get; set;}
アプリケーションのキュー・サービスを開始するために、トリガー・メッセージが開始キューに書き込まれるかどうか。 指定できる値は以下のとおりです。
  • MQC.MQTC_OFF
  • MQC.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_NONE
  • MQC.MQTT_FIRST
  • MQC.MQTT_EVERY
  • MQC.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 入力パラメーターが、必須として設定されているのを確認することが重要です。
再接続可能なクライアントは再接続に成功すると、理由コード MQRC_BACKED_OUT を、MQGM_SYNCPOINT で受信したメッセージに対して返します。
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 オブジェクト、および送信されるメッセージ。 このメソッドの結果、メッセージ記述子は変更することができます。 このメソッドの完了直後のメッセージ記述子の値は、キューに書き込みされた値か、トピックに公開された値です。

再接続可能なクライアントには、次の理由コードが返されます。

  • MQRC_CALL_INTERRUPTED 持続メッセージで書き込みの呼び出しをしていて再接続が成功している間に、接続に失敗した場合。
  • 非持続メッセージに対する Put 呼び出しの実行中に接続が成功した場合は MQRC_NONE ( アプリケーション・リカバリー を参照)。
putMessageOptions
書き込みのアクションを制御するオプション。
putMessageOptions が指定されていない場合、MQPutMessageOptons のデフォルト・インスタンスが使用されます。
再接続可能なクライアントでMQPMO_LOGICAL_ORDERオプションを使用すると、MQRC_RECONNECT_INCOMPATIBLE理由コードが返されます。
注: 単純化とパフォーマンスのために、単一のメッセージをキューに書き込む場合は、 MQQueueManager.Put オブジェクトを使用します。 このためには MQQueue オブジェクトを持っている必要があります。
public void PutForwardMessage(MQMessage message);
public void PutForwardMessage(MQMessage message, MQPutMessageOptions putMessageOptions);

MQException をスローします

message が元のメッセージである場合のキューに対してメッセージが書き込まれます。

メッセージ
メッセージ記述子データを含む MQMessage オブジェクト、および送信されるメッセージ。 このメソッドの結果、メッセージ記述子は変更することができます。 このメソッドの完了直後のメッセージ記述子の値は、キューに書き込みされた値か、トピックに公開された値です。

再接続可能なクライアントには、次の理由コードが返されます。

  • MQRC_CALL_INTERRUPTED 持続メッセージで書き込みの呼び出しをしていて再接続が成功している間に、接続に失敗した場合。
  • 非持続メッセージに対する Put 呼び出しの実行中に接続が成功した場合は MQRC_NONE ( アプリケーション・リカバリー を参照)。
putMessageOptions
書き込みのアクションを制御するオプション。
putMessageOptions が指定されていない場合、MQPutMessageOptons のデフォルト・インスタンスが使用されます。
再接続可能なクライアントでMQPMO_LOGICAL_ORDERオプションを使用すると、MQRC_RECONNECT_INCOMPATIBLE理由コードが返されます。
public void PutReplyMessage(MQMessage message)
public void PutReplyMessage(MQMessage message, MQPutMessageOptions putMessageOptions)

MQException をスローします。

message が元のメッセージである場合のキューに対して応答メッセージが書き込まれます。

メッセージ
メッセージ記述子と返されたメッセージ・データを含んでいます。 メッセージ記述子のいくつかのフィールドは、入力パラメーターです。 MessageId および CorrelationId 入力パラメーターが、必須として設定されているのを確認することが重要です。
再接続可能なクライアントは再接続に成功すると、理由コード MQRC_BACKED_OUT を、MQGM_SYNCPOINT で受信したメッセージに対して返します。
putMessageOptions
書き込みのアクションを制御するオプション。
putMessageOptions が指定されていない場合、MQPutMessageOptons のデフォルト・インスタンスが使用されます。
再接続可能なクライアントでMQPMO_LOGICAL_ORDERオプションを使用すると、MQRC_RECONNECT_INCOMPATIBLE理由コードが返されます。
public void PutReportMessage(MQMessage message)
public void PutReportMessage(MQMessage message, MQPutMessageOptions putMessageOptions)

MQException をスローします。

message が元のメッセージである場合のキューに対してレポート・メッセージが書き込まれます。

メッセージ
メッセージ記述子と返されたメッセージ・データを含んでいます。 メッセージ記述子のいくつかのフィールドは、入力パラメーターです。 MessageId および CorrelationId 入力パラメーターが、必須として設定されているのを確認することが重要です。
再接続可能なクライアントは再接続に成功すると、理由コード MQRC_BACKED_OUT を、MQGM_SYNCPOINT で受信したメッセージに対して返します。
putMessageOptions
書き込みのアクションを制御するオプション。
putMessageOptions が指定されていない場合、MQPutMessageOptons のデフォルト・インスタンスが使用されます。
再接続可能なクライアントでMQPMO_LOGICAL_ORDERオプションを使用すると、MQRC_RECONNECT_INCOMPATIBLE理由コードが返されます。

コンストラクター

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_AUTHORITYopenOptions パラメーターで指定されている場合、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_AUTHORITYopenOptions パラメーターで指定されている場合、alternateUserId は、オープンに関する権限を確認するために使用される代替ユーザー ID を指定します。 MQC.MQOO_ALTERNATE_USER_AUTHORITY が指定されていない場合、alternateUserId はブランクまたはヌルのままにすることができます。