3.3.3 JSMX_COMMAND
組み込み関数 JSMX_COMMAND は、サービスをロードおよびアンロードする場合や、サービスでサポートされるコマンドを実行する場合に使用されます。JSMX_COMMANDは、JSMX_OPENが正常に完了してからでないと実行できません。
オプションのフィールド・リスト引数を指定した場合、このリストに定義されたフィールドがロードされたサービスで利用できるようになります。フィールド・リスト引数の指定がない場合、ロードされたサービスで利用できるフィールドはありません。リスト定義のみを使用して、どのフィールドをJSMサービスに送信するかを決める場合、このフィールド・リストにエントリーは必要ありません。
オプションの作業リスト戻り値を指定した場合、その作業リストがロードされたサービスで利用できるようになります。
構文:
引数
番号 |
タイプ |
必須 任意 |
説明 |
最小 長 |
最大 長 |
最小 小数桁数 |
最大 小数桁数 |
1 |
A |
必須 |
接続ハンドル |
4 |
4 |
|
|
2 |
U |
必須 |
コマンド |
1 |
無制限 |
|
|
3 |
L |
任意 |
送信/受信するフィールド定義のリスト。このリストを渡さない場合、フィールドは使用できません。 |
|
|
|
|
戻り値
番号 |
タイプ |
必須 任意 |
説明 |
最小 長 |
最大 長 |
最小 小数桁数 |
最大 小数桁数 |
1 |
U |
必須 |
状態 |
1 |
20 |
|
|
2 |
U |
必須 |
メッセージ |
1 |
無制限 |
|
|
3 |
L |
任意 |
作業リスト |
|
|
|
|
サービスがロードされると、サービスに対するコマンドが実行されます。サービスの使用が終わると、そのサービスはアンロードされます。一度にロードできるサービスは1つだけです。詳細については、「3.5 コマンド」を参照してください。
JSMX_COMMANDには、以下が数多く用意されています。
RDMLX 予約コマンド
RDMLX 予約キーワード
RDMLX 予約フィールド名
サービスの詳細については、&<a href="intb7_0001.htm"&>「Java Service Managerサービス」&</a&>を参照してください。
技術ノート 1
サービスでポストされたHTTP内容を受信するには、SERVICE_LOADコマンドでSERVICE_CONTENT(*HTTP)キーワードが必要です。
これがSERVICE_CONTENT(*HTTP)キーワードを使用する最初の接続の場合、ポストされたHTTP内容が読み込まれサービスに送信されます。
この接続がHTTP応答の送信を担当します。
これがSERVICE_CONTENT(*HTTP)キーワードを使用する最初の接続ではない場合、この接続はHTTP応答の送信のみを担当します。SERVICE_LOADコマンドはHTTP内容を受信しませんが、HTTPキーワードは受信します。
HTTP応答を担当する接続で接続を終了するJSMX_CLOSEを使用する場合、返されるバイト配列応答はHTTP応答になります。
HTTP応答を一度に送信できるのは1つの接続のみです。
HTTP内容が読み込まれるのは一度だけです。
HTTP応答が書き込まれるのは一度だけです。
HTTPキーワードは必ずSERVICE_LOADコマンドで送信されます。
シナリオ A
#1 JSMX_OPEN - 接続を開く
#2 JSMX_OPEN - 接続を開く
#3 JSMX_OPEN - 接続を開く
#1 JSMX_COMMAND( "SERVICE_LOAD SERVICE(xxx) SERVICE_CONTENT(*HTTP)" ) - CGIキーワードを送信する、STDINを読み込む、所有権を要求する
#2 JSMX_COMMAND( "SERVICE_LOAD SERVICE(xxx)" ) - CGIキーワードを送信する
#3 JSMX_COMMAND( "SERVICE_LOAD SERVICE(xxx) SERVICE_CONTENT(*HTTP)" ) - CGIキーワードを送信する、所有権を転送する
#1 JSMX_CLOSE - 接続を閉じる
#2 JSMX_CLOSE - 接続を閉じる
#3 JSMX_CLOSE - 接続を閉じ、STDOUT を書き出す
シナリオ B
#1 JSMX_OPEN - 接続を開く
#1 JSMX_COMMAND( "SERVICE_LOAD SERVICE(xxx) SERVICE_CONTENT(*HTTP)" ) - CGIキーワードを送信する、STDINを読み込む、所有権を要求する
#1 JSMX_CLOSE - 接続を閉じ、STDOUT を書き出す
#2 JSMX_OPEN - 接続を開く
#2 JSMX_COMMAND( "SERVICE_LOAD SERVICE(xxx)" ) - CGIキーワードを送信する
#2 JSMX_CLOSE - 接続を閉じる
#3 JSMX_OPEN - 接続を開く
#3 JSMX_COMMAND( "SERVICE_LOAD SERVICE(xxx) SERVICE_CONTENT(*HTTP)" ) - CGIキーワードを送信する、所有権を転送する
#3 JSMX_CLOSE - 接続を閉じる
技術ノート 2
以下のデータ・タイプがサポートされています。他のデータ・タイプを使用する場合、そのフィールドは無視されJSMサービスに渡されません。
TYPE(*CHAR)
TYPE(*NCHAR)
TYPE(*STRING)
TYPE(*INT)
TYPE(*DEC)
TYPE(*FLOAT)
TYPE(*PACKED)
TYPE(*SIGNED)
TYPE(*BOOLEAN)
TYPE(*DATE)
TYPE(*TIME)
TYPE(*DATETIME)
TYPE(*BLOB)
TYPE(*CLOB)