Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue 使用の手引


mqtalccha(チャネル定義)

〈このページの構成〉

形式

mqtalccha -c チャネル名
          -y "type = sender|server|receiver|requester|
                     clussdr|clusrcvr|defsnd|defsrv|
                     defrcv|defreq|defcsn"
        〔-j バッチサイズ〕
        〔-q 転送キュー名〕
        〔-m "〔maxmsg = 最大メッセージ長〕
              〔maxseg = 最大セグメントサイズ〕"〕
        〔-w メッセージシーケンス番号の最大値〕
          -g "〔sndbuf = 送信バッファグループ番号〕
              〔rcvbuf = 受信バッファグループ番号〕
              〔buftype = seg|msg〕"
        〔-e "〔medbuf = メッセージ編集出口編集用バッファグループ番号〕
              〔medcnt = メッセージ編集出口編集用バッファ数〕"〕
        〔-i automanualauto2〕
        〔-b "〔bretry = yes|no〕
              〔bretrycnt = 短期確立再試行の回数〕
              〔bretryint = 短期確立再試行の間隔〕
              〔bretrylg = yes|no〕
              〔bretrylgcnt = 長期確立再試行の回数〕
              〔bretrylgint = 長期確立再試行の間隔〕
              〔bretrymcp = yes|no〕"〕
        〔-r "〔{ ipaddr = 自システムのIPアドレス
                | hostname = 自システムのホスト名 }〕
              〔{ portno = 自システムのポート番号
                | servname = 自システムのサービス名 }〕
              〔portnum = 自システムのポート番号使用数〕"〕
        〔-o "{ oipaddr = 相手システムのホストのIPアドレス
              | ohostname = 相手システムのホスト名 }
              { oportno = 相手システムのホストのポート番号
              | oservname = 相手システムのホストのサービス名 }"〕
        〔-v "〔tim1 = チャネル確立応答受信監視タイマ値〕
              〔tim2 = 確認メッセージ受信監視タイマ値〕
              〔tim3 = 継続セグメント受信監視タイマ値〕
              〔tim4 = 転送キュー監視間隔〕
              〔tim4cnt = 転送キュー監視回数〕
              〔dtimefct = yes|no〕
              〔dtim = 切断時間間隔〕
              〔vretry = yes|no〕
              〔htim = ハートビート間隔〕
              〔btim = バッチ終了待ちタイマ値〕
              〔bmtim = バッチ終了待ちタイマ値(ミリ秒)〕
              〔mtim = 継続メッセージ受信監視タイマ値〕"〕
        〔-x "〔sndexdata = '送信出口ユーザデータ'〕
              〔rcvexdata = '受信出口ユーザデータ'〕
              〔metexdata = 'メッセージ編集出口ユーザデータ'〕
              〔scyexdata = 'セキュリティ出口ユーザデータ'〕
              〔sendexit = '送信出口名'〕
              〔rcvexit = '受信出口名'〕
              〔msgexit = 'メッセージ出口名'〕
              〔scyexit = 'セキュリティ出口名'〕"〕
        〔-t "〔tcpsndbuf = TCP/IP出力用バッファサイズ〕
              〔tcprcvbuf = TCP/IP入力用バッファサイズ〕
              〔tretrycnt = TCP/IP確立確認の回数〕
              〔tretryint = TCP/IP確立確認の間隔〕"〕
        〔-d "〔cnvccsid = 変換後CCSID〕"〕
        〔-s "〔npmspeed = normal|fast〕"〕
        〔-z timeevent〕
        〔-a "〔cluster = クラスタ名〕"〕
        〔-p "〔netprty = ネットワーク接続優先順位〕"〕
        〔-f "adoptchk = off|name|qmgr|ipaddr|all"〕
        〔-h '注釈'〕
        〔-mc "〔mcauser = 'MCAユーザID'〕
               〔mcatype = process|thread〕"〕
        〔-jn "〔sndjnl = flush|noflush〕"〕

機能

MQTサーバのチャネルについての情報を定義します。

オプション

● -c チャネル名

 〜<1〜20文字のMQ文字列>

チャネル名を指定します。

ほかのmqtalccha定義コマンドの-cオプションで指定するチャネル名と重複して指定できません。また,相手システムの対応するチャネル定義に指定されたチャネル名と同じ名称を指定してください。ほかのMQTプロセスのmqtalccha定義コマンドの-cオプションで指定したチャネル名と重複した場合には,動作を保証しません。

● -y

(オペランド)

type=sender|server|receiver|requester|clussdr|clusrcvr|defsnd|defsrv|defrcv|defreq|defcsn

チャネルタイプを指定します。

sender:センダ

server:サーバ

receiver:レシーバ

requester:リクエスタ

clussdr:クラスタセンダ

clusrcvr:クラスタレシーバ

defsnd:デフォルトセンダ

defsrv:デフォルトサーバ

defrcv:デフォルトレシーバ

defreq:デフォルトリクエスタ

defcsn:デフォルトクラスタセンダ

TCP定義でmqttcp定義コマンドを指定している場合は,sender,server,receiver,requester,defsnd,defsrv,defrcv,およびdefreqを指定できます。TCP定義でmqttcpcs定義コマンドを指定している場合は,clussdrおよびdefcsnを指定できます。TCP定義でmqttcpcr定義コマンドを指定している場合は,clusrcvrを指定できます。

● -j バッチサイズ

 〜<符号なし整数>((1〜9999))

チャネルタイプがsender,server,receiver,またはrequesterの場合《1》

チャネルタイプがclussdrまたはclusrcvrの場合《50》

バッチサイズを指定します。バッチサイズとして扱うユーザアプリケーションメッセージの個数を指定します。チャネル確立時の相手システムのMCAとのネゴシエーションによって,この指定値より小さくなることがあります。

