test5


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

TCP/IPサービス(サーバータスク)への環境変数指定時の考慮点

環境変数の指定方法

EXEC PARMに直接指定

ENVARパラメータを指定して個別に指定
//STEP PGM=FTPD,
// PARM=('POSIX(ON),ALL31(ON)',
// 'ENVAR("BPX_JOBNAME=FTPD"',
// '"TZ=JST-9"))

外部(DD指定)データセットへの記述

_CEE_ENVFILE環境変数を経由して
//STEP PGM=FTPD,
// PARM=('POSIX(ON),ALL31(ON)',
// 'ENVAR=("_CEE_ENVFILE=DD:STDENV")
:
//STDENV DD DISP=SHR,DSN=TCPIP.STDENV

_CEE_ENVFILEで指定したデータセット属性の注意点

RECFM=V指定

マニュアル記載
この場合、環境変数はSTDENV DD ステートメントで指定されたファイルから読み取られます。
このファイルがMVS データ・セットの場合、そのデータ・セットはRECFM=V で割り振られていなければなりません。
RECFM=F では環境変数のブランクによる埋め込みが可能になるため、RECFM=F は推奨されません。
~z/OS V1R10.0 Communications Server: IP 構成ガイド p54~

毎度おなじみの推奨されません ⇒やったらどうなるかは保証の限りではないということ、で

固定長DSを使ってしまった場合

TZ環境変数で引っかかりました。 下のように定義したのに実際に外部から接続したら 接続元(今回は次席PCでテスト)のLOG上の時刻が1時間ずれていました。
TZ JST-9
(データセット属性RECFM=F,LRECL=80)

1時間ずれの原因はサマータイム(Daylight)の御認識?

サマータイムを使用する環境の場合TZ EST6EDT5のように設定すると、
期間を指定しなくても、4月第一日曜日 2時~10月最終日曜日 2時の間、
1時間進めてくれる。

ブランクを夏時間と勘違いして、勝手に1時間進めやがった

今回の場合JST-9の後ろ80バイトまでのブランクを設定値と認識した
FTPサーバーが、勝手にサマータイムの指定がある(が情報は不正)と認識したため、
デフォルト解釈で、GMT-10の時間を表示してしまった、、、らしい
TZ JST-0[][][][][][][][][]<--ずっと続くブランクをパラメータと認識