データ待ち行列( *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 ) の公開を予定しているので
利用して頂きたい。