全銀ネットシステム障害(2023.10/10-11)の記者会見を聞いた。
原因がプログラムおよびDBに関係しそうだということで注視していたのでメモを記しておく。
10/18 16:00-18:30と長時間に渡るもので、質問が出尽くすまでやっていた。
残念ながら、突っ込んだ技術的な質問が少なかったのと、答える側もベンダーに聞かないとわからないとするところも多かった。辻理事長の話は、明快で分かり易かった。
技術的な観点では、ベンダーさんも同席して応えていただきたかったところ。
ことの発端は、中継サーバー(RCと呼んでいる)を17から23にアップグレードしたこと。
保守期限をまじかに控えていて、東阪での二重システムを構築しているが、両方とも同時にリプレースした。
RC17(更改前):Unix 32ビット、言語 C
RC23(更改後):Unix 64ビット、言語 Java 仮想化
現時点で判明している原因は、
仕向の手数料計算算出のために、金融機関テーブルとインデックステーブルをプログム上に展開して、ルックアップしているが、何らかの要因でインデックステーブルが破損しており、エラーが発生したとのこと。
手数料計算は、仕向電文上に手数料を入れている場合と手数料は別途計算するタイプのどちらかが選択できるらしい。電文上に手数料を入れている場合は、問題がなかった。
これに対処するために、以下の対応がとられた。
10/10対応:手数料計算をテーブルルックアップからプログラムでの判定ロジックに切り替えるべく、プログラム修正しようとしたが、全ケースをカバーしきれず断念。
10/11対応:手数料計算を行わず、一旦全て0円として、後で銀行間取引により行うようにして、プログラム上の手数料計算部分をバイパスする対応を実施。この状態で送信処理が正しく行われることを確認してリリース。一旦復旧。
問題のテーブルは、2017年から使用されているのもので、事前準備段階でDBにロードされていたとのこと。(DBMSは不明)
今回のRC更改に伴い、サーバーの仮想化が行われている。メモリ不足なども要因の一つで挙げられているが不明とのこと。
元のテーブルデータが破損していたということであれば、原因も簡単に解りそうにも思うのだが。。