3.4.5 JSMX_COMMAND

LANSA Integrator

3.4.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

JSMX_OPEN呼び出しは、この接続に割り当てる接続ハンドルを返します。このハンドルは以降のJSMX_COMMANDやその他のAPI呼び出しで使用され、呼び出しが適用される接続を特定します。

2

JSMCMD

入力、文字(変数、推奨512)

ロードされたサービスで実行されるサービス・コマンド、またはサービスをロードあるいはアンロードするSERVICE_LOADやSERVICE_UNLOADコマンドを指定します。

3

JSMSTS

出力、文字(変数、推奨20)

JSMサーバーは、このフィールドの操作の状態を返します。クライアント・アプリケーションはこのフィールドをテストして、操作が成功したかどうかを判断できます。ほとんどの場合、状態が「OK」であれば成功したことになります。

4

JSMMSG

出力、文字(変数、推奨512)

JSMサーバーはこのフィールドの操作に関するメッセージを返します。例えば、完了メッセージや、操作が失敗した場合のエラー・メッセージなどです。一部のサービス・コマンドはこのフィールドのサービスに関連するデータを返します。

サービスがロードされると、サービスに対するコマンドが実行されます。サービスの使用が終わると、そのサービスはアンロードされます。一度にロードできるサービスは1つだけです。「コマンド」を参照してください。

JSMX_COMMANDには、以下が数多く用意されています。

RPGX予約コマンド

RPGX予約キーワード

サービスの詳細については、「Java Service Managerサービス」を参照してください。

技術ノート

サービスでポストされた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 - 接続を閉じる