Webの基礎


■httpの構成と起動


 i−webを使用するのに必要なhttp環境の設定をします。

  1. http構成ファイルを変更する
     WRKHTTPCFGコマンドし使用します。
     (このコマンドは、使い勝手が結構悪いので、QUSRSYS/QATMHTTPCという
      物理ファイルを直接変更してもOKです。)
     #*** HOSTNAME DIRECTIVES ***                      
        HostName                 www.xxxxx.co.jp    
     #*** CCSID DIRECTIVES ***                         
        DefaultFsCCSID           5035
        DefaultNETCCSID          0932
     #*** PORT DIRECTIVES ***                    
        Port                     80
     #*** METHOD DIRECTIVES ***                  
        Enable                   GET             
        Enable                   HEAD            
        Enable                   POST                     
     #*** MAPPING DIRECTIVES ***                          
        Exec /cgi-bin/*   /QSYS.LIB/CGILIB.LIB/* 
        Exec /iweb-xlr/*   /QSYS.LIB/IWXLR.LIB/*          
        Exec /iweb-rpg/*   /QSYS.LIB/@WEB.LIB/*      
        Map  /cgi-htm/* /QSYS.LIB/CGITEMP.LIB/* 
     #  Pass /*           /HTML/*    
        Pass /HTML/*  
    
    【MAPPING DIRECTIVEについて】
    ここでは、外部(URL)で指定するPathと、
    実際のAS400内部のPath構造との関係を定義します。
    EXEC DIRECTIVEでは、
    Exec/cgi-bin/* /QSYS.LIB/CGILIB.LIB/*


    外部名

    内部のPath構造

    ブラウザーでの指定 http://xxx.xxxx.co.jp/cgi-bin/PGM010.PGM
    AS400内でのPathQSYS.LIB/CGILIB.LIB/PGM010.PGM
    CGILIB/PGM010が実行される
    EXEC DIRECTIVE は、Webユーザーに対して、ライブラリー構造を
    隠す働きをしています。

    MAP DIRECTIVEも同様です。
    MAP DIRECTIVEとEXEC DIRECTIVEとの違いは、
    実行プログラムはEXEC DIRECTIVEで指定したライブラリーに
    入っていなければなりません
    PASS DIRECTIVEは、http経由でアクセスされるPathを指定します。
    指定のないPathはアクセスできません。
  2. httpサーバーを再起動する
     STRTCPSVR SERVER(*HTTP) RESTART(*YES) HTTPSVR(DEFAULT)
     起動されると、QHTTPSVRというサブシステムが立ち上がります。


      ※HTTPサーバーをApacheにて設定する場合は、こちらの資料をご覧下さい。
       Apache設定資料

■開発環境の作成
  1. ソースファイルの作成
    ソースファイルは、CCSID=5035で作成してください。
    また、長いjavascriptを書くことが予想されるので、レコード長も長めにセットします。

    CRTSRCPF FILE(XXXX) RCDLEN(240) IGCDTA(*YES) CCSID(5035)
  2. ジョブCCSIDの設定
    Webプログラムの開発時は、ジョブのCCSIDを5035に設定してください。
    CHGJOB CCSID(5035)

■エミュレーターの設定変更
5250エミュレーターもCCSID=5035に対応するように変更します。
これにより、カタカナが5035対応で入力でき、英字小文字が入力出来るようになります。
  1. 5250エミュレーターの構成を『通信→構成→セッションパラメーター』と選択
  2. ホストコードページを939(日本語英数小文字拡張)に変更
  3. コードページの変更は、CTRL+F3で行うことが出来ます。
     コマンド入力画面で、機能キーの説明表示が『F4 ポワ]ポn』のように表示されていれば、
     939で設定されている状態です。

■CCSIDへの配慮
Webプログラムの開発で十分に注意しなければならないのが、CCSIDです。
誤ったCCSIDの環境の中でプログラムを作成すると、『文字化け』頻発します。
CCSIDに関しては、こちらを参照してください。

日本語のCCSIDは、『5026』と『5035』がありますが、インターネットでは、『5035』が主体です。
ところが、AS400ユーザーでは『5026』が主体です。
このため、そのままなんの配慮もなく開発したプログラムは、ほとんどの場合『文字化け』を起こします。

『文字化け』に関して、次の考慮への留意が必要です。
  1. ソースファイルのCCSIDが5035になっている。
  2. ジョブのCCSIDが『5035』になっている
  3. DBのCCSIDが『5026』(←キチンと)または、『5035』になっている
    DBのCCSIDが『65535』になっていると、要注意です。
  4. 5250エミュレーターのコードページが『939』になっている

■プログラムの起動
Webプログラムの起動は、ブラウザーからプログラムのURLを指定することにより行われます。
URLは、『AS400のIpアドレス/プログラムの存在するライブラリーを示すパス/プログラム名』となります。
上の例では、CGILIBの中のPGM01を起動します。
CGILIBに対して、HTTP構成でEXECディレクティブが指定されている必要があります。


ただ、このように直接ライブラリー名で参照すると、AS400の中のライブラリー構造が判ってしまうことになります。
このため、通常は『QSYS.LIB/CGILIB.LIB』というパスに対して別の名前(エイリアスという)をつけて、使用します。

上の例では、『cgi-bin』といいエイリアスを使用しています。

■デバッグの方法
Webプログラムは、サブシステムQHHTSVR下で稼動します。
このため、通常の5250ジョブのような方法ではデバッグできません。

詳しくは、こちらをご覧ください。