実行環境

56. システム値 QLOCALE の注意 !!

i5/OS をリリース・アップしたら前のリリースでは正常に動作していたソフトウェアが突然、動かなくなった !
こんな障害がある日、突然襲ってくるかも知れない。
特に システム値 QCCSID65535 ではなく、QCCSID = 5026 に設定しているユーザーには可能性が高い。
これは システム値 QLOCALE は OS V5R1M0 までは *NONE であったのにV5R2M0 移行では、導入時の
値が *NONE から

/QSYS.LIB/JA_5035.LOCALE

に変更されてしまうことに起因している。
そこで、リリース・アップを作業する特約店SE が QSSCID が 5026 であるので十分な知識もないままに、

/QSYS.LIB/JA_JP_5026.LOCALE

に変更してしまうからである。
この変更によって 英小文字を英大文字に変更する C言語の関数 toupper はたちまち、正常に動作しなく
なってしまう。 海外からの輸入ソフトウェア製品の多くは C言語で書かれているのでこの変更と同時に一斉に
動作しなくなってしまうというわけである。
元々 QLOCALE の値は 環境変数 LANG として Java や QSHELL 環境のために使用されることが目的であるが
英小文字を認識できない Java は意味をなさない。 従って QCCSID = 5026 環境下であっても

/QSYS.LIB/JA_5035.LOCALE

QLOCALE の正しい設定値である。
ところが前述のように十分、理解のない SE の設定によって誤った設定がなされると社内は当然、
パニックになってしまう。 WRKENVVAR + [実行] によって次のようにして確認することができる。
ソフトウェア製品がリリースアップによって動作しなくなったときはここを疑ってみる価値はある。