ページの先頭行へ戻る
NetCOBOL V11.0 入門ガイド
FUJITSU Software

4.3.1 MeFt/Web移行時のアプリケーションの対応

スタンドアロンの画面帳票アプリケーションをMeFt/Web環境へ移行するにあたり、対応が必要となる点を説明します。

4.3.1.1 表示ファイル以外の画面

MeFt/Webでリモート実行したプログラムで表示される画面のうち、表示ファイルを使用した画面以外はサーバ上で処理されます。サーバ上で処理される画面には、次のようなものがあります。

しかし、通常、WWWサーバを介して起動されたプログラムの画面は表示されないため、その画面への応答ができずに入力待ち状態になってしまいます。その結果、クライアントのWWWブラウザが無応答となってしまいます。

この問題への対応を画面ごとに説明します。

エラーメッセージ

COBOLプログラムの実行時にエラーが発生すると、エラーのメッセージボックスが表示され、[OK]ボタンが押されるのを待つ状態になります。しかし、MeFt/Web環境ではメッセージボックスが表示されても応答できないため、必ずエラーメッセージをファイルに出力する指定をします。

エラーメッセージをファイルに出力するには、実行環境情報で、COBOLが用意する環境変数情報「@MessOutFile」に出力するファイル名を割り当てます。なお、実行環境設定ツールでは、COBOLが用意する環境変数情報を[変数名]のリストから選択することができます。

次の例では、メッセージを出力するファイルとして「C:\NetCOBOL\workspace\ADDR\ERROR.TXT」を割り当てています。

コンソール画面

コンソール画面に対するACCEPT文およびDISPLAY文を使用したデータの入出力はできません。コンソール画面への出力は、ファイルに出力するよう変更します。コンソール画面への出力をファイルにするには、翻訳オプション「SSOUT」で任意の環境変数情報名を指定し、実行環境情報でその環境変数情報名とファイル名を対応づけます

以下に、翻訳オプションと実行環境情報の設定例を示します。

<翻訳オプションの指定内容>

SSOUT(OUTFILE)

<実行環境情報の指定内容>

OUTFILE=C:\NetCOBOL\workspace\ADDR\SSOUT.DAT

診断機能メッセージ

COBOLプログラムの実行時にアプリケーションエラーなどが発生すると、COBOLの診断機能によりエラーの発生箇所などを記載した診断レポートファイルが出力され、そのことがメッセージボックスに表示されます。MeFt/Web環境では、そのメッセージを表示しないようにするか、診断機能を起動しないようにする指定を必ず行います。

この指定は、実行環境情報で実行環境変数「@CBR_JUSTINTIME_DEBUG」にて行います。診断機能のメッセージを表示させないようにするには、「@CBR_JUSTINTIME_DEBUG」の変数値を「ALLERR,SNAP -l」とします。また、診断機能を起動しないようにするには、「@CBR_JUSTINTIME_DEBUG」の変数値を「NO」とします。

次の例では、診断機能のメッセージを表示させないように「ALLERR,SNAP -l」を指定しています。

ウィンドウクローズメッセージ

ウィンドウを閉じる時の確認メッセージであるウィンドウクローズメッセージを非表示にするため、実行環境情報の実行環境変数「@WinCloseMsg=OFF」を指定する必要があります。

4.3.1.2 プロセス型プログラムとスレッド型プログラム

MeFt/Webでは、次の2種類のCOBOLプログラムを起動できます。

プログラムの種類

説明

プロセス型プログラム

実行可能なモジュール形式(EXE)のプログラムです。

スレッド型プログラム

ダイナミックリンクライブラリ形式(DLL)のプログラムです。

プロセス型プログラムとスレッド型プログラムの比較

プロセス型プログラムとスレッド型プログラムの違いを下表に示します。

項目

プロセス型プログラム

スレッド型プログラム

アプリケーションの形式

主プログラム(EXE)

副プログラム(DLL)

実行単位

プロセス

スレッド

起動性能

スレッド型プログラムと比べ低速。

スタートアップのオーバヘッドがないため高速。

サーバの資源消費

既存資産の活用性

ソース修正および再翻訳・再リンクとも不要。

再翻訳・再リンクが必要。場合によっては若干のソース修正が必要。

アプリ異常終了時の影響範囲

異常が発生したプログラム以外には影響が及ばない。

同じプロセスで動作する他のスレッド型プログラムも異常終了してしまう。

プロセス型プログラムをスレッド型プログラムに移行する場合の修正点

既存のプロセス型プログラムをスレッド型プログラムに移行する際、プログラム修正が必要となる部分を説明します。

4.3.1.3 MeFt/Web運用時の追加エラーコード

MeFt/Webの運用時には、スタンドアロンでのエラーコードに加えて、次のエラーコードが通知されます。

エラーコードを判定して処理を分けているプログラムをMeFt/Webで運用する場合は、次のコードも考慮した判定を行うようにします。エラーコードの通知は、“3.2 表示ファイルのプログラミング”の「エラー処理」に記載があります。

通知コード

FILE STATUS句(4桁)に通知される内容

エラー内容

N1

90N1

WWWサーバが正常に通信を行うことができなかったため、リモート実行処理を続行できなくなりました。または、クライアントマシンかサーバマシンでメモリ不足が発生しました。

N7

90N7

MeFt/Webサーバで通信監視時間のタイムアウトが発生しました。

N8

90N8

MeFt/WebコントロールのQuitメソッドが実行されました。

なお、本章で構築するアプリケーションでは、画面機能および帳票機能の各ファイルFILE STATUS句に指定した4桁のデータ名の領域の値が「0000」であるかを判定して処理を分けています。そのため、MeFt/Webの運用時に追加されるエラーコードに対応するための修正は特に行いません。