メッセージ読み込み(MQGET)処理

オペレーション名

メッセージ読み込み(MQGET)

機能概要

メッセージ読み込み(MQGET)処理は、キュー名を指定しメッセージを取得します。
取得したメッセージは、Mapperや他のアダプタへ渡すことができ、スクリプト内で自由に使用することができます。

データモデル

本コンポーネントのデータモデルはテーブルモデル型です。

プロパティ

必須設定
項目名 必須/省略可 変数の使用 説明 補足
接続先 必須 使用不可 グローバルリソースを選択します。
グローバルリソースの設定方法については「グローバルリソースのプロパティ」を参照してください。
  • [追加]:
    新規にグローバルリソースを追加します。
  • [一覧の編集]:
    「リソース一覧の編集」画面にて、グローバルリソースの設定を編集することができます。
 
キュー名 必須 使用可 指定された接続先(キューマネージャ)が管理するキュー名を設定します。  
メッセージをキューに残す 省略可 使用不可 キューからメッセージを取得時にメッセージをキューに残すかどうかを選択します。
  • [チェックあり]:
    キューからメッセージを取得した場合でもキューにメッセージを残します。
  • [チェックなし(デフォルト)]:
    キューからメッセージを取得した場合、取得したメッセージはキューから削除されます。
 
メッセージモード選択 省略可 使用不可 メッセージをどのように扱うかを選択します。
  • [テキストデータとして扱う(フォーマットなし)]:(デフォルト)
    テキストフォーマットを使用しません。Mapper上は「message」というスキーマが生成されます。
  • [テキストデータとして扱う(フォーマット使用)]:
    テキストフォーマットを指定することができます。フォーマットが指定されない場合は、「message」というスキーマが生成されます。
  • [バイナリデータとして扱う]:
    テキストフォーマットを使用しません。BASE64エンコードされた文字列を取得します。
 
フォーマット 省略可 使用不可 テキストの簡易フォーマットを選択します。
テキストフォーマットの使用方法は「テキストフォーマット」をご覧ください。
  • [追加]:
    新規にフォーマットを追加します。
  • [一覧の編集]:
    「リソース一覧の編集」画面にて、フォーマットの設定を編集することができます。
  • [メッセージモード選択]で、[テキストデータとして扱う(フォーマット使用)]を選択した場合、有効になります。
プロパティアクション
項目名 必須/省略可 変数の使用 説明 補足
抽出テスト - 使用不可 設定した[接続先][キュー名]でメッセージの抽出テストを行います。
メッセージが取得できた場合は、ダイアログに取得したメッセージが表示されます。

また、[フォーマット]が指定されている場合は、取得したメッセージをフォーマットで分割したメッセージをダイアログで表示します。
  • キューの先頭メッセージを1件のみ取得します。(キューからメッセージは削除されません。)

MQMDデフォルト設定

項目名 必須/省略可 変数の使用 説明 補足
メッセージID 省略可 使用可 指定したIDを持つメッセージのみを取得します。
[相関ID][グループID]と組み合わせて使用することもできます。
  • 指定された文字列をMS932でバイトに変換した値が[メッセージID]として使用されます。
相関ID 省略可 使用可 指定したIDを持つメッセージのみを取得します。
[メッセージID][グループID]と組み合わせて使用することもできます。
  • 指定された文字列をMS932でバイトに変換した値が[相関ID]として使用されます。
グループID 省略可 使用可 指定したIDを持つメッセージのみを取得します。
[メッセージID][相関ID]と組み合わせて使用することもできます。
  • 指定された文字列をMS932でバイトに変換した値が[グループID]として使用されます。

オプション

項目名 必須/省略可 変数の使用 説明 補足
一括受信件数 省略可 使用可 一度のメッセージ読み込み処理で取得できる最大メッセージ数を指定します。
  • デフォルト値は「0」です。
  • 「0」を指定すると無制限となり、キューに存在するすべてのメッセージを読み込みます。
待機時間(ミリ秒) 省略可 使用可 キューにメッセージが存在しなかった場合にメッセージが書き込まれるまで待機する時間をミリ秒で指定します。
  • デフォルト値は「0」です。
  • 「-1」を指定すると無期限待機となり、キューにメッセージが書き込まれるまで待機状態となります。
フォーマットサイズを超えるメッセージはエラーとする 省略可 使用不可 取得したメッセージ全体のサイズが、フォーマットで指定した全体のサイズを超えた場合、エラーとして処理を中断します。
取得したメッセージ全体のサイズが、フォーマットで指定した全体のサイズより少ない場合は、スペースでパディングされ処理は続行されます。
  • [チェックあり]:
    メッセージのサイズが[項目のサイズ]で指定したサイズを超える場合、エラーを発生させます。

  • [チェックなし]:(デフォルト)
    メッセージのサイズが[項目のサイズ]で指定したサイズを超える場合、オーバーしたデータを切り捨て、エラーを発生させません。
  • [必須設定]タブの[メッセージモード選択][テキストデータとして扱う(フォーマット使用)]を選択した場合、有効となります。
データ処理方式
項目名 必須/省略可 変数の使用 説明 補足
データ処理方式 必須 使用不可 データ処理方式を選択します。
  • [スクリプトの設定を使用する]:(デフォルト)
    スクリプトプロパティの大容量データ処理の設定をアダプタに使用します。
  • [大容量データ処理を行わない]:
    大容量データ処理を行いません。
  • [大容量データ処理を行う]:
    大容量データ処理を行います。
 
コメント
項目名 必須/省略可 変数の使用 説明 補足
コメント 省略可 使用不可 このコンポーネントの簡単な説明を記述することができます。
説明を記述すると、仕様書に反映させることができます。
 

