- この記事は、IBM Community Japanの主催する2026年ナレッジモール研究における、「WG ID: 2026-C-05 メインフレーム若手技術者の広場」の成果物です。
- 当記事の著作権はIBMに帰属します。詳細はこちらを参照ください。
はじめに
CICS(Customer Information Control System)とは、IBMが開発したトランザクション管理システム(TPモニタ)です。
本記事では、メインフレーム製品のSystem Zシリーズおよび同製品を制御するOS製品であるz/OS上で動作する、CICS TS(Transaction Server for z/OS)について紹介します。
ATMでの預金引き出しや残高照会、航空会社のフライト予約など「絶対に止められない」業務を支えています。
・https://e-words.jp/w/CICS.html
トランザクションとは
CICSが管理するトランザクションとは、ある一連の処理が完全に実行されるか、あるいは全く実行されないかのどちらか一方の状態に保たれるべき論理的な作業単位のことを指します。
これはACID特性として知られる原則によって保証され、たとえ処理中にシステム障害が発生しても、データの整合性が失われないようになっています。
ACID特性
・Atomicity(原子性):操作は全て実行されるか全く実行されないかのどちらかになる
・Consistency(一貫性):トランザクション前後でデータの整合性が保たれる
・Isolation(独立性):複数のトランザクションが同時に実行されても互いに干渉しない
・Durability(永続性):トランザクションが完了した変更は永続的に保存される
CICSは、このトランザクションの開始から終了までを一貫して管理し、データの正確性と信頼性を担保します。
・https://www.ibm.com/docs/en/cics-ts/5.6.0?topic=applications-transactions-in-cics
・https://www.ibm.com/docs/ja/cics-tx/11.1.0?topic=processing-acid-properties-transactions
CICSの主要構成要素
CICSは内部で多くの制御テーブルを持ちますが、ここでは主要な以下3つを紹介します。
・PCT(Program Control Table) トランザクションIDでプログラムを紐づけ
・PPT(Processing Program Table) プログラムの配置場所や状態を管理
・FCT(File Control Table) VSAMなどのファイル定義を管理
→ どのプログラムをどう動かすかを素早く判断してくれる。
・https://arteceed.squares.net/?p=920
CICSの役割
CICSの役割は以下の4つです。
・画面からのリクエスト受け取り(端末管理)
・トランザクション(小さな処理単位)を起動して実行
・データへのアクセス制御(DB・VSAMなど)
・異常時のロールバックと整合性維持
CICSの基本的な動作は、ユーザーが端末(Webブラウザや専用端末など)から何らかの操作を行うと、その要求がCICS領域(CICSが動作するメインフレーム内のメモリ空間)に送られることから始まります。CICSは、その要求に対応するアプリケーションプログラムを特定し、起動します。起動されたプログラムは、必要に応じてデータベース(IBM DB2やVSAMファイルなど)にアクセスしてデータを読み書きし、処理を実行します。処理が完了すると、結果はユーザーの端末に返送されます。この一連の流れは非常に高速に行われ、多数のユーザーからの要求が同時に発生しても、それぞれが独立して並行処理されるよう、CICSの内部メカニズムが調整します。
〇CICSが処理するトランザクションのイメージ
ユーザー操作画面(UI)
リクエスト ↓ ↑結果を返す
CICS
データアクセス↓ ↑結果の取得
DB2/VSAM
例:
ATMで残高照会ボタンを押下 → 残高照会用トランザクション(ID: BALN)が起動 → 残高画面の表示
- ATMで「残高照会」を押す
- CICSがトランザクションBALNを受信
- PCTによってBALNに紐づけられたCOBOLプログラムを起動
- DB2から残高を取得
- ATMに結果を返す
・https://app.engr-sng.com/glossary/detail/cics
CICSのメリット・デメリット
・メリット
① 柔軟で高性能なオンライン処理基盤
・多数のユーザー要求を同時に処理できる
・DB2、IMS、MQなど様々なシステムと連携できる
・I/O待ち時間中に他タスクを実行することでCPUを効率利用できる
② 高い整合性と信頼性
・トランザクション単位で処理を管理
・障害発生時は更新内容をロールバックできる
・ログやジャーナルを利用して復旧可能な仕組みを提供する
③ 優れた拡張性と高可用性
・TOR(端末専有領域)、AOR(アプリ専用領域)、FOR(ファイル専用領域)による機能分割が可能
・複数リージョンへの負荷分散に対応
・障害発生時も別リージョンへ処理を引き継ぎやすい
・https://www.ibm.com/docs/en/zos-basic-skills?topic=zos-introduction-cics
・デメリット
① 学習コストが高い
・CICSプログラムはCOBOLやPL/IでEXEC CICS命令を用いて書くため、開発者には専門知識が必要です。
② 運用管理の複雑さ
・大規模運用ではCICSPlex SM※1やCMAS※2などの管理ツールが必要で、運用負荷が高くなります。
※1 CICSPlex SM:複数のCICSシステムを1つのシステムのように管理するためのグループ
※2 CMAS:CICSPlexを管理する司令塔
・https://www.ibm.com/docs/ja/cics-ts/5.5.0?topic=overview-cicsplex-sm-environment
CICSとIMSの比較
CICSとIMSは、どちらも企業の基幹システムで利用されるオンライン処理基盤です。
似たような目的を持つため比較されることが多いので以下の表にまとめます。
| 項目 | CICS | IMS |
|---|---|---|
| 主な役割 | オンライントランザクション処理 | オンライントランザクション処理+データ管理 |
| 基本思想 | 要求が来たらすぐに応答する | 要求を一旦キューにためて処理する |
| 処理方式 | 直接制御型 | メッセージキュー型 |
| 重視するもの | 応答速度・柔軟性 | 安定性・確実性 |
| 得意分野 | 照会業務、画面処理、営業店端末 | 勘定系、大量トランザクション処理 |
*1
・https://www.ibm.com/docs/en/ims/15.6.0?topic=concepts-subsystem-design-direct-control-versus-queued
・https://www.ibm.com/docs/en/cics-ts/6.x?topic=applications-designing-cics-ims-isc
まとめ
CICSは、IBMのメインフレーム上でオンライン処理(リアルタイム処理)を管理する専用ミドルウェアです。
その役割として、利用者からの要求を受け付け、必要なプログラムを実行し、データを安全に更新して結果を返す、というものを担っています。
参考文献
・https://e-words.jp/w/CICS.html
・https://www.ibm.com/docs/en/cics-ts/5.6.0?topic=applications-transactions-in-cics
・https://www.ibm.com/docs/ja/cics-tx/11.1.0?topic=processing-acid-properties-transactions
・https://arteceed.squares.net/?p=920
・https://www.ibm.com/docs/en/zos-basic-skills?topic=zos-introduction-cics
・https://www.ibm.com/docs/ja/cics-ts/5.5.0?topic=overview-cicsplex-sm-environment
・https://www.ibm.com/docs/en/ims/15.6.0?topic=concepts-subsystem-design-direct-control-versus-queued
・https://www.ibm.com/docs/en/cics-ts/6.x?topic=applications-designing-cics-ims-isc
当資料に掲載の情報・図表に関する注釈
| 番号 | 対象 | 区分 | 出典・利用許諾状況など |
|---|---|---|---|
| *1 | 表 | 自作 | IBMが提供しているサイトを参考に作成https://www.ibm.com/docs/en/ims/15.6.0?topic=concepts-subsystem-design-direct-control-versus-queued https://www.ibm.com/docs/en/cics-ts/6.x?topic=applications-designing-cics-ims-isc |