- okachimachiorz
- 57434
- 7
- 362
- 20
やる夫:やらない夫ー、地震に続き某メガバンクでトラブルがあってお金の引き出しとかができなくなっているみたいだけど?
2011-03-20 07:16:33やらない夫:そうなんだ。現在中の人は大変な状態だぞ。ところでなんでこんなことが起こるかって分析したことがあるか?
2011-03-20 07:17:05やる夫:メガバンクのバッチはそもそも超高速のメインフレーム使っているからそんなこと起きるわけないと思っていたお。
2011-03-20 07:17:44やらない夫:まず口座間の資金移動で実際何起こっているかを分析する必要がある。まあ、どういう処理をしているかだな。そこでボトルネックが分かってくるぞ。
2011-03-20 07:18:33やらない夫:すごく単純化すると、両者の口座が普通預金であるとすると、口座Aから口座Bへの資金移動としよう。さらに簡単にするために、同一銀行内とする。
2011-03-20 07:20:05やらない夫:処理口座Aの顧客のチェック(CIF)とんでもなくたくさん色々する。もっとも大きなものは注意コードつまり取引禁止かをチェックすることだ。新しいシステムだと銀行で一意だったりするけど、古いシステムだと店舗ごとでかつここで名寄せをするのでこれまた処理が重い。
2011-03-20 07:22:24やらない夫:もちろん、あとどちらかっていうと、RDBじゃデータ構造的に向いていないとか処理性能がついていかないとかで階層型データベースとか使われていること多いな。
2011-03-20 07:23:49やらない夫:ちなみに銀行のシステムはアーキテクチャー上は大体二つのハブを介してチャネル側と本体システム側は完全に分離されている。ただし、性能のために2つのハブの間にCIFとか使用頻度の高いシステムは配置される。
2011-03-20 07:25:44やらない夫:両者の口座確認をしたのち、資金移動に入るのだが、これまたその口座が属する店舗の各種情報チェック、今度は顧客だけでなく、口座の移動可能チェック(定期との合計額を見たり、マル優の限度額見たり)とかいろいろやった後、
2011-03-20 07:30:01やらない夫:資金移動自体も店舗内、店舗間、銀行間で相当違うんだけど、その後がえぐい。利息計算のし直し、まあ、これはいいだろう。
2011-03-20 07:31:19やらない夫:ポジション報告やAMLチェックとかがあるな。ポジション報告の場合、資金ポジション(口座の通貨ベースの持ち高)、金利ポジション(金利ベースの持ち高)、通貨ポジション(外貨の場合の各通貨ごとの持ち高)がそれぞれの外部システム用に作成する必要がある。
2011-03-20 07:33:40やらない夫:今回の処理の遅延はこの外部システムの連携部分にボトルネックがあったのではないかと踏んでいるがあくまで予想だ・・・特に外貨からの振り込みの場合の通貨ポジションは連携が複数の店舗にわたるから間に処理性能の低いシステムがあると、遅延が発生しやすいな。
2011-03-20 07:35:35やらない夫:その後は会計システムに連携するための日計データ作成、情報系システムへ連携するためのデータ作成(これはトランザクションの最初からすべてデータを取っている)とかだな。これもデータ量によるけど、結構重い処理だ。
2011-03-20 07:36:58やらない夫:普通預金の金利計算だけで別の銀行では6000行だったので、エラー処理も考えると資金移動だけでも10万行以上のコードなんじゃないかなあ。
2011-03-20 07:38:25やらない夫:ジョブネットで隙間なくスケジュールが組まれている夜間バッチだともっと要求はシビアだ。どれかのジョブが指定次点を突き抜けてしまっただけでも、連鎖的に遅延が起こるぞ。
2011-03-20 07:39:57