注意事項
  • ネゴシエーション時の自動定義クラスタセンダチャネルのバッチサイズはmqamqtnam定義コマンド-bオプション指定値および事前定義クラスタセンダチャネルに指定したバッチサイズに依存します。詳細については,この章の「チャネルのネゴシエーション」を参照してください。

  • 接続先のクラスタレシーバチャネルのバッチサイズが50よりも大きく,かつ自システムの自動定義クラスタセンダチャネルのバッチサイズを50よりも大きな値で動作させる場合は,クラスタセンダチャネルのデフォルトチャネル定義でバッチサイズを指定してください。デフォルトチャネル定義を使用しない場合は,自動定義クラスタセンダチャネルのバッチサイズの上限は50です。

● -q 転送キュー名

 〜<1〜48文字のMQ文字列>

転送キュー名を指定します。mqaremque定義コマンドの-xオプション(転送キュー名)で指定した転送キューを指定してください。この名称の先頭または途中に空白を指定できません。また,ほかのmqtalccha定義コマンドで指定する転送キュー名と重複して指定できません。

-y typeオペランドがsenderまたはserverの場合,この指定値は省略できません。また,ほかのmqtalccha定義コマンドの-qオプション(転送キュー名)で指定した名称と重複して指定できません。

-y typeオペランドがclussdrまたはclusrcvrの場合,このオプションは指定できません。転送キュー名としてSYSTEM.CLUSTER.TRANSMIT.QUEUEを使用して動作します。

● -m

(オペランド)

maxmsg=最大メッセージ長

 〜<符号なし整数>((1024〜127996000))(単位:バイト)

最大メッセージ長を指定します。

これは,ユーザアプリケーションメッセージの最大値です。チャネル確立時の相手システムのMCAとのネゴシエーションによって,この指定値より小さくなることがあります。

省略した場合,次に示す値が設定されます。

  • -y type=sender,server,またはclussdrの場合

    -g sndbufオペランドで指定したバッファグループのバッファサイズ(ただし,-g buftypeオペランドがsegの場合は,127996000)

  • -y type=receiver,requester,またはclusrcvrの場合

    -g rcvbufオペランドで指定したバッファグループのバッファサイズ(ただし,-g buftypeオペランドがsegの場合は,127996000)

maxseg=最大セグメントサイズ

 〜<符号なし整数>((1024〜1073741824))(単位:バイト)

最大セグメントサイズを指定します。

mqttbuf定義コマンドの-g lengthオペランドで指定したバッファ長以下の値を指定してください。

省略した場合,次に示す値が設定されます。

  • -y type=sender,またはserverの場合

    -g sndbufオペランドで指定したバッファグループのバッファサイズ

  • -y type=clussdrの場合

    8192(ただし,-g sndbufオペランドで指定したバッファグループのバッファサイズが8192よりも小さい場合は,バッファグループのバッファサイズが設定されます)

  • -y type=receiver,またはrequesterの場合

    -g rcvbufオペランドで指定したバッファグループのバッファサイズ

  • -y type=clusrcvrの場合

    8192(ただし,-g rcvbufオペランドで指定したバッファグループのバッファサイズが8192よりも小さい場合は,バッファグループのバッファサイズが設定されます)

  • -g buftypeオペランドで,msgを指定した場合は,このオペランドに指定した値のローカルメモリを必要とします。

● -w メッセージシーケンス番号の最大値

 〜<符号なし整数>((100〜999999999))《999999999》

メッセージシーケンス番号の最大値を指定します。

メッセージシーケンス番号は,この指定値を超えると,1に戻ります。

メッセージシーケンス番号の最大値は,相手システムと同じ値を指定してください。

● -g

(オペランド)

sndbuf=送信バッファグループ番号

 〜<符号なし整数>((1〜512))

メッセージ送信用のバッファグループ番号を指定します。

mqttbuf定義コマンドの-g groupnoオペランドで指定したバッファグループ番号を指定します。

rcvbuf=受信バッファグループ番号

 〜<符号なし整数>((1〜512))

メッセージ受信用のバッファグループ番号を指定します。

mqttbuf定義コマンドの-g groupnoオペランドで指定したバッファグループ番号を指定します。

-y typeオペランドでclusrcvrを指定した場合,mqttbuf定義コマンドにclussdrと接続するチャネル数分のバッファ数を用意してください。

buftype=seg|msg

 〜《msg》

バッファ方式を指定します。

seg:セグメント方式

msg:メッセージ方式

セグメント方式を指定した場合,転送セグメント単位でメッセージが格納され,取り出し/送信,受信/登録が実行されます。この方式では,MCAで使用するメモリ量を抑えられるのが利点です。しかし,マルチキャスト機能,およびメッセージ編集出口UOCによるファイル転送機能を使用できません。また,sndbuf,rcvbufオペランドに指定するバッファグループのバッファ長は,-m maxsegオペランドに指定する値以上にする必要があります。

メッセージ方式を指定した場合,メッセージ全体で取り出し/送信,受信/登録が実行されます。この方式を選んだ場合,マルチキャスト機能,およびメッセージ編集出口UOCによるファイル転送機能を使用できます。しかし,MCAで使用するメモリ量がセグメント方式より大きくなります。また,sndbuf,rcvbufオペランドに指定するバッファグループのバッファ長は,-m maxmsgオペランドに指定する値以上にする必要があります。

● -e

(オペランド)

medbuf=メッセージ編集出口編集用バッファグループ番号

 〜<符号なし整数>((1〜512))

メッセージ編集出口UOCで使用する編集用バッファグループ番号を指定します。

このオペランドには,mqttbuf定義コマンドの-g groupnoオペランドに指定したバッファグループ番号を指定してください。

medcnt=メッセージ編集出口編集用バッファ数

 〜<符号なし整数>((1〜65535))

メッセージ編集出口UOCに引き渡すバッファ数を指定します。

このオペランドには,mqttbuf定義コマンドの-g countオペランドに指定したバッファ数以下の値を指定してください。

また,複数のチャネルが同時に同一バッファグループを使用する場合,mqttbuf定義コマンドで,同時に動作するチャネル数分のバッファ数を用意する必要があります。

● -i auto|manual|auto2

チャネルタイプがsender,server,receiver,またはrequesterの場合《manual》

チャネルタイプがclussdr,またはclusrcvrの場合《auto》

