CL

58. データ待ち行列とユーザー待ち行列

データ待ち行列( *DTAQ ) と良く似たオブジェクトとしてユーザー待ち行列( *USRQ ) というものがある。

データ待ち行列( *DTAQ ) と ユーザー待ち行列( *USRQ )は、待ち行列という点では機能はほぼ同じであるが

*DTAQ が物理的に存在しているのに比べて *USRQ はメモリ空間として配置されている。

このため *USRQ は入出力パフォーマンスに非常に優れている。

ただし *USRQ は、クリヤーの機能は用意されておらず、削除して再作成するしか再編成の方法はない。

これに対して *DTAQ はクリヤーすることもできる。

また *USRQ には CRTUSRQ というコマンドや API も用意されていない。

*USRQ を扱う作業はほとんど MI (マシンインターフェース言語) に頼らざるを得ない。

つまり *USRQ*DTAQ に比べて、機能は優れているものの、どちらかと言うとプロ仕様のオブジェクトと言える。

そこで *DTQ*USRQ の機能に関して比較してみよう。

機能 データ待ち行列(*DTAQ) ユーザー待ち行列(*USRQ)
作成 CMD: CRTDTAQ API: QUSCRTUQ
クリヤー CMD: CLRDTAQ ( なし )
削除 CMD: DLTDTAQ CMD: DLTUSRQ
送信 API: QSNDDTAQ MI: enq
受信 API: QRCVDTAQ MI: deq, deqi

EnterpriseServer は子スレッドとの通信に *USRQ を利用している。

*USRQ を RPG プログラマーが利用するには困難であるので *USRQ をアクセスできる

サービス・プログラム ( SNDUSRQ, RCVUSRQ ) の公開を予定しているので

利用して頂きたい。