3.1.5 JSMX_COMMAND
SMX_COMMAND API は、サービスをロードおよびアンロードする場合や、サービスでサポートされるコマンドを実行する場合に使用されます。
接続ハンドル (JSMHDL) パラメータは、コマンドを実行する接続を特定します。JSMX_OPEN を呼び出して接続ハンドルを最初に取得しておく必要があります。
クライアント・アプリケーションが変数やリストをサービスと交換したい場合、JSMX_COMMAND を呼び出す前に JSMX_BINDFLD API または JSMX_BINDLST API (あるいはその両方) を呼び出す必要があります。
JSMX_BINDFLD APIおよびJSMX_BINDLST APIを使用してバインドされるフィールドやリストは、1回のJSMX_COMMAND呼び出しの期間内に限りバインドされた状態になります。
パラメータ
番号 |
シンボル名 |
説明 |
1 |
JSMHDL |
入力、文字4 |
2 |
JSMCMD |
入力、文字(変数、推奨512) |
3 |
JSMSTS |
出力、文字(変数、推奨20) |
4 |
JSMMSG |
出力、文字(変数、推奨512) |
サービスがロードされると、サービスに対するコマンドが実行されます。サービスの使用が終わると、そのサービスはアンロードされます。一度にロードできるサービスは1つだけです。詳細については、「3.5 コマンド」を参照してください。
JSMX_COMMANDには、以下が数多く用意されています。
RPG予約コマンド
RPG 予約キーワード
サービスの詳細については、&<a href="intb7_0001.htm"&>「Java Service Managerサービス」&</a&>を参照してください。
技術ノート
サービスでポストされた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 - 接続を閉じる