MQTサーバの開始時,再開始時,またはクラスタ環境で自動的にチャネルを作成する場合,チャネルを自動的に確立するかどうかを指定します。

・auto

チャネル状態は「チャネル停止」から始まります。トリガ起動またはネットワークリクエストによって,チャネルを自動的に開始します。

・manual

チャネル状態は「チャネル使用不可」から始まります。トリガ起動またはネットワークリクエストによるチャネルの自動開始は行いません。チャネルを開始するにはmqtstachaコマンドを入力する必要があります。

システムの運用上,チャネルを自動的に開始してはいけない場合,必ずmanualを指定してください。

・auto2

MQTサーバのサービス開始直後に,自動的にチャネル確立処理が行われます。この値は,センダ,サーバ,リクエスタおよびクラスタセンダに指定できます。

注意事項

自動定義クラスタセンダチャネルの場合は,次に示す値が設定されます。

  • デフォルトチャネル定義を使用しない場合

    すべての自動定義クラスタセンダチャネルにautoが設定されます。

  • デフォルトチャネル定義を使用する場合

    すべての自動定義クラスタセンダチャネルに,事前定義クラスタセンダチャネルのデフォルトチャネル定義の-iオプションに指定した値が設定されます。

● -b

(オペランド)

bretry=yes|no

 〜《yes》

チャネルに通信障害が発生した場合に短期確立再試行を実行するかどうかを指定します。

yes:短期確立再試行を実行します。

no:短期確立再試行を実行しません。

ただし,-oオプションを省略した場合,このオペランドの指定は無効になります。

bretrycnt=短期確立再試行の回数

 〜<符号なし整数>((1〜999999999))《10》(単位:回)

短期確立再試行を実行する回数を指定します。

なお,このオプションのbretryオペランドにnoを指定した場合,このオペランドの指定は無効になります。

bretryint=短期確立再試行の間隔

 〜<符号なし整数>((0〜999999999))《60》(単位:秒)

短期確立再試行の時間間隔を指定します。0を指定した場合,障害が発生したつどに短期確立再試行を実行します。

なお,このオプションのbretryオペランドにnoを指定した場合,このオペランドの指定は無効になります。

bretrylg=yes|no

 〜《yes》

チャネルに通信障害が発生した場合に長期確立再試行を実行するかどうかを指定します。

yes:長期確立再試行を実行します。

no:長期確立再試行を実行しません。

ただし,-oオプションを省略した場合,このオペランドの指定は無効になります。

bretrylgcnt=長期確立再試行の回数

 〜<符号なし整数>((1〜999999999))《999999999》(単位:回)

長期確立再試行を実行する回数を指定します。

なお,このオプションのbretrylgオペランドにnoを指定した場合,このオペランドの指定は無効になります。

bretrylgint=長期確立再試行の間隔

 〜<符号なし整数>((0〜999999999))《1200》(単位:秒)

長期確立再試行の時間間隔を指定します。0を指定した場合,障害が発生したつどに長期確立再試行を実行します。

なお,このオプションのbretrylgオペランドにnoを指定した場合,このオペランドの指定は無効になります。

チャネルトリガを起動する場合,通信相手システムの起動状態によってイニシエーションキューが満杯になることがあります。そこで余分なトリガメッセージを発生させないために,次に示す計算式に従って時間間隔を指定してください。

チャネル確立再試行間隔
(mqtalccha定義コマンドの-b bretryintオペランド指定値)
    ≧トリガ起動チャネル数 × 10
bretrymcp=yes|no

 〜《yes》

MQプロトコルで検出したエラーに対して,確立再試行を実行するかどうかを指定します。この指定は,-yオプションにsender,server,requester,またはclussdrを指定し,-bオプションのbretryオペランドまたはbretrylgオペランドにyesを指定した場合に有効です。指定値がyesの場合,およびnoの場合の詳細について次に説明します。

  • yes

    MQプロトコルで検出した障害に対して,確立再試行を実行します。

  • no

    MQプロトコルで検出した障害に対して,確立再試行を実行しません。

    注意事項

    -bオプションにbretrymcp = yesを指定し,次に示す条件が重なった場合,相手チャネルがコネクションを切断して再接続します(自チャネルは「リトライ中」になります)。このため,チャネルの状態の不一致が発生してチャネルを確立できません。この現象を回避するには,-fオプションのadoptchkオペランドにoff以外を指定し,相手チャネルからの再接続要求を受け入れるようにしてください。

    • 条件1:-yオプションのtypeオペランドにrequesterが指定された

    • 条件2:接続相手チャネルがsenderである

    • 条件3:自チャネル(requester)がコーラになる

● -r

(オペランド)

ipaddr=自システムのIPアドレス

 〜(nnn.nnn.nnn.nnn)<符号なし整数>((0〜255))

複数のIPアドレスを持つシステムで,IPアドレスを特定する場合に自システムのIPアドレスを指定します。指定形式は,nnn.nnn.nnn.nnnです。nnnの値は,0〜255まで指定できます。nnnの値として先頭に0を指定した場合は,8進数値として扱われます。IPアドレスの形式を次に示します。

[図データ]

このオペランドを省略して,かつIPアドレスを特定する場合は,hostnameオペランドを指定してください。また,ホスト名ファイル,またはネームサーバにホスト名を登録してください。

hostname=自システムのホスト名

 〜<1〜255バイトの文字列>

複数のIPアドレスを持つシステムで,IPアドレスを特定する場合に自システムのホスト名を指定します。自ホストのホスト名は,ホスト名ファイル,またはネームサーバなどに登録してください。

ipaddrオペランドを指定する場合,またはIPアドレスを特定する必要がない場合は省略できます。

注意事項

ipaddrオペランドとhostnameオペランドの両方を指定する場合は,ipaddrオペランドの指定値が優先されます。

次に示す場合,どちらかのオペランドを指定してください。

  • -y typeオペランドにrequester,sender,server,またはclussdrを指定し,かつ相手ホストに対してIPアドレスを固定に持つ場合

  • -y typeオペランドがclusrcvrの場合

