| インターネットプログラムのビルド | アプリケーションの実装と実行 | ![]() |
この章では、NSAPI プログラムをビルドする方法と、コンパイラ指令を変更して CGI プログラムを NSAPI プログラムに変更する方法について説明します。ここでは、『インターネットプログラムのビルド』 の章の説明に従って、インターネットアプリケーションを CGI プログラムとしてビルドしてあることを前提としています。
NSAPI アプリケーションは、入出力に ACCEPT/DISPLAY と EHTML を使用し、CGI アプリケーションと同じ方法で作成することができます。サーバ側プログラムはまず、CGI プログラムとして開発してデバッグし、正常に機能することを確認した段階で NSAPI プログラムに変更することをお奨めします。
注 : CGI の環境変数は NSAPI によって認識されません。プログラムが CGI 環境変数に依存している場合は、NSAPI プログラムを変更する必要があります。
プログラムで保護違反の原因となるエラーが発生しないことを確認できたら、後述の説明に従って、NSAPI プログラムとして再ビルドします。NSAPI をサポートする Web サーバでプログラムをテストしてから、プログラムを実装することをお奨めします。
次の 2 つの項では、CGI プログラムを NSAPI プログラムとしてリビルドするための COBOL コンパイラ指令の変更方法とビルド設定について説明します。
次のコンパイラ指令を設定してから、NSAPI プログラムを再ビルドします。
このプログラムが NSAPI アプリケーションであることをコンパイラに伝えます。値 entry_point_name はユーザ定義の名前です。コンパイラは、entry_point_name で非表示の入口点を作成し、NSAPI Web サーバがプログラムを起動できるようにします。
このアプリケーションを NSAPI サーバで実装する場合は、サーバの obj.conf ファイルを修正するときに entry_point_name
を Init fn の funcs 属性の値として使用します。『NSAPI
サーバ構成ファイルの修正』 の項を参照してください。
このプログラムの複数のコピーを確実かつ安全に実行できるようにします。
次のようにプログラムの冒頭に $SET 文を記述すると、プログラムをコンパイルするたびにこれらの指令を必ず設定することできます。
$set webserver"nsapi,entry-point-name" reentrant"2"
ドル記号 ($) は、必ずソースコードの 7 列目に記述します。ただし、記述する列の指定を解除する指令、 SOURCEFORMAT"FREE" を設定した場合を除きます。コンパイラ指令設定の詳細については、『Server Express ユーザガイド』 の 『コンパイラの使用』 の章を参照してください。
NSAPI プログラムは、呼び出し可能共有オブジェクトとしてビルドします。ファイルを NSAPI 呼び出し可能共有オブジェクトに変換するには、cob コマンドを使用します。たとえば、次のように記述します。
cob -vtyU -C 'webserver"nsapi,myentrypoint"' fred.cbl -o fred.so
-y フラグは、プログラムを自己格納形式の呼び出し可能共有オブジェクトとしてリンクすることを表します。-t フラグは、このプログラムをマルチスレッド化することを表します。-U フラグは、すべての参照を実行時に解決することを表します。
アプリケーションのビルドの詳細については、『Server Express ユーザガイド』 を参照してください。
CGI サーバ側プログラムを NSAPI 呼び出し可能共有オブジェクトとして再ビルドしたら、プログラムを参照する Web ページの URL またはフォームをすべて変更する必要があります。CGI プログラムの URL は次を参照しています。
/share-name/program
NSAPI プログラムでは、URL は次を参照する必要があります。
/entry-point-name.ext
パラメータの内容は、次のとおりです。
entry-point-name |
プログラムの入口点名。 |
ext |
構成ファイル、 obj.conf および mime.types で定義される MIME タイプ。詳細については、次の 『NSAPI アプリケーションを実行する前に』 を参照してください。 |
NSAPI サーバ側プログラムを実行する前には (開発システムでアプリケーションのテストおよびデバッグを行う場合、または運用システムで実行する場合にかかわらず)、次の手順を行う必要があります。
このスクリプトの実行権は ugo+x に設定します。
これらの手順を実施したら (必要な場合は、運用システムの Web サーバマシンにファイルを実装したら)、サーバをシャットダウンし、再起動して NSAPI プログラムを読み込む必要があります。
この項の修正についての説明は、Netscape 社の Enterprise Server を対象とします。その他のサーバを使用している場合は、その製品に添付されているマニュアルを参照してください。
obj.conf
mime.types
obj.conf は次のように変更してください。
Init fn="load-modules" shlib="executable_file.so" funcs="entry-point-name"
パラメータの内容は、次のとおりです。
executable_file |
サーバ側プログラムの物理パスと名前。
注 : Windows プラットフォームでアプリケーションを使用する場合でも、パスには \ でなく、通常のスラッシュ(/)を使用してください。 |
entry-point-name |
プログラムのコンパイル時に指令、 WEBSERVER"NSAPI,entry-point-name" で指定した入口点名。『NSAPI 用コンパイラ指令の設定』 を参照してください。 |
Service fn="entry-point-name" method="(GET|POST)" type="magnus-internal/new-type"
パラメータの内容は、次のとおりです。
new-type |
プログラムに関連付ける新しい MIME タイプの名前。 |
entry-point-name |
上記で指定した入口点名。 |
次の行を mime.types に追加して、上記で定義した新しい MIME タイプを拡張子に関連付けます。
type=magnus-internal/new-type exts=extension
パラメータの内容は、次のとおりです。
new-type |
上記のプログラムと関連付けた MIME タイプ名。 |
extension |
プログラムのファイル拡張子。拡張子が 3 文字に制限されないことに注意してください。 |
NSAPI プログラムは、前項で定義した新しい MIME タイプをブラウザが要求するたびに起動されます。このプログラムを呼び出して新しい MIME タイプを要求するフォームの Action プロパティをすべて変更する必要があります。エディタでフォームを開き、次のように Action プロパティを変更します。
program.extension
この場合、program にはプログラムの入口点を指定し、extension には、前項で定義した新しい MIME タイプの拡張子を指定します。
フォームを保存し、新しいバージョンの .htm ファイルを実装します。
さらに、Web サーバのドキュメントディレクトリ (form-share にマップするディレクトリ) に program.extension という名前のダミーファイルを作成する必要があります。ダミーファイルは、NSAPI プログラムの読み込み時に Enterprise Server によって使用されます。form-share ディレクトリの詳細については、『アプリケーションの実装と実行』 の章の 『Web サーバの設定』 の項を参照してください。
Animator を使用して NSAPI プログラムをデバッグする場合は、Web サーバでプログラムを実行する必要があります。Web サーバを起動する前に、次の処理を行ってください。
DISPLAY=xserverforanim:0.0
call "CBL_DEBUGBREAK"この文により、実行時に Animator が起動されます。
デバッグの詳細については、『デバッギングハンドブック』 を参照してください。
注 :
Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。
| インターネットプログラムのビルド | アプリケーションの実装と実行 | ![]() |