スキーマ

入力スキーマ

ありません。

出力スキーマ

キューからメッセージ取得に成功した場合、メッセージごとにメッセージのメタ情報(MQMD)を取得することができます。

<?xml version="1.0" encoding="UTF-8" ?>
<table>
  <row>
    <column>messageId</column>
    <column>messageType</column>
    <column>correlationId</column>
    <column>persistence</column>
    <column>expiry</column>
    <column>priority</column>
    <column>characterSet</column>
    <column>replyToQMgrName</column>
    <column>replyToQName</column>
    <column>report</column>
    <column>feedback</column>
    <column>backoutCount</column>
    <column>encoding</column>
    <column>format</column>
    <column>groupID</column>
    <column>msgSeqNumber</column>
    <column>offset</column>
    <column>msgFlags</column>
    <column>originalLength</column>
    <column>userIdentifier</column>
    <column>accountingToken</column>
    <column>applIdentityData</column>
    <column>putApplType</column>
    <column>putApplName</column>
    <column>applOriginData</column>
    <column>putDateTime</column>
    <column>message</column>
	:
  </row>
  <row>
    :
  </row>
</table>
スキーマ項目名 説明
messageId メッセージに対するメッセージIDを表します。
messageType メッセージの種類を表します。
correlationId 相関IDを表します。
persistence 永続性を表します。
expiry 有効期限を表します。
priority 優先度を表します。
characterSet 文字コードセットを表します。
replyToQMgrName リプライキューマネージャ名表します。
replyToQName リプライキュー名を表します。
report レポートを表します。
feedback フィードバックを表します。
backoutCount バックアウトカウントを表します。
encoding 数値エンコードを表します。
format フォーマットを表します。
groupID メッセージに対するグループIDを表します。
msgSeqNumber メッセージの順序番号を表します。
offset データのオフセットを表します。
msgFlags メッセージフラグを表します。
originalLength メッセージ長を表します。
userIdentifier ユーザー識別を表します。
accountingToken 会計方法を表します。
applIdentityData アプリケーション識別データを表します。
putApplType アプリケーションタイプを表します。
putApplName アプリケーション名を表します。
applOriginData アプリケーション起点データを表します。
putDateTime 書き込み日時を表します。
message メッセージを表します。
このカラムは、フォーマットの指定に依存します。

各項目の詳細な情報については、WebSphere MQのマニュアルを参照してください。

Mapperでのスキーマ読み込み

スキーマは自動で読み込まれます。
詳細については、「スキーマ編集」を参照してください。

大容量データ処理

大容量データ処理に対応しています。

PSPスクリプトでの使用について

PSPスクリプトでは使用できません。

使用できるコンポーネント変数

利用できるコンポーネント変数名 説明 備考
count キューから取得したメッセージの件数を返します。
  • 実行中にエラーが発生した場合は、件数は「null」となります。
completion_code 完了コードを返します。完了コードの詳細はWebSphere MQのマニュアルを参照してください。
  • 正常終了時には「0」となります。
reason_code 理由コードを返します。理由コードの詳細はWebSphere MQのマニュアルを参照してください。
  • 正常終了時には「0」となります。
message_category エラー発生時、発生したエラーに対応するメッセージコードのカテゴリが格納されます。
  • デフォルト値はnullです。
message_code エラー発生時、発生したエラーに対応するメッセージコードのコードが格納されます。
  • デフォルト値はnullです。
message_level エラー発生時、発生したエラーに対応するメッセージコードの重要度が格納されます。
  • デフォルト値はnullです。
error_type エラー発生時、発生したエラーの種類が格納されます。
  • デフォルト値はnullです。
  • エラーの種類は、以下のような形式となります。
    例:「java.io.FileNotFoundException」
  • DataSpider Servistaのバージョンにより、格納される内容が変わる可能性があります。
error_message エラー発生時、発生したエラーのメッセージが格納されます。
  • デフォルト値はnullです。
  • DataSpider Servistaのバージョンにより、格納される内容が変わる可能性があります。
error_trace エラー発生時、発生したエラーのトレース情報が格納されます。
  • デフォルト値はnullです。
  • DataSpider Servistaのバージョンや実行するクライアントアプリケーションにより、格納される内容が変わる可能性があります。

主な例外

例外名 原因 対策
ResourceNotFoundException
リソース定義が見つかりませんでした。名前:[]
[接続先]が指定されていません。 [接続先]を指定してください。
ResourceNotFoundException
リソース定義が見つかりませんでした。名前:[<グローバルリソース名>]
[接続先]で選択されたリソース定義が見つかりません。 [接続先]で指定したグローバルリソースを確認してください。
MQException
WebSphere MQ の処理で発生したエラーです。
完了コード、理由コードがログに出力されます。それぞれのコードの詳細については、WebSphere MQ のマニュアルを参照してください。 完了コード、理由コードがログに出力されます。それぞれのコードの詳細については、WebSphere MQ のマニュアルを参照してください。
FormatResourceException
フォーマットエラーです。
WebSphere MQ のメッセージや、Mapperからのデータがフォーマットで指定したサイズを超えていた場合に出力されます。
このエラーは、[オプション]タブの[フォーマットサイズを超えるメッセージはエラーとする]にチェックを入れた場合のみ出力されます。
フォーマットを確認してください。
NoClassDefFoundError
com/ibm/mq/MQException
ライブラリが正しくインストールされていない場合に出力されます。 必要なライブラリはこちらで確認することができます。
java.lang.UnsatisfiedLinkError 複数バージョンのWebSphere MQ に対しバインド接続をした場合に発生します。 バインド接続するWebSphere MQを1つにしてください。もしくは、クライアント接続を使用してください。