9.197 SND_TO_DATA_QUEUE
注意: 9.1 組み込み関数の規則 利用オプション
作業リストの1つ以上の項目をIBM i またはWindowsのエミュレートされたデータ待ち行列に配置します。データ待ち行列の詳細については、IBMのマニュアルを参照してください。
注:この組み込み関数は、IBM i またはWindowsオペレーティング・システムの完全な制御下で実行されるアプリケーションでのみ使用してください。
引数
番号
|
タイプ
|
必須/任意
|
記述
|
最小長
|
最大長
|
最小小数桁数
|
最大小数桁数
|
1
|
A
|
必須
|
データ待ち行列の名前を指定するまたは含むリテラルまたは変数
この名前は、IBM i オブジェクト命名規則に従っていなければなりません。命名規則に従っているかどうかは、組み込み関数によってチェックされません。
|
1
|
10
|
|
|
2
|
N
|
必須
|
引数3で指定される作業リスト内の1つのエントリー全体のバイト長を指定するまたは含むリテラルまたは変数
|
1
|
5
|
0
|
0
|
3
|
L
|
必須
|
エントリーが指定のデータ待ち行列に送信される作業リストの名前
|
1
|
10
|
|
|
|
戻り値
戻り値はありません。
技術上の注記 - 全般
- 作業リストに複数のエントリーがある場合、すべてのエントリーは、1回の操作で待ち行列に送信されます。例えば、作業リストに20バイトのエントリー長があり、7個のエントリーを含んでいる場合、データ待ち行列に送信される実際のデータ・レコードの長さは、20×7=140バイトになります。IBM i 環境でIBMによって提供されるCRTDTAQ(データ待ち行列作成)コマンドのMAXLENパラメータを指定する場合、この処理を考慮する必要があります。
- ゼロ(0)エントリーを含むリストが組み込み関数に渡された場合、エラーは発生せず、データ待ち行列にデータは書き込まれません。
- 処理速度を最大にするために、この組み込み関数によって重要なチェックは実行されません。長さまたはデータ・タイプにエラーがある場合、エラー情報の詳細分析が必要な障害が発生する可能性があります。
- この組み込み関数によってアクセスするデータ待ち行列のバックアップ、復元、および保守は、完全にユーザーに責任があります。
- データ待ち行列は永続オブジェクトですが、システム障害時にデータ内容が失われたり、破損したりする可能性があります。
- データ待ち行列には、格納できる情報量に制限があります。通常、待ち行列に含まれるデータは、どの時点でも16MB以下にする必要があります。
技術上の注記 - IBM i オペレーティング・システム
- データ待ち行列は、IBMによって提供されるCRTDTAQ(データ待ち行列作成)コマンドを使用して作成する必要があります。
- データ待ち行列は、IBMによって提供されるAPI QCLRDTAQコマンドを使用してクリアすることができます。
- データ待ち行列は、IBMによって提供されるDLTDTAQ(データ待ち行列削除)コマンドを使用して削除することができます。
- データ待ち行列は、ジョブの現在のライブラリ・リストで検出できる必要があります。設計手順の向上のため、完全修飾ライブラリ名/待ち行列名はサポートされません。
技術上の注記 - Windowsオペレーティング・システム
- データ待ち行列は、そのデータ待ち行列が参照されるときに自動的に作成されます。
- データ待ち行列は、データ待ち行列のデータを格納するためのファイルを削除することによって、クリアすることができます。待ち行列は、次回その待ち行列が参照されるときに自動的に(再度)作成されます。
- データ待ち行列は、データ待ち行列のデータを格納するためのファイルおよびデータ待ち行列のロックを制御するためのファイルを削除することによって、削除することができます。
- データ待ち行列は、通常のWindowsファイルに格納されます。
- データ待ち行列のストレージ・ファイル名は、データ待ち行列名を8文字に変換したものです。変換プロセスでは、10文字のLANSAプロセス名を8.3文字のフォーマットされたDLL名に変換するために使用されるアルゴリズムと同じアルゴリズムを使用します。
- データ待ち行列のストレージ・ファイルには、.EDQ(エミュレートされたデータ待ち行列の場合)と.LDQ(ロック・データ待ち行列の場合)という接尾辞が追加されます。.LDQファイルは、ファンクションが待ち行列からの受け取り操作を何度か試行した場合のみ作成されます。
- .EDQファイルには、実際の待ち行列データを格納します。このファイル内のスペースは、待ち行列のエントリーが削除されると再使用されます。したがって、このファイルのサイズは上限基準点を示します。
- .LDQファイルは、受け取り操作中にデータ待ち行列を論理的にロックするために使用されます。このファイルは、必要に応じて自動的に(再度)作成されるため、いつでも削除することができます。
- デフォルトでは、データ待ち行列のストレージ・ファイルは、現在のLANSA環境の<ドライブ>:\x_win95\x_lansa\x_pppディレクトリ(ここで、pppは操作を示します)に作成されます。
- データ待ち行列のストレージ・ファイルの場所は、X_RUNコマンドのDPTH=パラメータを使用することによって管理することができます。例えば、DPTH=c:\tempを指定すると、すべてのデータ待ち行列はc:\tempディレクトリに作成され、このディレクトリでアクセスされます。
- DPTH=パラメータの値は、SET_SESSION_VALUE組み込み関数を使用することによって、アプリケーションで動的に変更することができます。
- すべてのデータ待ち行列のアクセスを代替ディレクトリに1度だけ転送する以外の目的でDPTH=パラメータを使用しないでください。複数の異なるディレクトリで1つのデータ待ち行列名の多数のインスタンスを使用する複雑な設計は避けるべきです。(IBM i の完全修飾ライブラリ名/待ち行列名がサポートされないのと理由と同じです。)
例
以下の例では、画面パネルから1つの顧客番号と部品番号を受け取り、このデータをPICKLISTというデータ待ち行列に配置します。
DEF_LIST NAME(#PICK) FIELDS(#CUSTNO #PARTNO) TYPE(*WORKING)
ENTRYS(1)
(where #CUSTNO is defined in the dictionary as a signed 5,0 number and #PARTNO is defined in the dictionary as a packed 7,0 number)
REQUEST FIELDS(#CUSTNO #PARTNO)
INZ_LIST NAMED(#PICK) NUM_ENTRYS(1)
USE BUILTIN(SND_TO_DATA_QUEUE) WITH_ARGS('PICKLIST' 9 #PICK)
以下の例では、画面パネルから5つの顧客番号と部品番号を受け取り、このデータを5つの個別のデータ待ち行列エントリーとしてPICKLISTというデータ待ち行列に配置します。
DEF_LIST NAME(#PICK) FIELDS(#CUSTNO #PARTNO) TYPE(*WORKING) ENTRYS(1)
BEGIN_LOOP FROM(1) TO(5)
REQUEST FIELDS(#CUSTNO #PARTNO)
INZ_LIST NAMED(#PICK) NUM_ENTRYS(1)
USE BUILTIN(SND_TO_DATA_QUEUE) WITH_ARGS ('PICKLIST' 9 #PICK)
END_LOOP
以下の例では、画面パネルから5つの顧客番号と部品番号を受け取り、このデータを1つのデータ待ち行列エントリーとしてPICKLISTというデータ待ち行列に配置します。
DEF_LIST NAME(#PICK) FIELDS(#CUSTNO #PARTNO) TYPE(*WORKING) ENTRYS(5)
CLR_LIST NAMED(#PICK)
BEGIN_LOOP FROM(1) TO(5)
REQUEST FIELDS(#CUSTNO #PARTNO)
ADD_ENTRY TO_LIST(#PICK)
END_LOOP
USE BUILTIN(SND_TO_DATA_QUEUE) WITH_ARGS('PICKLIST' 9 #PICK)