CL

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

データ待ち行列( *DTAQ ) と良く似たオブジェクトとしてユーザー待ち行列( *USRQ ) というものがある。
データ待ち行列( *DTAQ ) と ユーザー待ち行列( *USRQ )は、待ち行列という点では機能はほぼ同じであるが
*DTAQ が物理的に存在しているのに比べて *USRQ はメモリ空間として配置されている。
このため *USRQ は入出力パフォーマンスに非常に優れている。
ただし *USRQ は、クリヤーの機能は用意されておらず、削除して再作成するしか再編成の方法はない。
これに対して *DTAQ はクリヤーすることもできる。
また *USRQ には CRTUSRQ というコマンドや API も用意されていない。
*USRQ を扱う作業はほとんど MI (マシンインターフェース言語) に頼らざるを得ない。
つまり *USRQ*DTAQ に比べて、機能は優れているものの、どちらかと言うとプロ仕様のオブジェクトと言える。
そこで *DTQ*USRQ の機能に関して比較してみよう。

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

EnterpriseServer は子スレッドとの通信に *USRQ を利用している。
*USRQRPG プログラマーが利用するには困難であるので *USRQ をアクセスできる
サービス・プログラム ( SNDUSRQ, RCVUSRQ ) の公開を予定しているので
利用して頂きたい。