ipaddrオペランドとhostnameオペランドの指定の有無には関係なく,ipaddrオペランドまたはhostnameオペランドのどちらかを指定できます。

portno=自システムのポート番号

 〜<符号なし整数>((1024〜65535))

自システムのポート番号を指定します。

servnameオペランドを指定した場合,この指定値は省略できます。

servname=自システムのサービス名

 〜<1〜32文字の識別子(ハイフン(-)含む)>

自システムのサービス名を指定します。このサービス名は,サービス名ファイルで登録されている必要があります。

サービス名は,次に示す形式で指定します。

[図データ]

portnoオペランドを指定した場合,この指定値は省略できます。

portnum=自システムのポート番号使用数

 〜<符号なし整数>((1〜64512))《1》

自システムのポート番号使用数を指定します。

自ポートの割り当てが行われる範囲を指定する場合に,ポート番号の使用数を指定します。

注意事項
  • portnoオペランドとservnameオペランドの両方を指定する場合は,portnoオペランドの指定値が優先されます。

  • -y typeオペランドにrequester,sender,server,またはclussdrを指定し,かつ相手ホストに対してIPアドレスを固定に持つ場合,portnoオペランドまたはservnameオペランドを指定してください。

  • -y typeオペランドにclusrcvrを指定する場合,mqttcpcr定義コマンドの-rオプションに指定したサービス名またはポート番号を使用するため指定する必要はありません。

  • portnoオペランドとservnameオペランドの指定の有無には関係なく,ipaddrオペランドまたはhostnameオペランドのどちらかを指定できます。

  • portnoオペランドにはMQTサーバが動作するシステム内で使用しないポート番号(OSが自動割り当てするポート番号の範囲外で,かつほかのプログラムが使用しない番号)を指定してください。

    servnameオペランドにはMQTサーバが動作するシステム内で使用しないサービス名(サービス名に関連づけられたポート番号を考慮)を指定してください。

    -rオプションで指定したポート番号またはサービス名に関連づけられたポート番号が,ほかの通信プログラムで使われている状態でMQTサーバを起動すると,通信障害(TCP/IPエラー,不正データ受信)になることがあります。なお,ポート番号には,OSが自動割り当てする番号があります。OSが自動割り当てするポート番号は,OSの種別やOSのバージョンなどによって異なります。詳細は,OSのマニュアルを参照してください。

  • 割り当てを試行するポート番号の範囲を指定する場合は,servnameオペランドまたはportnoオペランドのどちらか一方とともにportnumオペランドを指定してください。servnameオペランド指定値から変換したポート番号またはportnoオペランド指定値のポート番号から自ポートの割り当てが開始され,成功するまで最大portnumオペランド指定値分の処理が試行されます。割り当てを試行するポート番号が65535を超える場合は,65535で試行は中止されます。

  • コーラ側チャネルの自システムのポート番号をportnoオペランドに指定(またはservnameオペランドを指定)すると,チャネル解放時に一定時間,TCP/IPの資源が解放されないことがあります(TCP/IPの仕様)。このためチャネル解放直後にチャネルを確立すると,TCP/IPとのインタフェースで障害を検出します。この場合は,チャネルの確立再試行によってチャネルを再確立するか,portnumオペランドを設定してください。

● -o

(オペランド)

このオペランドの指定値は,チャネル属性の変更コマンド(mqtaltchaコマンドの-l tempオペランド指定)を使用するとTP1/Message Queueの終了まで変更属性を保持します。チャネル属性の変更コマンド(mqtaltchaコマンドの-l permオペランド指定)を使用するとチャネル属性の変更コマンド(mqtaltchaコマンドの-l tempオペランド指定)を実行するまで,変更属性を保持します。なお,チャネル管理情報ファイルを使用しない場合は,TP1/Message Queueの終了まで変更属性を保持します。

注意事項

事前定義クラスタセンダチャネルの場合,参加するクラスタのフルリポジトリキューマネジャに接続するように-oオプションを指定してください。参加するクラスタ内に複数のフルリポジトリキューマネジャがある場合は,最低一つの事前定義クラスタセンダチャネル定義があれば十分です(必要に応じて自動定義クラスタセンダチャネルをシステムが自動的に作成します)。どのフルリポジトリキューマネジャに接続してもかまいません。

oipaddr=相手システムのホストのIPアドレス

 〜(nnn.nnn.nnn.nnn)<符号なし整数>((0〜255))

相手システムのIPアドレスを指定します。nnnの値は,0〜255まで指定できます。nnnの値として先頭に0を指定した場合は,8進数値として扱われます。

ホスト名ファイルに相手システムのホスト名を登録し,ohostnameオペランドを指定した場合,このオペランドは省略できます。

ohostname=相手システムのホスト名

 〜<1〜255バイトの文字列>

相手システムのホスト名を指定します。このホスト名は,ホスト名ファイル,ネームサーバなどに登録されている必要があります。

oipaddrオペランドを指定する場合,このオペランドは省略できます。

注意事項

oipaddrオペランドとohostnameオペランドの両方を指定する場合は,oipaddrオペランドの指定値が優先されます。次に示す場合,どちらかのオペランドを指定してください。

  • -y typeオペランドがsenderまたはclussdrの場合

  • -y typeオペランドがserverまたはrequesterの場合で,かつ,チャネル確立属性がコーラの場合

-y typeオペランドにclussdrを指定する場合,このオプションで指定する接続先のキューマネジャはリポジトリキューマネジャである必要があります。

oportno=相手システムのホストのポート番号

 〜<符号なし整数>((1024〜65535))

相手システムのホストのポート番号を指定します。

oservnameオペランドを指定した場合,この指定値は省略できます。

oservname=相手システムのホストのサービス名

 〜<1〜32文字の識別子(ハイフン(-)含む)>

相手システムのホストのサービス名を指定します。このサービス名は,サービス名ファイルで登録されている必要があります。

oportnoオペランドを指定した場合,この指定値は省略できます。

注意事項

