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