日本航空は4月1日に発生した重量管理システムの不具合による運航サービス遅延について、詳細を説明した。同日の障害では、国内線46便が欠航し、6670人に影響が出た。欠航しなかったものの、国内線に最大155分、国際線で最大42分、遅延した。
障害の原因は、重量管理システムのプログラムに不具合があったこと。3月23日に変更したアプリケーションプログラムにおいて、システム内で同時に動作している2つのプログラムが互いに処理を待つ状態になり、正常に動作しなくなったと説明している。
現在、プログラムを開発した製造元ベンダーによるプログラム修正と検証作業を実施している。
今後は、不具合の原因となったプログラム修正を近日中に実施する、本番システムが停止した際の現場での業務維持能力を高めるバックアップとして準備している環境の処理能力を強化する、製造元ベンダーとの情報共有を密にし、外部の専門家の知見も取り入れながらシステム検証の能力向上に努めるとのこと。
以下の図1を用いて障害を説明した。1つのキャッシュ、ディスクに対する処理要求が競合し、デッドロックを起こしたことが直接の原因だった。
図1
具体的には、図1の処理Aの1と4、処理Bの2と3は、組み合わせた1つの単位で処理される必要がある。だが、今回処理Aの1と処理B2が正常終了した後で、キャッシュを処理Aが占有、ディスクを処理Bが占有してしまう、デッドロックが起きた。これにより、3において処理Bはキャッシュにアクセスできず、4において処理Aがディスクにアクセスできなくなった。
デッドロック発生後、他の処理が進まなくなり、データの滞留が発生、システムが停止するに至った。
障害を起こした重量管理システムとは、飛行機の重心を計算するためのプログラム。乗客が座っている座席の位置や貨物の置かれている場所などを計算し、飛行機の重心を把握することでバランスを維持する。このシステムによる安全確認ができなければ、飛行機は離陸できないようになっている。
図2
図2のように、燃料データ、チェックインデータ、貨物データなどを社内の他システムから受け取り、飛行機のバランスに問題が起きないかどうかを、社内の搭載管理者端末からのデータ処理要求に応じて回答する仕組みになっている。
4月1日の状況は次の通り。7時48分ごろに重量感システムに不具合が発生。複数のユーザーから使用できないとの報告が上がった。7時55分、アプリケーションサーバ、連携サーバを再起動するが状況に変化はなかった。8時50分、連携サーバに滞留している外部からの連動データを削除、9時12分に外部との連動を停止、9時18分にアプリケーションサーバの再起動を実施。9時23分、外部との連動を再開、データの不整合がないことを確認し、9時40分にシステムを再開した。