2.2.1 標準出力リダイレクト機能
Windows版OpenTP1では,標準出力・標準エラー出力の内容をファイルに直接出力できます。この機能を,標準出力リダイレクト機能といいます。この機能を使用すれば,システムサーバおよびユーザサーバが標準出力・標準エラー出力する内容(KFCA-xxxxxメッセージや,ユーザが標準出力に指定した内容すべて)を,ファイルに出力できます。出力されたファイルの内容を見たいときは,毎回ファイルを開く必要があります。
ここでは,標準出力リダイレクト機能を使用するための環境設定,および注意事項を説明します。
- 参考
-
標準出力リダイレクトファイルのコンソール出力機能を使用すれば,出力内容をコンソールでリアルタイムに確認できます。標準出力リダイレクトファイルのコンソール出力機能については,「2.2.2 標準出力リダイレクトファイルのコンソール出力機能」を参照してください。
(1) 環境設定
標準出力リダイレクト機能を使用するためには,次のシステム定義を指定します。
- システム環境定義
-
-
redirect_fileオペランド
標準出力・標準エラー出力の内容をファイルに出力するかどうかを指定します。
-
redirect_file_nameオペランド
標準出力・標準エラー出力の内容を出力するファイル名を指定します。
-
redirect_file_sizeオペランド
標準出力・標準エラー出力の内容を出力するファイルの最大サイズを指定します。
-
それぞれのオペランドの詳細については,「5.3 システム定義の詳細」の「システム環境定義」を参照してください。
なお,この機能は,システム共通定義のprc_portオペランド,およびrpc_port_baseオペランドを指定している場合は使用できません。これらのオペランドを指定し,かつredirect_fileオペランドにYを指定した場合,KFCA26520-Wメッセージを出力し,redirect_fileオペランドの指定を無視してOpenTP1の起動を続行します。KFCA26520-Wメッセージが出力された場合は,prc_portオペランドおよびrpc_port_baseオペランド,またはredirect_fileオペランドのどちらかを削除してください。
(2) 注意事項
-
この機能の初期化処理に失敗した場合,イベントビューアにKFCA00715-Eメッセージが出力され,要因コードとして「200」が出力されます。このメッセージが出力された場合は,OpenTP1サービスを停止し,OpenTP1を再起動してください。
-
高負荷での書き込みが多発すると,メッセージが破棄されることがあります。
-
OpenTP1配下のプロセスの標準出力・標準エラー出力メッセージは,prcteeプロセスを経由して指定されたファイルに出力されます。そのため,オンライン中にprcteeプロセスがダウンした場合,OpenTP1配下のプロセスの標準出力・標準エラー出力メッセージは,ファイルに出力されなくなります。この場合は,OpenTP1サービスを停止し,OpenTP1を再起動してください。
-
redirect_file_nameオペランドを指定していない場合,またはフォルダが存在しないなどの理由でredirect_file_nameオペランドに指定したファイルのオープンに失敗した場合,OpenTP1配下のプロセスの標準出力・標準エラー出力先ファイルとして,次のファイルが作成されます。
-
%DCDIR%\spool\prclog1
-
%DCDIR%\spool\prclog2
-
-
この機能を使用し,システム環境定義のuser_commandオペランドまたはuser_command_onlineオペランドを指定した場合,次のOSでは1,2に示す事象が発生することがあります。これらの事象はOS動作の違いによって発生します。発生条件および回避策の詳細は,TP1/Server Baseのリリースノートの「システム作成上の注意事項」を参照してください。
[対象OS]
-
Windows Server 2008 R2
-
Windows 7 x64 Edition
[事象]
-
システム環境定義のuser_commandオペランドまたはuser_command_onlineオペランドに指定したバッチファイルが実行できないことがあります。
この場合,バッチファイル内で@echo offを実行し,標準出力・標準エラー出力を無効にしてから使用してください。
-
システム環境定義のuser_commandオペランドまたはuser_command_onlineオペランドに指定したコマンドの標準出力・標準エラー出力が,redirect_file_nameオペランドに指定したファイルへリダイレクトされないことがあります。
該当するOSでファイルに出力する場合は,指定したコマンド内で任意のファイルにリダイレクトして出力してください。
-
-
UAPからprintf()関数などストリームを使用した出力を行う場合,出力後にストリームをフラッシュしてください。これらの対処をしないと,出力内容がファイルに反映されないことがあります。なお,COBOL-UAPのDISPLAY文についてはリアルタイム出力されるため,ストリームを使用した出力でも影響はありません。