メッセージキューイングアクセス機能 TP1/Message Queue - Access 使用の手引

[目次][用語][索引][前へ][次へ]

ImqObjectクラス(C++)

このクラスは,キューマネジャおよびキューの属性をカプセル化します。

このクラスは抽象クラスです。このクラスのオブジェクトが破棄されると,このクラスは自動的にクローズされ,そのImqQueueManager接続は切断されます。

インクルードファイル

このクラスを使用するときは,imqobj.hppファイルをインクルードしてください。

オブジェクト属性

● alternate user id

最大MQ_USER_ID_LENGTH文字です。初期値はヌル文字です。

MQOD構造体の,AlternateUserIdフィールドに相当します。

● close options

初期値はMQCO_NONEです。この属性は,暗黙の再オープン操作時には無視されます。この操作では,必ず値MQCO_NONEが使用されるためです。

● connection reference

ローカルのキューマネジャへの必要な接続を提供するImqQueueManagerオブジェクトへの参照です。ImqQueueManagerオブジェクトの場合,参照はオブジェクト自身です。初期値はヌル文字です。

注意
connection referenceと,名前を指定されたキューのキューマネジャを識別するImqQueue queue manager nameとを混同しないようにしてください。

● description

キューマネジャ,キュー,またはプロセスの記述名(最大64文字)です。属性は読み取り専用です。

● name

キューマネジャ,キュー,または該当するプロセスの名前(最大48文字)です。初期値はヌル文字です。これは,結果として生じた動的キューの名前に対するopenのあとのモデルキュー変更の名前です。空のキューマネジャ名の代わりに,必ず実際のキューマネジャ名が返されます。

MQOD構造体,MQOR構造体の,ObjectNameフィールド,またはObjectQMgrNameフィールドに相当します。

● next managed object

特定の順序でなく,このクラスの次のオブジェクトで,このオブジェクトと同じconnection referenceを持つものです。初期値は0です。

● open options

初期値はMQOO_INQUIREです。適切な値を設定する方法には,次の2通りがあります。

  1. open optionsを設定しないで,openメソッドも使用しないでください。
    TP1/Message Queue - Accessは,open optionsを自動的に調整し,必要に応じてオブジェクトの自動的なオープン,再オープン,およびクローズを実行します。この結果,不要な再オープン操作が実行される場合があります。これは,TP1/Message Queue - AccessがopenForメソッドを使用するため,open optionsが次々に追加されるためです。
  2. 結果的にMQI命令が発生する任意のメソッドを使用する前に,open optionsを適切に設定してください。
    これによって,不要な再オープン操作が実行されなくなります。潜在的な再オープン問題が発生しやすい場合は,必ず,open optionsを明示的に設定してください。

openメソッドを使用する場合は,最初にopen optionsが適切かどうか確認する必要があります。ただし,必ずしもopenメソッドを使用する必要はありません。TP1/Message Queue - Accessは,引き続き1の場合と同じ動作を示しますが,2の状況では効率の低下にはなりません。

0は有効な値ではないため,オブジェクトをオープンしてみる前に,適切な値を設定する必要があります。setOpenOptions(open options)のあとにopen( )を使用するか,openFor(open options)を使用して実行します。

● open status

オブジェクトがオープンである(TRUE)か,クローズされている(FALSE)かを示します。属性は読み取り専用です。初期値はFALSEです。

● previous managed object

特定の順序ではなく,このクラスの直前のオブジェクトで,このオブジェクトと同じconnection referenceを持つものです。初期値は0です。

コンストラクタ

● ImqObject( );

デフォルトのコンストラクタです。

● ImqObject( const ImqObject & object );

コピーコンストラクタです。open statusはFALSEとなります。

メソッド

● void operator = ( const ImqObject & object );

必要に応じてクローズを実行し,objectからインスタンスデータをコピーします。open statusはFALSEとなります。

● ImqString alternateUserId( ) const ;

alternate user idのコピーを返します。

● ImqBoolean setAlternateUserId( const char * id );

alternate user idを設定します。alternate user idを設定できるのは,open statusがFALSEである場合だけです。正常に実行された場合はTRUEを返します。

● ImqBoolean close( );

open statusをFALSEに設定します。正常に実行された場合はTRUEを返します。

MQCLOSE命令に相当します。

● MQLONG closeOptions( ) const ;

close optionsを返します。

● void setCloseOptions( const MQLONG options );

close optionsを設定します。

● ImqQueueManager * connectionReference( ) const ;

connection referenceを返します。

● void setConnectionReference( ImqQueueManager & manager );

connection referenceを設定します。

● void setConnectionReference( ImqQueueManager * manager = 0 );

connection referenceを設定します。

● virtual ImqBoolean description( ImqString & description ) = 0 ;

