前ページへ インターネットプログラムのビルド アプリケーションの実装と実行 次ページへ

第 5 章 NSAPI プログラムのビルド

この章では、NSAPI プログラムをビルドする方法と、コンパイラ指令を変更して CGI プログラムを NSAPI プログラムに変更する方法について説明します。ここでは、『インターネットプログラムのビルド』 の章の説明に従って、インターネットアプリケーションを CGI プログラムとしてビルドしてあることを前提としています。

5.1 NSAPI サーバ側プログラムの作成

NSAPI アプリケーションは、入出力に ACCEPT/DISPLAY と EHTML を使用し、CGI アプリケーションと同じ方法で作成することができます。サーバ側プログラムはまず、CGI プログラムとして開発してデバッグし、正常に機能することを確認した段階で NSAPI プログラムに変更することをお奨めします。


注 : CGI の環境変数は NSAPI によって認識されません。プログラムが CGI 環境変数に依存している場合は、NSAPI プログラムを変更する必要があります。


プログラムで保護違反の原因となるエラーが発生しないことを確認できたら、後述の説明に従って、NSAPI プログラムとして再ビルドします。NSAPI をサポートする Web サーバでプログラムをテストしてから、プログラムを実装することをお奨めします。

次の 2 つの項では、CGI プログラムを NSAPI プログラムとしてリビルドするための COBOL コンパイラ指令の変更方法とビルド設定について説明します。

5.1.1 NSAPI 用コンパイラ指令の設定

次のコンパイラ指令を設定してから、NSAPI プログラムを再ビルドします。

次のようにプログラムの冒頭に $SET 文を記述すると、プログラムをコンパイルするたびにこれらの指令を必ず設定することできます。

$set webserver"nsapi,entry-point-name" reentrant"2"

ドル記号 ($) は、必ずソースコードの 7 列目に記述します。ただし、記述する列の指定を解除する指令、 SOURCEFORMAT"FREE" を設定した場合を除きます。コンパイラ指令設定の詳細については、『Server Express ユーザガイド』『コンパイラの使用』 の章を参照してください。

5.1.2 NSAPI プログラムのビルド

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 アプリケーションを実行する前に』 を参照してください。

5.2 NSAPI アプリケーションを実行する前に

NSAPI サーバ側プログラムを実行する前には (開発システムでアプリケーションのテストおよびデバッグを行う場合、または運用システムで実行する場合にかかわらず)、次の手順を行う必要があります。

これらの手順を実施したら (必要な場合は、運用システムの Web サーバマシンにファイルを実装したら)、サーバをシャットダウンし、再起動して NSAPI プログラムを読み込む必要があります。

NSAPI サーバ構成ファイルの修正

この項の修正についての説明は、Netscape 社の Enterprise Server を対象とします。その他のサーバを使用している場合は、その製品に添付されているマニュアルを参照してください。

次の設定を行うために修正が必要です。

次の構成ファイルを更新する必要があります。

obj.conf
mime.types

obj.conf は次のように変更してください。

  1. 次の行を追加して、サーバの起動時にサーバ側プログラムが読み込まれるようにします。
    Init fn="load-modules" shlib="executable_file.so" funcs="entry-point-name"

    パラメータの内容は、次のとおりです。

    executable_file サーバ側プログラムの物理パスと名前。

    注 : Windows プラットフォームでアプリケーションを使用する場合でも、パスには \ でなく、通常のスラッシュ(/)を使用してください。


    entry-point-name プログラムのコンパイル時に指令、 WEBSERVER"NSAPI,entry-point-name" で指定した入口点名。『NSAPI 用コンパイラ指令の設定』 を参照してください。


  2. <OBJECT name="default"> と </OBJECT> タグの間に次の行を追加し、プログラムの入口点を新しい MIME タイプに関連付けます。
    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 文字に制限されないことに注意してください。

Action プロパティの変更

NSAPI プログラムは、前項で定義した新しい MIME タイプをブラウザが要求するたびに起動されます。このプログラムを呼び出して新しい MIME タイプを要求するフォームの Action プロパティをすべて変更する必要があります。エディタでフォームを開き、次のように Action プロパティを変更します。

program.extension

この場合、program にはプログラムの入口点を指定し、extension には、前項で定義した新しい MIME タイプの拡張子を指定します。

フォームを保存し、新しいバージョンの .htm ファイルを実装します。

さらに、Web サーバのドキュメントディレクトリ (form-share にマップするディレクトリ) に program.extension という名前のダミーファイルを作成する必要があります。ダミーファイルは、NSAPI プログラムの読み込み時に Enterprise Server によって使用されます。form-share ディレクトリの詳細については、『アプリケーションの実装と実行』 の章の 『Web サーバの設定』 の項を参照してください。

5.3 NSAPI プログラムのデバッグ

Animator を使用して NSAPI プログラムをデバッグする場合は、Web サーバでプログラムを実行する必要があります。Web サーバを起動する前に、次の処理を行ってください。

  1. 環境に次の行を追加します。
DISPLAY=xserverforanim:0.0
  2. 各 NSAPI プログラムの先頭に次の文を追加します。
call "CBL_DEBUGBREAK"
この文により、実行時に Animator が起動されます。

 

  3. アプリケーションをリビルドします。

 

デバッグの詳細については、『デバッギングハンドブック』 を参照してください。


注 :



Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。

前ページへ インターネットプログラムのビルド アプリケーションの実装と実行 次ページへ