| サーバ側のプログラミング | NSAPI プログラムのビルド | ![]() |
この章では、インターネットプログラムをビルドする方法について説明します。ここでは、プログラムのコンパイルとデバックの方法についても説明します。
サーバ側プログラムの実行には現在、 次の API を使用することができます。
これは最も古い API であり、すべての Web サーバによってサポートされています。また、デバッグも簡単に行えるので、サーバ側プログラムはすべて CGI を使用して開発します。
これは Netscape 社の API であり、CGI プログラムを高速化したものです。NSAPI は、Netscape Web サーバやその他のベンダの Web サーバでサポートされています。NSAPI のサーバ側プログラムは、次の 2 つの理由で、標準的な CGI アプリケーションよりも高速に起動します。
NSAPI プログラムは、個別のプロセスではなく、個別のスレッドとして実行されるため、マルチスレッドプログラムであることが必要です。REENTRANT"2" コンパイラ指令を設定すると、COBOL プログラムをマルチスレッド化することができます。コンパイラ指令設定の詳細については、『Server Express ユーザガイド』 の 『コンパイラの使用』 の章を、REENTRANT 指令の詳細については、『コンパイラへの指令』 の章を参照してください。マルチスレッドプログラミングの詳細については、マニュアル、 『Multi-threaded Programming』 を参照してください。
CGI プログラムは最も簡単に実行およびアニメートできるため、この章では、サーバ側プログラムを CGI プログラムとしてビルドする方法について説明します。プログラムを実際に使用する場合は、プログラムを NSAPI に変更することができます。これについては、『NSAPI プログラムのビルド』 の章で説明しています。
インターネットプログラムの実行方法の詳細については、『アプリケーションの実装と実行』 の章を参照してください。
サーバ側の CGI プログラムのビルド方法は、次のとおりです。
cob -C 'webserver(cgi)' flags programs
flags には次のいずれかを指定できます。
| -i | .int ファイルを作成します。 |
| -t | マルチスレッドプログラムを作成します。 |
| -u | .gnt ファイルを作成します。 |
| -z | 呼び出し可能共有オブジェクトを作成します。 |
| -x | システムの実行可能ファイルを作成します。 |
たとえば、cgiprg.cbl をシステムの実行可能ファイルにコンパイルするには、次のように記述します。
cob -C 'webserver(cgi)' -x cgiprg1.cbl
NSAPI アプリケーションに直接コンパイルする場合は、次のように記述します。
cob -C 'webserver(nsapi,userentrypoint)' -ty cgiprg1.cbl
userentrypoint には、NSAPI アプリケーションのサービス名を指定します。
cob コマンドの使用方法については、『COBOL システムインターフェイス (cob)』 の章を参照してください。cob フラグの詳細については、『cob のフラグの説明』 の章を参照してください。これらの章は、『Server Express ユーザガイド』 にあります。
この COBOL システムで 作成されたアプリケーションでは、スレッド化されていないランタイムシステムを使用するようにデフォルト設定されています。
アプリケーションを NSAPI プログラムとして実装する場合は、アプリケーションのビルド方法を変更する必要があります。NSAPI プログラムはマルチスレッドである必要があります。
注
: マルチスレッドを使用する CGI アプリケーションを作成することができます。たとえば、3 つのスレッドを作成して、3 つの無関係なデータベースクエリーを処理し、結果をブラウザに表示することができます。
Web アプリケーションはさまざまな方法でデバッグすることができます。X 端末では、次の方法を使用できます。
X 以外の環境では、コマンド cobanimsrv (または、マルチスレッドアプリケーションの場合は cobanimsrv_t ) を使用できます。
開発システム上でアプリケーションを実行してデバッグする場合は、開発システムで Web サーバを実行している必要があります。詳細については、『アプリケーションの実装と実行』 を参照してください。
COBOL スイッチ、 +A を設定し、X 端末サーバにアニメータの表示場所を指示すると、コマンド行から Animator に切り替えることができます。これは、次の環境変数をユーザ環境ファイル、 .mfcgienv に設定することで行えます。
COBSW=+A DISPLAY=$REMOTE_ADDR:0.0
上記の例では、DISPLAY 変数を使用して、CGI プログラムの実行を生成した X サーバで Animator を表示しています。DISPLAY 変数は、必要に応じて任意の値に設定できます。
注 : X ウィンドウを使用する場合は、X コマンド、 xhost でホストマシンを使用可能にする必要がある場合があります。
スイッチの設定の詳細については、『Server Express ユーザガイド』 の 『実行』 の章を参照してください。
CBL_DEBUGBREAK ライブラリルーチンがプログラムに含まれている場合は、プログラムがこのルーチンまで実行されると、ユーザが指定した X ウィンドウで Animator が起動します。X ウィンドウを指定するには、構成ファイル、 .mfcgienv に DISPLAY 変数を設定します。次に例を示します。
DISPLAY=$REMOTE_ADDR:0.0
たとえば、ランタイムシステムエラー 173 が発生した場合のように、異常が発生した場合のみに Animator を起動できます。この方法を、JIT (Just-in-time) デバッグと呼びます。JIT デバッグを指定するには、構成ファイル、 .mfcgienv に DISPLAY 変数を設定して X ウィンドウを指定する必要があります。次に例を示します。
DISPLAY=$REMOTE_ADDR:0.0
また、さまざまな実行時調整可能変数を設定する必要があります。JIT デバッグの詳細については、『デバッギングハンドブック』 の 『Animator の起動』 の章を参照してください。
X ウィンドウを使用していない場合で、ダム端末を使用してアプリケーションをデバッグする必要がある場合は、cobanimsrv コマンドを使用できます。
cgi-bin ディレクトリに、次のように入力します。
cobanimsrv
または、マルチスレッドプログラムの場合は、次のように入力します。
cobanimsrv_t
これにより Animator は起動しますが、ブラウザまたはサーバから cobrun トリガを使用してカレントディレクトリのアプリケーションが実行されるまで、プログラムのデバッグを待ちます。
Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。
| サーバ側のプログラミング | NSAPI プログラムのビルド | ![]() |