descriptionのコピーを提供します。正常に実行された場合はTRUEを返します。

MQINQ命令の,MQCA_Q_MGR_DESCセレクタ,MQCA_Q_DESCセレクタ,およびMQCA_PROCESS_DESCセレクタに相当します。

● ImqString description( );

考えられるエラーを指示しないで,descriptionのコピーを返します。

MQINQ命令の,MQCA_Q_MGR_DESCセレクタ,MQCA_Q_DESCセレクタ,およびMQCA_PROCESS_DESCセレクタに相当します。

● ImqObject * nextManagedObject( ) const ;

next managed object を返します。

● virtual ImqBoolean name( ImqString & name );

nameのコピーを提供します。正常に実行された場合はTRUEを返します。

MQINQ命令の,MQCA_Q_MGR_NAMEセレクタ,MQCA_Q_NAMEセレクタ,およびMQCA_PROCESS_NAMEセレクタに相当します。

● ImqString name( );

考えられるエラーを指示しないで,nameのコピーを返します。

MQINQ命令の,MQCA_Q_MGR_NAMEセレクタ,MQCA_Q_NAMEセレクタ,およびMQCA_PROCESS_NAMEセレクタに相当します。

● ImqBoolean setName( const char * name = 0 );

nameを設定します。nameを設定できるのは,open statusがFALSEである場合だけです。また,ImqQueueManagerの場合は,connection statusがFALSEである場合です。正常に実行された場合はTRUEを返します。

● ImqBoolean open( );

open optionsとnameを使用して必要に応じてオブジェクトをオープンすることによって,open statusをTRUEに変更します。ImqQueueManager connection statusを必ずTRUEにする必要がある場合には,connection reference情報とImqQueueManager connectメソッドを使用します。open statusを返します。

MQOPEN命令に相当します。

● ImqBoolean openFor( const MQLONG required-options = 0 );

required-optionsが組み込まれたopen optionsを指定した状態で,オブジェクトがオープンされるようにします。

open optionsのどれかが変更され,オブジェクトがすでにオープンになっている場合は,open optionsを調整するためにオブジェクトは一時的にクローズされ,再オープンされます。

正常に実行された場合はTRUEを返します。正常に実行されたということは,オブジェクトが適切なオプションでオープンになっていることを示します。

MQOPEN命令に相当します。

● MQLONG openOptions( ) const ;

open optionsを返します。

● ImqBoolean setOpenOptions( const MQLONG options );

open optionsを設定します。open optionsを設定できるのは,open statusがFALSEである場合だけです。正常に実行された場合はTRUEを返します。

● ImqBoolean openStatus( ) const ;

open statusを返します。

● ImqObject * previousManagedObject( ) const ;

previous managed objectを返します。

メソッド(protected)

● MQHCONN connectionHandle( ) const ;

connection referenceと関連づけられたMQHCONNを返します。この値は,connection referenceがない場合,またはImqQueueManagerが接続されていない場合は0です。

● ImqBoolean inquire( const MQLONG int-attr, MQLONG & value );

整数値を返します。この索引はMQIA_*値です。エラーがあった場合,値はMQIAV_UNDEFINEDに設定されます。

● ImqBoolean inquire( const MQLONG char-attr, char * & buffer, const size_t length );

文字ストリングを返します。この索引はMQCA_*値です。

注意
上記のメソッドは,どれも単一の属性値しか返しません。複数の値についてスナップショットが必要な場合,値は一つのインスタンスについて互いに一貫していますが,MQCクライアント機能が提供するC++インタフェースではこの機能が用意されていないため,適切なパラメタを使ってMQINQ命令を使用する必要があります。

● virtual void openInformationDisperse( );

MQOPEN命令の直後にMQOD構造体の可変部分から情報を分散させます。

● virtual ImqBoolean openInformationPrepare( );

MQOPEN命令の直前にMQOD構造体の可変部分の情報を準備します。正常に実行された場合はTRUEを返します。

● ImqBoolean set( const MQLONG int-attr, const MQLONG value );

TP1/Message Queue - Access整数属性を設定します。

● ImqBoolean set( const MQLONG char-attr, const char * buffer, const size_t required-length );

TP1/Message Queue - Access文字属性を設定します。

● void setNextManagedObject( const ImqObject * object = 0 );

next managed objectを設定します。

● void setPreviousManagedObject( const ImqObject * object = 0 );

previous managed objectを設定します。

オブジェクト属性(protected)

● MQHOBJ ohobj

TP1/Message Queue - Accessオブジェクトハンドルです。open statusがTRUEである場合にだけ有効です。

● MQOD omqod

組み込みMQOD構造体です。

その他の関連クラス

ImqBinary

ImqError

ImqQueue

ImqQueueManager

ImqString

理由コード

理由コードの詳細については,「付録A 理由コード」,またはマニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。