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

コメント

えび🦐🍤 @ebc_2in2crc 2011年3月20日
銀行の勘定系には携わったことないけど、これは本当にしんどい仕事ですね。 1画面10万行…システム立ち上げ当初からメンテに次ぐメンテでこうなってしまったのかなあ。 要求仕様を整理して書き直し→性能や保守性を向上させるっていうのは、やっぱり予算関係や現行の動作を変えないという面で難しいのでしょうか。 しんどいなあ(・ω・;)
T.Naka@NoOps-Shogun @Irix_jp 2011年3月20日
銀行システムって大変だなぁ・・・
しるず @sirz556 2011年3月20日
聞けば聞くほど金融系のシステムこわい…。幸い関わったこと無いけど。
まどちん● @madscient 2011年3月20日
SEになって15年経つけど勘定系に関わらずに済んだのは幸運だったとしか言いようがない。会社には勘定系やってる部署もあるんだが。
たさか(隣人部員) @ktasaka 2011年3月20日
"テストエンジニアはユーザーの次くらいに業務に精通していないといかんので、業務ひたすら勉強するしかないのです。"うちの会社のシステムェ…orz
Kazuyuki Numata @primnum 2011年3月20日
・・・・・「後は状態遷移モデルでモデリングとかそういう文化派内っぽくて、膨大な量のフラグがあってそれの相関関係の分析とかマジ死にます。もうわけわからんちょんですよ。それが恐ろしいネストのif文で実装されるのです・・・」
Cマニア @ccc_mania 2011年3月21日
某金融系の設計を担当したことがあるが、バッチトラブル時のケース洗い出しから運用まで抽出しきれてなかった。指摘しても規模が大きすぎて無理、二次に回すとかありえない回答が帰ってきて唖然としたわ。結局納期優先なんだよね。
俺のおタカさんがこんなに可愛い訳がない @oyatata 2011年3月21日
銀行のバッチシステムをやると、夜の時間は無い様なもんなんだよねぇ…と、言う自分も経験者w
五円玉(餡は脳に優しいスイーツ) @Goendama 2011年3月21日
うけけけ・・・こんなシステムを中国へ丸投げしようとしてるだぜ。で、尻ぬぐいは日本の下請け孫請けにですか?
ログインして広告を非表示にする
ログインして広告を非表示にする