oportnoオペランドとoservnameオペランドの両方を指定する場合は,oportnoオペランドの指定値が優先されます。次に示す場合,どちらかのオペランドを指定してください。

  • -y typeオペランドがsenderまたはclussdrの場合

  • -y typeオペランドがserverまたはrequesterの場合で,かつ,チャネル確立属性がコーラの場合

-y typeオペランドにclussdrを指定する場合,このオプションで指定する接続先のキューマネジャはリポジトリキューマネジャにする必要があります。

● -v

(オペランド)

tim1=チャネル確立応答受信監視タイマ値

 〜<符号なし整数>((0〜8191))《30》(単位:秒)

開始要求応答受信監視タイマ値を指定します。0を指定した場合,監視されません。

tim2=確認メッセージ受信監視タイマ値

 〜<符号なし整数>((0〜8191))

チャネルタイプがsenderまたはserverの場合《10》

チャネルタイプがclussdrの場合《30》(単位:秒)

確認メッセージ受信監視タイマ値を指定します。0を指定した場合,監視されません。

tim3=継続セグメント受信監視タイマ値

 〜<符号なし整数>((0〜8191))

チャネルタイプがreceiverまたはrequesterの場合《10》

チャネルタイプがclusrcvrの場合《30》(単位:秒)

継続セグメント受信監視タイマ値を指定します。0を指定した場合,監視されません。

tim4=転送キュー監視間隔

 〜<符号なし整数>((0〜8191))《60》(単位:秒)

転送キュー監視間隔を指定します。0を指定した場合,転送キューは監視されません。

tim4cnt=転送キュー監視回数

 〜<符号なし整数>((0〜2147483647))《1》(単位:回)

転送キューを監視する回数を指定します。

このオペランドに0を指定した場合,チャネルを確立したまま,転送キューは無限に監視されます。

tim4オペランドで0が指定された場合,転送キューは監視されないですぐに終了します。

dtimefct=yes|no

 〜《yes》

切断時間間隔(dtimオペランド指定値)の間,イベント方式による転送キュー監視をするかどうかを指定します。このオペランドを省略した場合は転送キュー監視をします。noを指定した場合,転送キューにメッセージがないことを検知するとチャネルを終了します。この指定値は送信側MCAがイベント方式(mqtalccha定義コマンドの-zオプションにeventを指定)による転送キュー監視をする場合に有効です。

-y typeオペランドがclussdrまたはclusrcvrの場合,このオペランドは指定できません。切断時間間隔の間,イベント方式による転送キュー監視を使用して動作します。

dtim=切断時間間隔

 〜<符号なし整数>((0〜999999))

チャネルタイプがsender,またはserverの場合《60》

チャネルタイプがclussdr,またはclusrcvrの場合《6000》(単位:秒)

切断時間間隔を指定します。バッチで送達確認を送信したあと,この時間の間,転送キューへのメッセージ登録を待ちます。タイムアウトするとチャネルを終了します。このオペランドに0を指定した場合,転送キューにメッセージが登録されるまで無限に待ちます。この指定値は送信側MCAがイベント方式(mqtalccha定義コマンドの-zオプションにeventを指定)による転送キュー監視をする場合に,切断時間監視の有無指定(dtimefctオペランド)がyesのとき有効です。

vretry=yes|no

 〜《yes》

コーラ側MCAで時間監視障害が発生した場合に,チャネル確立の再試行を実行するかどうかを指定します。

 yes:時間監視障害時にチャネル確立の再試行を実行します。

 no:時間監視障害時にチャネル確立の再試行を実行しません。

チャネル確立の再試行は,-bオプションの指定値に従います。-bオプションのbretryオペランドまたはbretrylgオペランドにyesを指定した場合に有効です。

時間監視障害については,「2.3.7 チャネル確立再試行」を参照してください。

htim=ハートビート間隔

 〜<符号なし整数>((0〜999999))《300》(単位:秒)

送信側MCAの切断時間間隔中のハートビートメッセージによる確認動作を実行する場合のハートビート間隔を指定します。

このオペランドに0を指定した場合,送信側チャネルの切断時間間隔(MQTでは,tim4×tim4cntまたはdtim)中のハートビートメッセージによる確認動作は実行されません。

btim=バッチ終了待ちタイマ値

 〜<符号なし整数>((0〜999999))《0》(単位:秒)

バッチ終了待ちタイマ(バッチインターバル)の秒以上の値を指定します。

btimオペランド指定値とbmtimオペランド指定値の和の時間がバッチ終了待ちタイマとなります。

この指定値は,送信側MCAがイベント方式(-zオプションにeventを指定)による転送キュー監視をする場合に有効です。

bmtim=バッチ終了待ちタイマ値(ミリ秒)

 〜<符号なし整数>((0〜999))《0》(単位:ミリ秒)

バッチ終了待ちタイマ(バッチインターバル)のミリ秒の値を指定します。btimオペランド指定値とbmtimオペランド指定値の和の時間がバッチ終了待ちタイマとなります。

この指定値は,送信側MCAがイベント方式(-zオプションにeventを指定)による転送キュー監視をする場合に有効です。

送信中のバッチがバッチサイズに満たない場合,btimオペランド指定値とbmtimオペランド指定値の和の時間まで転送キューへのメッセージ登録を待ちます。

btimオペランドとbmtimオペランドに同時に0を指定した場合,または省略した場合,バッチサイズに満たないバッチを即座に終了します。

15ms未満の値を指定する場合は,一つのMQTサーバに一つのチャネルを定義することをお勧めします。複数のチャネルを定義したとき,定義した値で動作できないことがあります。

mtim=継続メッセージ受信監視タイマ値

 〜<符号なし整数>((0〜999999))《tim3オペランドの指定値》(単位:秒)

継続メッセージ受信監視タイマを指定します。受信中のバッチ内のメッセージ受信後,次のメッセージを受信するまでを監視します。このオペランドを省略した場合,tim3オペランドの指定値を使用します。送信側MCAのバッチ終了待ちタイマ(バッチインターバル)より大きな値を指定してください。なお,このオペランドに0を指定した場合,継続メッセージの受信監視はされません。

