ASPのWWWサーバーには、COBOL GでCGIを作成するためのCGIサブルーチンが付属しています。
CGI作成の詳細は、以下のマニュアルを参照してください。
WWWサーバ説明書
- 第2部 WWWサーバ/EX編
- 第4章 環境定義
- 4.3 CGIスクリプ
- 第4章 環境定義
- 第4部 CGIサブルーチン編
以下、COBOL GのCGIサンプルです。
初心者様向けの「COBOL教育サービス」始めました。
SAMPLE.CGIDEMO(COBOL G ソース)
000010****************************************************************
000020* (株)コンピュータ・サービス *
000030* COBOL G CGIサンプル *
000040* *
000050* SYSTEM *
000060* SUB SYSTEM *
000070* PROGRAM *
000080* CREATE *
000090* MODIFY *
000100* *
000110****************************************************************
000120 IDENTIFICATION DIVISION.
000130 PROGRAM-ID. SAMPLE01.
000140*
000150 ENVIRONMENT DIVISION.
000160 CONFIGURATION SECTION.
000170 SPECIAL-NAMES.
000180*
000190 INPUT-OUTPUT SECTION.
000200 FILE-CONTROL.
000210*
000220 DATA DIVISION.
000230*
000240 FILE SECTION.
000250*
000260 WORKING-STORAGE SECTION.
000270*
000280 COPY XHTOCCBW. *> CGIサブルーチン作業域
000290*
000300 LINKAGE SECTION.
000310*
000320* COBOLの起動パラメタで受け渡される入力用ACM名および出力用ACM名
000330 01 ACM-NAME.
000340 02 ACM-NAME-READ PIC X(08).
000350 02 ACM-NAME-WRITE PIC X(08).
000360*
000370****************************************************************
000380 PROCEDURE DIVISION USING ACM-NAME.
000390****************************************************************
000400*
000410 SAMPLE01-START.
000420*
000430* CGIサブルーチン作業領域の初期化
000440 MOVE LOW-VALUE TO COBW3.
000450*
000460* CGIサブルーチン作業領域の設定およびCGIパラメータの獲得
000470 MOVE ACM-NAME-READ TO COBW3-ACM-INPUT.
000480 MOVE ACM-NAME-WRITE TO COBW3-ACM-OUTPUT.
000490 MOVE 1024 TO COBW3-ACM-INPUT-LENGTH.
000500 MOVE 1024 TO COBW3-ACM-OUTPUT-LENGTH.
000510 CALL "XHTOCINI" USING COBW3.
000520 IF COBW3-STATUS NOT = ZERO
000530 EXIT PROGRAM.
000540*
000550* ヘッダ情報の出力
000560 MOVE COBW3-CONTENT-TYPE-HTML TO COBW3-CONTENT-TYPE.
000570 MOVE COBW3-LOCATION-CODE-NONE TO COBW3-LOCATION.
000580 CALL "XHTOCPHD" USING COBW3.
000590 IF COBW3-STATUS NOT = ZERO
000600 EXIT PROGRAM.
000610*
000620* HTML出力
000630 MOVE "<HTML>" TO COBW3-PUT-STRING.
000640 MOVE 6 TO COBW3-PUT-STRING-LENGTH.
000650 CALL "XHTOCPTX" USING COBW3.
000660 MOVE "<HEAD></HEAD>" TO COBW3-PUT-STRING.
000670 MOVE 13 TO COBW3-PUT-STRING-LENGTH.
000680 CALL "XHTOCPTX" USING COBW3.
000690 MOVE "<BODY>" TO COBW3-PUT-STRING.
000700 MOVE 6 TO COBW3-PUT-STRING-LENGTH.
000710 CALL "XHTOCPTX" USING COBW3.
000720 MOVE "HELLO WORLD" TO COBW3-PUT-STRING.
000730 MOVE 11 TO COBW3-PUT-STRING-LENGTH.
000740 CALL "XHTOCPTX" USING COBW3.
000750 MOVE "</BODY>" TO COBW3-PUT-STRING.
000760 MOVE 7 TO COBW3-PUT-STRING-LENGTH.
000770 CALL "XHTOCPTX" USING COBW3.
000780 MOVE "</HTML>" TO COBW3-PUT-STRING.
000790 MOVE 7 TO COBW3-PUT-STRING-LENGTH.
000800 CALL "XHTOCPTX" USING COBW3.
000810*
000820* 実行環境の開放
000830 CALL "XHTOCFRE" USING COBW3.
000840*
000850 SAMPLE01-END.
000860*
000870 EXIT PROGRAM.
翻訳は以下のコマンドで行います。
JB1 : COBOLG SRC-SAMPLE.CGIDEMO,STORE-@YES,OBJLIB-CGIDEMO,REP-@YE-
: S,PUBAUT-@ALL,CPYLIB-XSLBSMPL
CGIサブルーチンのインターフェイスとなる登録集XHTOCCBWはXSLBSMPLライブラリに格納されています。
次にCGIスクリプトを作成します。CGIスクリプトはCGIの動作環境を定義するファイルです。多階層ライブラリ(例:/var/httpd/cgi-bin)に格納します。
sample.cgi(CGIスクリプト)
#!-CGI-
cgi-pgm:SAMPLE.CGIDEMO
prof:XHTTP
cgi-input-code:jefascii
cgi-output-code:jefascii
server-input-code:sjis
server-output-code:sjis
次に、WWWサーバーの環境定義フィル(例:/var/httpd/conf/httpd.conf)にCGIスクリプトの格納先の定義を追加します。
#CGIスクリプトの格納ディレクトリ
ScriptAlias /cgi-bin/ /var/httpd/cgi-bin/
追加した定義を有効にするためにWWWサーバーを再起動してください。
CGIを実行するには、プラウザから以下のURLへアクセスしてください。
http://<ホストのIPアドレス>/cgi-bin/sample.cgi