● -x

(オペランド)

sndexdata='送信出口ユーザデータ'

 〜<1〜32バイトの文字列>《32バイトのスペース文字》

送信出口に渡すユーザデータを指定します。

クラスタレシーバだけ指定できます。この指定で接続する相手がIBM MQの場合は,クラスタセンダチャネル動作時に送信出口ユーザデータ(SENDDATA)として扱われます。接続する相手がTP1/Message Queue(クラスタセンダ)の場合,および自システムのクラスタレシーバでは,この定義を使用しません。

rcvexdata='受信出口ユーザデータ'

 〜<1〜32バイトの文字列>《32バイトのスペース文字》

受信出口に渡すユーザデータを指定します。

クラスタレシーバだけ指定できます。この指定で接続する相手がIBM MQの場合は,クラスタセンダチャネル動作時に受信出口ユーザデータ(RCVDATA)として扱われます。接続する相手がTP1/Message Queue(クラスタセンダ)の場合,および自システムのクラスタレシーバでは,この定義を使用しません。

metexdata='メッセージ編集出口ユーザデータ'

 〜<1〜32バイトの文字列>《32バイトのスペース文字》

メッセージ編集出口UOCに渡すユーザデータを指定します。

すべてのチャネルタイプで指定できます。クラスタレシーバで,この指定で接続する相手がIBM MQの場合は,クラスタセンダチャネル動作時にメッセージ出口ユーザデータ(MSGDATA)として扱われます。接続する相手がTP1/Message Queue(クラスタセンダ)の場合,クラスタセンダチャネル動作時にメッセージ編集出口ユーザデータ(metexdata)として扱われます。自システムでは,チャネル動作時にメッセージ編集出口ユーザデータ(metexdata)として扱われます。

scyexdata='セキュリティ出口ユーザデータ'

 〜<1〜32バイトの文字列>《32バイトのスペース文字》

セキュリティ出口に渡すユーザデータを指定します。

クラスタレシーバだけ指定できます。この指定で接続する相手がIBM MQの場合は,クラスタセンダチャネル動作時にセキュリティ出口ユーザデータ(SCYDATA)として扱われます。接続する相手がTP1/Message Queue(クラスタセンダ)の場合,および自システムのクラスタレシーバでは,この定義を使用しません。

sendexit='送信出口名'

 〜<1〜128バイトの文字列>《128バイトのスペース文字》

チャネル送信出口名を指定します。

クラスタレシーバだけ指定できます。この指定で接続する相手がIBM MQの場合は,クラスタセンダチャネル動作時に送信出口名(SENDEXIT)として扱われます。接続する相手がTP1/Message Queue(クラスタセンダ)の場合,および自システムのクラスタレシーバでは,この定義を使用しません。

rcvexit='受信出口名'

 〜<1〜128バイトの文字列>《128バイトのスペース文字》

チャネル受信出口名を指定します。

クラスタレシーバだけ指定できます。この指定で接続する相手がIBM MQの場合は,クラスタセンダチャネル動作時に受信出口名(RCVEXIT)として扱われます。接続する相手がTP1/Message Queue(クラスタセンダ)の場合,および自システムのクラスタレシーバでは,この定義を使用しません。

msgexit='メッセージ出口名'

 〜<1〜128バイトの文字列>《128バイトのスペース文字》

チャネルメッセージ出口名を指定します。

クラスタレシーバだけ指定できます。この指定で接続する相手がIBM MQの場合は,クラスタセンダチャネル動作時にメッセージ出口名(MSGEXIT)として扱われます。接続する相手がTP1/Message Queue(クラスタセンダ)の場合,および自システムでは,この定義を使用しません。

scyexit='セキュリティ出口名'

 〜<1〜128バイトの文字列>《128バイトのスペース文字》

チャネルセキュリティ出口名を指定します。

クラスタレシーバだけ指定できます。この指定で接続する相手がIBM MQの場合は,クラスタセンダチャネル動作時にセキュリティ出口名(SCYEXIT)として扱われます。接続する相手がTP1/Message Queue(クラスタセンダ)の場合,および自システムのクラスタレシーバでは,この定義を使用しません。

これらのオペランドの指定値は,アポストロフィ(')で囲んで指定します。アポストロフィ(')で囲まれた文字列にアポストロフィ(')を指定する場合は,必ず2文字ペアで指定してください。

設定例:metexdata=''abc'defg'

出口ユーザデータには'abc'defgを渡します。

アポストロフィ(')で囲まれた文字列にアポストロフィ(')を指定する場合,出口ユーザデータ内に次に示す文字は指定できません。

タブ(x'09'),スペース(x'20'),引用符(x'22'),コンマ(x'2c'),およびイコール(x'3d')

● -t

(オペランド)

tcpsndbuf=TCP/IP出力用バッファサイズ

 〜<符号なし整数>((1024〜262144))(単位:バイト)

TCP/IP出力用バッファのサイズを指定します。このオペランドが指定されている場合,このオペランドの指定値で,SO_SNDBUFを設定したTCP/IPのsetsockopt関数を発行します。

省略時にはシステムの既定値を使用します。

注意事項
  • 通常はこの定義は省略してください。

  • システムの既定値未満の値を設定した場合,MTUの2倍以下の値は設定しないでください。MTUの2倍以下の値を設定した場合,転送効率に影響が出るおそれがあります。

  • 高速な通信媒体やMTUの大きな通信媒体を使用している場合,この値を大きくすると,通信処理に掛かる時間が改善される可能性があります。

  • システムによっては,TCP/IPのsetsockopt関数が指定バッファサイズをサポートしていない場合があります。この場合,チャネル開始時にMQTがエラーを検出し,チャネルの開始を中断します。システムの指定可能範囲を調査し,指定を変更してください。

  • TCP/IPのバッファやMTUの詳細については,TCP/IPの文献やOSのマニュアルを参照してください。

tcprcvbuf=TCP/IP入力用バッファサイズ

 〜<符号なし整数>((1024〜262144))(単位:バイト)

TCP/IP入力用バッファのサイズを指定します。このオペランドが指定されている場合,このオペランドの指定値で,SO_RCVBUFを設定したTCP/IPのsetsockopt関数を発行します。

省略時にはシステムの既定値を使用します。

注意事項
  • 通常はこの定義は省略してください。

  • システムの既定値未満の値を設定した場合,MTUの2倍以下の値は設定しないでください。MTUの2倍以下の値を設定した場合,転送効率に影響が出るおそれがあります。

  • 高速な通信媒体やMTUの大きな通信媒体を使用している場合,この値を大きくすると,通信処理に掛かる時間が改善される可能性があります。

  • システムによっては,TCP/IPのsetsockopt関数が指定バッファサイズをサポートしていない場合があります。この場合,チャネル開始時にMQTがエラーを検出し,チャネルの開始を中断します。システムの指定可能範囲を調査し,指定を変更してください。

  • TCP/IPのバッファやMTUの詳細については,TCP/IPの文献やOSのマニュアルを参照してください。

tretrycnt=TCP/IP確立確認回数

 〜<符号なし整数>((1〜65535))《10》(単位:回)

TCP/IPコネクションが確立したかどうかを確認する最大回数を指定します。この回数以内にTCP/IPコネクションが確立したと判断できた場合は,チャネルの確立処理を実行します。判断できなかった場合は,TCP/IPインタフェースエラーになりチャネル確立処理は失敗します。

tretryint=TCP/IP確立確認間隔

 〜<符号なし整数>((1〜65535))《1》(単位:秒)

TCP/IPコネクションが確立したかどうかを確認する間隔を指定します。タイマ値の誤差が大きくなり,指定間隔とおりに動作できないことがあるため,基本タイマ値(mqtttim定義コマンドの-t btimオペランド指定値とbmtimオペランド指定値の和)より小さい値を指定しないでください。

● -d

(オペランド)

cnvccsid=変換後CCSID

 〜<符号なし整数>((1〜65535))

アプリケーションから登録されたメッセージを文字コード変換する場合,変換後のCCSIDを指定します。この指定値は,-y typeオペランドがsender,server,clussdr,およびclusrcvrの場合に有効です。

注意事項
  • -dオプションでの文字コード変換が失敗した場合は,メッセージ送信時にKFCA16334-Eメッセージを出力してチャネルを強制解放します。ただし,デッドレターキューが定義されている場合,メッセージは送信側のデッドレターキューに登録され,以降のメッセージ転送は続行されます。

    -dオプションでの文字コード変換が失敗する場合,KFCA16334-Eメッセージの理由コードを参照してください。なお,次の理由コードについては,注意事項があります。

    <MQRC_CONVERTED_MSG_TOO_BIG>の注意事項

    アプリケーションから登録するメッセージの長さは,変換前・変換後共に,次に示す計算式を満たす必要があります。

    ・バッファ方式がメッセージ(-g buftype=msg)の場合

      アプリケーションメッセージ長 ≦ 最大メッセージ長

      −MQXQH構造体長

    ・バッファ方式がセグメント(-g buftype=seg)の場合

      アプリケーションメッセージ長 ≦ 最大セグメント長

      −MQXQH構造体長−プロトコルヘッダ長(48バイト)

    最大メッセージ長は,-mオプションのmaxmsgオペランドに指定した値と,相手システムのメッセージ長の,小さい方の値です。メッセージ長は,MQシステムによって呼称が異なりますので注意してください。

    最大セグメント長は,-mオプションのmaxsegオペランドに指定した値と,相手システムのセグメント長で,どちらか小さい方の値です。セグメント長(送信データの最大長)は,MQシステムによって呼称が異なりますので注意してください。ただし,-gオプションのbuftypeオペランドにmsgを指定した場合は,この注意事項は該当しません。

    <MQRC_TARGET_CCSID_ERROR>の注意事項

    変換後のCCSIDには,コード変換対象となっている文字セット識別子を指定する必要があります。コード変換対象となっている文字セット識別子については,マニュアル「TP1/Message Queue プログラム作成リファレンス」のコード変換対象の文字セット識別子一覧についての記載を参照してください。

  • cnvccsidオペランドの指定方法が誤っている場合,-yオプションの指定値に関係なくエラーメッセージが出力されます。

  • クラスタレシーバにcnvccsidオペランドを指定する場合,相手システムがIBM MQのときクラスタセンダのCONVERT属性はYESになります。相手システムがTP1/Message Queueのときクラスタセンダの属性は変わりません。

  • PCF(プログラマブルコマンドフォーマット)データの転送時は,コード変換(mqtalccha定義コマンドの-dオプションのcnvccsidオペランドに変換後の文字セット識別子を指定)は有効になりません。

● -s

(オペランド)

npmspeed=normal|fast

 〜《fast》

非永続メッセージ転送速度を指定します。

normal:非永続メッセージを永続メッセージと同様に転送します。

fast:非永続メッセージを高速で転送します。

注意事項

次に示す条件をすべて満たす場合は,受信側でキューマネジャによるセグメント分割ができません。KFCA16333-E(キューファイル障害発生。命令名=MQPUT,理由コード=2030)が出力されます。

  • リクエスタ,レシーバまたはクラスタレシーバにnpmspeed=fastを指定しています。また,接続先の送信側チャネルもnpmspeed=fast相当のチャネル属性を持ちます。

  • MQMDE構造体のMsgFlagsフィールドにMQMF_SEGMENTATION_ALLOWEDが指定された非永続メッセージを受信しました。

● -z time|event

 〜《event》

転送キュー監視方式を指定します。

・time:タイマ方式

-v tim4およびtim4cntオペランドによってメッセージの有無を確認して取り出します。システム構築する場合に旧バージョンとの互換性を持たせたいとき,この方式を採用することをお勧めします。

・event:イベント方式

転送キューにメッセージが登録されイベント連絡されるのをdtimオペランドで指定した時間だけ待ちます。また,バッチ終了待ちタイマ(バッチインターバル)の機能を使用できます。なお,新たにシステム構築する場合,この方式を採用することをお勧めします。

● -a

(オペランド)

cluster=クラスタ名

 〜<1〜48文字のMQ文字列>

チャネルが所属するクラスタ名を指定します。

● -p

(オペランド)

netprty=ネットワーク接続優先順位

 〜<符号なし整数>((0〜9))《0》

ネットワーク接続優先順位を指定します。複数の経路が選択できる場合は,優先順位の最高の経路が選択されます。優先順は0が最低,9が最高です。

この指定値は,-yオプションのtypeオペランドがclusrcvrの場合だけ有効です。

● -f

(オペランド)

adoptchk=off|name|qmgr|ipaddr|all

 〜《qmgr》

強制確立確認条件を指定します。

offを指定した場合は,チャネル開始要求を受信したレスポンダチャネルでチャネル状態不一致が発生したときに,開始要求を受け付けません。off以外の値を指定すると,チャネル開始要求を受信したレスポンダチャネルでチャネル状態不一致が発生した場合に,動作しているチャネルを強制終了して開始要求を受け付けます。off以外の値を指定した場合でチャネル開始要求を受信したチャネルがチャネル動作中(RUNNING)またはチャネル解放中(STOPPING)のときは,次のように動作します。

  • name

    チャネルを強制終了して開始要求を受け付けます。

  • qmgr

    チャネルが現在,確立中の相手と同じキューマネジャからのチャネル開始要求を受けた場合にチャネルを強制終了して開始要求を受け付けます。この指定は,相手システムがMQプロトコルレベル4(FAP4)以降をサポートしている場合に有効です。FAP3以下ではチェックしません。

  • ipaddr

    チャネルが現在,確立中の相手と同じIPアドレスからのチャネル開始要求を受けた場合にチャネルを強制終了して開始要求を受け付けます。

  • all

    チャネルが現在,確立中の相手と同じキューマネジャおよびIPアドレスからのチャネル開始要求を受けた場合にチャネルを強制終了して開始要求を受け付けます。この指定は,相手システムがMQプロトコルレベル4(FAP4)以降をサポートしている場合にキューマネジャとIPアドレスの両方をチェックします。FAP3以下ではIPアドレスだけをチェックします。

クラスタレシーバでは,マルチインスタンスをサポートしていて,該当インスタンスを特定するためにキューマネジャ名を必ずチェックする必要があります。このため,確立中での各指定は次の意味を持ちます。

nameまたはqmgrを指定した場合

キューマネジャ名チェックを実行します。

ipaddrまたはallを指定した場合

キューマネジャ名チェック,およびIPアドレスチェックを実行します。

チャネル開始要求の受け付け条件について次に示します。

チェック内容

FAPレベル3以下

FAP4レベル以降(クラスタレシーバ以外)

クラスタレシーバ

name,qmgr

ipaddr,all

name

qmgr

ipaddr

all

name,qmgr

ipaddr,all

チャネル名

キューマネジャ名

IPアドレス

(凡例)

○:チェックします。すべて一致した場合だけ,開始要求を受け付けます。

−:チェックしません。

● -h '注釈'

 〜<1〜64バイトの文字列>《64バイトのスペース文字》

チャネルの注釈を指定します。

このオプションの指定値は,アポストロフィ(')で囲んで指定します。ただし,アポストロフィ(')で囲まれた文字列にアポストロフィ(')は指定できません。

● -mc

(オペランド)

mcauser='MCAユーザID'

 〜<1〜64バイトの文字列>《64バイトのスペース文字》

IBM MQの資源へのアクセスに使用するユーザIDを指定します。

クラスタレシーバだけ指定できます。この指定で接続する相手がIBM MQの場合は,クラスタセンダチャネル動作時にメッセージチャネルエージェントユーザID(MCAUSER)として扱われます。接続する相手がTP1/Message Queue(クラスタセンダ)の場合,および自システムのクラスタレシーバでは,この定義を無視します。詳細についてはIBM MQのマニュアルを参照してください。

このオペランドの指定値は,アポストロフィ(')で囲んで指定します。ただし,アポストロフィ(')で囲まれた文字列にアポストロフィ(')は指定できません。

mcatype=process|thread

 〜《process》

IBM MQのMCAプログラムを,スレッドとプロセスのどちらで実行するかを指定します。

process:MCAは,独立のプロセスとして動作します。

thread:MCAは,独立のスレッドとして動作します。

クラスタレシーバだけ指定できます。この指定で接続する相手がIBM MQの場合は,クラスタセンダチャネル動作時にメッセージチャネルエージェントタイプ(MCATYPE)として扱われます。接続する相手がTP1/Message Queue(クラスタセンダ)の場合,および自システムのクラスタレシーバでは,この定義を無視します。詳細についてはIBM MQのマニュアルを参照してください。

● -jn

(オペランド)

sndjnl=flush|noflush

 〜《flush》

送信チャネルジャーナル出力条件を指定します。

送信チャネルはバッチ転送完了時(送達確認受信時)にジャーナルを取得します。このジャーナルを即時フラッシュ(ディスク出力)するかどうかを指定します。

flush:即時フラッシュ(ディスク出力)します。

noflush:即時フラッシュ(ディスク出力)しません。

このオペランドは,センダ,サーバ,およびクラスタセンダに指定できます。

noflushを指定した場合,ジャーナルをジャーナルバッファにだけ書き込み,ディスク出力は行いません。この場合,ディスク出力はTP1/Server Baseの制御下で実行されます。

ファーストメッセージ機能を使用しない場合,または通常メッセージを送信する場合は,noflushを指定することでディスク出力回数が少なくなり,チャネルの送信時間を短縮できます。

注意事項

noflushを指定した場合,受信側チャネルで受信完了している状態で送達未確認状態のチャネルにmqtrlvcha -a backoutコマンドを実行すると,不正なメッセージが送信されることがあります。チャネルを再度開始するか,または受信側チャネルの状態を確認してからmqtrlvchaコマンドを使用することで送達未確認状態を解決してください。