Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

CICS Transaction Log Analyzer V2 – Analyseur transactions, ABEND et wait states

Objectif du guide

Installer, tester et exploiter cics_transaction_log_analyzer_v2.py, un utilitaire autonome capable d’analyser des logs CICS texte ou CSV monitoring, de dĂ©tecter transactions lentes, ABEND, DB2 wait, file-control wait, MQ/TS/TD wait, incidents sĂ©curitĂ© et clusters transactionnels.

TĂ©lĂ©charger l’utilitaire CICS Transaction Log Analyzer V2

Le bouton principal pointe explicitement vers /static/toolbox/cics_transaction_log_analyzer_v2.py. DĂ©pose ce script dans static/toolbox/ pour l’exposer depuis IDEO-Lab.

La V2 est conçue comme une base d’outillage production CICS : elle ne se contente pas de repĂ©rer un ABEND. Elle agrĂšge par transaction, programme, user, rĂ©gion, ressource, fenĂȘtre horaire et cluster temporel afin de sĂ©parer les symptĂŽmes des causes probables.

Transactions
Analyse response time, p95, max response, CPU, ABEND, user, terminal, region et programme.
Wait states
Détection DB2 wait, file-control wait, MQ wait, TS/TD wait, security wait et storage symptoms.
Triage
Scoring, clusters, baseline compare, root-cause hints et exports HTML / JSON / CSV.

Ce que le moteur analyse

DomaineSignaux analysésDiagnostic produit
Transaction performanceTRANID, response time, CPU, peak response, hourly buckets.Transactions lentes, tendances horaires, outliers et transactions critiques.
ABEND CICSASRA, AEY9, APCT, AEI0, AICA, AKCS.Type d’incident, transaction fautive, programme impliquĂ© et evidence lines.
DB2 waitDFHDB2, DB2WAIT, SQLCODE, high DB2 wait ratio.Suspicion contention DB2, requĂȘte lente, lock/wait ou package Ă  examiner.
File controlDFHFC, FCWAIT, VSAM file, ENQ, CI/CA suspicion.Suspicion fichier VSAM, file-control contention, dataset ou resource issue.
SecurityDFHXS, authorization failure, RACF-like denial, AEY9.AccÚs refusé, transaction ou ressource protégée, user à vérifier.
ResourcesProgram, resource, terminal, region, user, MQ/TS/TD wait.Concentration des risques par programme, région, user ou ressource.
Positionnement : CICS Transaction Log Analyzer V2 est fait pour le support production, les Ă©quipes CICS/DB2, l’analyse d’incidents batch/online, la modernisation d’observabilitĂ© et la prĂ©paration d’un portail de supervision mainframe.

Téléchargement des fichiers

Cette page fournit les liens explicites vers le script Python, les samples CICS, le fichier de policy et le pack complet. Pour IDEO-Lab, les fichiers doivent ĂȘtre dĂ©posĂ©s sous /static/toolbox/.

Utilitaire principal

Script Python autonome, sans dépendance externe, utilisable sur logs CICS texte ou CSV monitoring.

Sample mixed

Incident multi-signal : DB2 wait, FC wait, ABEND, security et ressources.

Download mixed

Sample DB2

Transaction lente dominée par DB2 wait et SQLCODE.

Download DB2

Sample file-control

Incident DFHFC, FCWAIT élevé, ressource fichier et contention.

Download file

Sample security

DFHXS / authorization failure / AEY9 / user à vérifier.

Download security

CSV activity

Export monitoring tabulaire pour tester le mode CSV.

Download CSV

Pack ZIP

Script, samples, policy, exports et rapports de démonstration.

Download ZIP

Arborescence static recommandée

static files
static/
  toolbox/
    cics_transaction_log_analyzer_v2.py
    cics_transaction_log_analyzer_v2_pack.zip
    sample_cics_v2_mixed.log
    sample_cics_v2_baseline.log
    sample_cics_v2_db2.log
    sample_cics_v2_file.log
    sample_cics_v2_security.log
    sample_cics_v2_activity.csv
    sample_cics_v2_policy.json
    cics_transaction_log_analyzer_v2_guide.html
ContrÎle visuel : le bouton Download cics_transaction_log_analyzer_v2.py est présent en haut de la page, dans Téléchargement, dans Installation et dans Fichiers input.

Installation de CICS Transaction Log Analyzer V2

Le script est autonome. Il suffit d’une version Python moderne et d’un fichier input texte ou CSV provenant d’un export CICS, d’un monitoring, d’un rapport incident, d’un sample synthĂ©tique ou d’un fichier normalisĂ© par un outil interne.

1. Arborescence locale recommandée

Project tree
cics_lab/
  bin/
    cics_transaction_log_analyzer_v2.py
  input/
    sample_cics_v2_mixed.log
    sample_cics_v2_baseline.log
    sample_cics_v2_db2.log
    sample_cics_v2_file.log
    sample_cics_v2_security.log
    sample_cics_v2_activity.csv
    sample_cics_v2_policy.json
  output/
    reports/
    csv/
    json/
Lien direct du script Ă  installer

Ce bouton pointe explicitement vers /static/toolbox/cics_transaction_log_analyzer_v2.py.

2. Installation Linux / macOS

Linux / macOS setup
mkdir -p cics_lab/bin cics_lab/input cics_lab/output/reports cics_lab/output/csv cics_lab/output/json
cp cics_transaction_log_analyzer_v2.py cics_lab/bin/
cp sample_cics_v2_* cics_lab/input/
cd cics_lab
python3 bin/cics_transaction_log_analyzer_v2.py --demo mixed

3. Installation Windows PowerShell

Windows PowerShell setup
New-Item -ItemType Directory -Force cics_lab\bin, cics_lab\input, cics_lab\output\reports, cics_lab\output\csv, cics_lab\output\json
Copy-Item .\cics_transaction_log_analyzer_v2.py .\cics_lab\bin\
Copy-Item .\sample_cics_v2_* .\cics_lab\input\
Set-Location .\cics_lab
python .\bin\cics_transaction_log_analyzer_v2.py --demo mixed

4. Test de validation

Validation command
python bin/cics_transaction_log_analyzer_v2.py input/sample_cics_v2_mixed.log \
  --profile production \
  --custom-policy input/sample_cics_v2_policy.json \
  --compare-with input/sample_cics_v2_baseline.log \
  --html output/reports/sample_cics_v2_mixed_report.html \
  --json output/json/sample_cics_v2_mixed_analysis.json \
  --csv-events output/csv/sample_cics_v2_mixed_events.csv \
  --csv-transactions output/csv/sample_cics_v2_mixed_transactions.csv \
  --csv-programs output/csv/sample_cics_v2_mixed_programs.csv \
  --csv-users output/csv/sample_cics_v2_mixed_users.csv \
  --csv-regions output/csv/sample_cics_v2_mixed_regions.csv \
  --csv-resources output/csv/sample_cics_v2_mixed_resources.csv \
  --csv-issues output/csv/sample_cics_v2_mixed_issues.csv \
  --csv-clusters output/csv/sample_cics_v2_mixed_clusters.csv \
  --csv-hourly output/csv/sample_cics_v2_mixed_hourly.csv \
  --csv-compare output/csv/sample_cics_v2_mixed_compare.csv
Résultat attendu : le sample mixed doit produire un statut FAILED, des ABEND, des waits DB2/FC, un score élevé, des clusters et un rapport HTML complet.

Fichiers input attendus

La V2 accepte des logs texte CICS semi-structurĂ©s et des exports CSV monitoring. Les extensions peuvent ĂȘtre .log, .txt, .cics, .lst ou .csv.

Utilitaire nécessaire pour analyser les inputs

TĂ©lĂ©charger d’abord le script Python, puis lancer l’analyse sur un log CICS ou un export CSV.

1. Sources acceptées

SourceContenu typiqueUsage
Logs CICS texteDFHAC, DFHDB2, DFHFC, DFHXS, DFHSR, DFHMQ.Incident analysis, ABEND, wait state, transaction triage.
Monitoring CSVTRANID, REGION, USERID, PROGRAM, RESP, CPU, DB2WAIT, FCWAIT.Analyse tabulaire, p95, max response, top transactions.
Incident extractFenĂȘtre courte autour d’un incident ou ABEND.Root-cause hints et evidence lines.
BaselineFenĂȘtre saine ou pĂ©riode prĂ©cĂ©dente.Comparaison avant/aprĂšs, rĂ©gression response time.
Policy JSONTransactions, programmes, ressources et seuils critiques.RÚgles site-specific et priorisation métier.

2. Exemple minimal de log CICS

sample_cics_v2_mixed.log
08:31:12 REGION=CICSP1 TRANID=PAY1 TASK=18422 USERID=USR001 TERM=A001 PROGRAM=PAYPGM1 RESPONSE=14.2 CPU=0.8 DB2WAIT=11.7 FCWAIT=0.1
08:31:14 DFHDB2 PAY1 TASK=18422 PROGRAM=PAYPGM1 DB2WAIT=11.7 SQLCODE=-911 RESOURCE=PRODDB.PAYROLL
08:31:18 REGION=CICSP1 TRANID=PAY3 TASK=18424 USERID=USR003 TERM=A003 PROGRAM=PAYPGM3 ABEND=ASRA RESPONSE=2.1 CPU=0.9
08:31:20 DFHSR PAY3 TASK=18424 PROGRAM=PAYPGM3 STORAGE VIOLATION DETECTED

3. Samples disponibles

Mixed incident

Cas complet pour valider DB2, FC, ABEND, security, clusters et scoring.

Download

DB2 wait

Cas centré sur DB2WAIT, SQLCODE et transaction lente.

Download

File control

Cas DFHFC, FCWAIT, VSAM resource et contention fichier.

Download

Security

Cas DFHXS / authorization failure / AEY9 / user critique.

Download

Activity CSV

Export tabulaire pour tester le mode monitoring CSV.

Download

Policy JSON

RĂšgles site-specific : transactions critiques, programmes, seuils.

Download

RÚgle de sécurité : un vrai log CICS peut exposer transactions métier, user IDs, terminals, régions, programmes, ressources DB2/VSAM et données opérationnelles. Utiliser --redact avant partage externe.

Utilisation quotidienne

1. Modes démo intégrés

Demo modes
python cics_transaction_log_analyzer_v2.py --demo mixed
python cics_transaction_log_analyzer_v2.py --demo db2
python cics_transaction_log_analyzer_v2.py --demo file
python cics_transaction_log_analyzer_v2.py --demo security

2. Analyse simple d’un fichier

Simple analysis
python cics_transaction_log_analyzer_v2.py input/sample_cics_v2_mixed.log

3. Analyse complĂšte avec exports

Full export analysis
python cics_transaction_log_analyzer_v2.py input/sample_cics_v2_mixed.log \
  --profile production \
  --custom-policy input/sample_cics_v2_policy.json \
  --compare-with input/sample_cics_v2_baseline.log \
  --json output/json/sample_cics_v2_mixed_analysis.json \
  --html output/reports/sample_cics_v2_mixed_report.html \
  --csv-events output/csv/sample_cics_v2_mixed_events.csv \
  --csv-transactions output/csv/sample_cics_v2_mixed_transactions.csv \
  --csv-programs output/csv/sample_cics_v2_mixed_programs.csv \
  --csv-users output/csv/sample_cics_v2_mixed_users.csv \
  --csv-regions output/csv/sample_cics_v2_mixed_regions.csv \
  --csv-resources output/csv/sample_cics_v2_mixed_resources.csv \
  --csv-issues output/csv/sample_cics_v2_mixed_issues.csv \
  --csv-clusters output/csv/sample_cics_v2_mixed_clusters.csv \
  --csv-hourly output/csv/sample_cics_v2_mixed_hourly.csv \
  --csv-compare output/csv/sample_cics_v2_mixed_compare.csv

4. Analyse CSV monitoring

CSV monitoring analysis
python cics_transaction_log_analyzer_v2.py input/sample_cics_v2_activity.csv \
  --profile cics \
  --html output/reports/cics_activity_report.html \
  --csv-transactions output/csv/cics_activity_transactions.csv \
  --csv-hourly output/csv/cics_activity_hourly.csv

5. Mode anonymisé

Redacted report
python cics_transaction_log_analyzer_v2.py input/production_cics.log \
  --redact \
  --html output/reports/production_cics_redacted.html \
  --json output/json/production_cics_redacted.json

6. Mode batch strict

Batch strict mode
python cics_transaction_log_analyzer_v2.py input/nightly_cics.log \
  --profile production \
  --html output/reports/nightly_cics_report.html \
  --csv-issues output/csv/nightly_cics_issues.csv \
  --fail-on CRITICAL
Lecture recommandée : commencer par le rapport HTML, puis utiliser les CSV transactions/programs/users/regions pour identifier les hotspots et alimenter une base SQL ou un dashboard.

ParamĂštres de ligne de commande

1. ParamĂštres d’entrĂ©e et de sortie

ParamĂštreDescriptionExemple
input_fileFichier log CICS ou CSV monitoring Ă  analyser.input/cics.log
--demoScénario intégré : mixed, db2, file, security.--demo mixed
--jsonExporte l’analyse complùte en JSON.--json output/analysis.json
--htmlGénÚre le rapport HTML.--html output/report.html
--csv-eventsExporte les événements normalisés.--csv-events output/events.csv
--csv-transactionsExporte la synthĂšse par transaction.--csv-transactions output/transactions.csv
--csv-programsExporte la synthĂšse par programme.--csv-programs output/programs.csv
--csv-usersExporte la synthĂšse par user.--csv-users output/users.csv
--csv-regionsExporte la synthÚse par région CICS.--csv-regions output/regions.csv
--csv-resourcesExporte les ressources DB2/VSAM/MQ/TS/TD détectées.--csv-resources output/resources.csv
--csv-clustersExporte les clusters temporels d’incident.--csv-clusters output/clusters.csv
--csv-hourlyExporte l’activitĂ© groupĂ©e par heure.--csv-hourly output/hourly.csv
--csv-compareExporte la comparaison avec une baseline.--csv-compare output/compare.csv

2. Paramùtres d’analyse et de gouvernance

ParamÚtreEffetUsage recommandé
--profileProfil : production, cics, db2, file_control, security, training, strict.Adapter les seuils et priorités au contexte.
--custom-policyCharge un JSON de rÚgles site-specific.Déclarer transactions, programmes, ressources et seuils critiques.
--compare-withCompare le fichier courant avec une baseline.DĂ©tecter rĂ©gression de rĂ©ponse ou apparition d’ABEND.
--redactMasque users, resources et identifiants sensibles.Partage externe, ticket support, démonstration.
--fail-onRetourne un code erreur Ă  partir d’une sĂ©vĂ©ritĂ© donnĂ©e.--fail-on ERROR ou --fail-on CRITICAL.

3. Exemple profil DB2

DB2 profile
python cics_transaction_log_analyzer_v2.py input/sample_cics_v2_db2.log \
  --profile db2 \
  --html output/reports/cics_db2_wait_report.html \
  --csv-transactions output/csv/cics_db2_transactions.csv \
  --csv-resources output/csv/cics_db2_resources.csv

Exemples d’utilisation

ScĂ©nario 1 – Incident transaction lente avec DB2 wait

Cas typique : une transaction online a un response time trÚs élevé, DB2WAIT domine le temps total.

DB2 wait incident
python cics_transaction_log_analyzer_v2.py input/sample_cics_v2_db2.log \
  --profile db2 \
  --html output/reports/db2_wait_incident.html \
  --csv-issues output/csv/db2_wait_issues.csv

ScĂ©nario 2 – File control wait / VSAM contention

Cas CICS classique : FCWAIT élevé, ressource fichier chaude, suspicion VSAM ou enqueue.

File control incident
python cics_transaction_log_analyzer_v2.py input/sample_cics_v2_file.log \
  --profile file_control \
  --html output/reports/file_control_incident.html \
  --csv-resources output/csv/file_control_resources.csv

ScĂ©nario 3 – ABEND ASRA / storage violation

Cas applicatif : programme impliqué, transaction en ABEND, evidence DFHSR/DFHAC et user/terminal à corréler.

ASRA incident
python cics_transaction_log_analyzer_v2.py input/sample_cics_v2_mixed.log \
  --profile cics \
  --html output/reports/asra_incident.html \
  --csv-programs output/csv/asra_programs.csv

ScĂ©nario 4 – Incident sĂ©curitĂ© AEY9 / authorization failure

Cas sécurité : transaction non autorisée, ressource protégée, user à vérifier.

Security incident
python cics_transaction_log_analyzer_v2.py input/sample_cics_v2_security.log \
  --profile security \
  --redact \
  --html output/reports/cics_security_redacted.html \
  --csv-users output/csv/cics_security_users.csv

ScĂ©nario 5 – ContrĂŽle nocturne automatisĂ©

Cron entry
0 5 * * * /opt/cics-analyzer/bin/python /opt/cics-analyzer/cics_transaction_log_analyzer_v2.py \
  /data/cics/nightly_cics.log \
  --profile production \
  --html /var/www/reports/cics/nightly_cics_report.html \
  --csv-issues /var/log/cics/nightly_cics_issues.csv \
  --json /var/log/cics/nightly_cics_analysis.json \
  --fail-on CRITICAL >> /var/log/cics/cics_transaction_analyzer.log 2>&1

Corrélation, scoring et lecture CICS

La V2 reconstruit la sĂ©quence d’incident en combinant transaction, task, user, terminal, programme, rĂ©gion, ressource et temps. L’objectif est d’éviter de traiter chaque ligne isolĂ©ment.

1. Exemple de timeline CICS

CICS timeline
08:31:12 TRAN PAY1 RESP=14.2 DB2WAIT=11.7
08:31:14 DFHDB2 PAY1 SQLCODE=-911 RESOURCE=PRODDB.PAYROLL
08:31:18 TRAN PAY3 ABEND=ASRA PROGRAM=PAYPGM3
08:31:20 DFHSR PAY3 STORAGE VIOLATION DETECTED

2. Types de clusters produits

ClusterSignaux typiquesLecture opérationnelle
DB2 wait dominatedDB2WAIT Ă©levĂ©, DFHDB2, SQLCODE, response time fort.Suspicion lock, requĂȘte lente, package DB2 ou table chaude.
File-control contentionFCWAIT élevé, DFHFC, ressource fichier, VSAM.Fichier chaud, enqueue, VSAM split ou allocation lente.
Application ABENDASRA, AEI0, APCT, DFHSR, programme impliqué.Défaut programme, storage violation, module absent ou erreur CICS API.
Security issueAEY9, DFHXS, authorization failure, user/resource.Autorisation manquante, profil sécurité ou ressource protégée.
MQ/TS/TD resourceDFHMQ, DFHTS, DFHTD, wait spécifique.Attente queue, temporary storage ou transient data.

3. Bon réflexe de diagnostic

  • Comparer RESPONSE et les waits : DB2WAIT, FCWAIT, MQWAIT, TSWAIT, TDWAIT.
  • Regarder le programme dominant avant de conclure sur la transaction.
  • RepĂ©rer si plusieurs transactions touchent la mĂȘme ressource.
  • VĂ©rifier si le problĂšme est concentrĂ© sur une rĂ©gion CICS ou gĂ©nĂ©ralisĂ©.
  • Utiliser une baseline pour Ă©viter de confondre charge normale et incident.
Attention : le moteur propose des candidats de root cause. Le diagnostic final doit ĂȘtre validĂ© par les Ă©quipes CICS, DB2, sĂ©curitĂ© ou storage selon le domaine dominant.

Exports et exploitation des résultats

Rapport HTML

Vue lisible : score, transactions, ABEND, clusters, root-cause hints et evidence lines.

Analyse JSON

Format complet pour API, ingestion SQL, stockage historique ou comparaison automatique.

Transactions CSV

Une ligne par transaction : response, p95, max, waits, ABEND, score.

Programs / Users / Regions CSV

Vue par programme, user et région pour identifier hotspots et responsabilités.

Resources CSV

DB2 tables, VSAM files, MQ queues, TS/TD resources et ressources sensibles.

Clusters / Hourly / Compare CSV

Corrélation temporelle, buckets horaires et comparaison baseline.

Exemple de synthĂšse console

Console output
CICS Transaction Log Analyzer V2
Status           : FAILED
Highest severity : CRITICAL
Risk score       : 100/100
Transactions     : 6
Programs         : 6
Users            : 7
Regions          : 1
Resources        : 7
Clusters         : 1
ABENDs           : 4

Idée de table SQL pour historisation

SQL model idea
CREATE TABLE cics_transaction_analyzer_run (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    source_name VARCHAR(255),
    profile VARCHAR(32),
    status VARCHAR(32),
    highest_severity VARCHAR(16),
    risk_score INTEGER,
    transaction_count INTEGER,
    program_count INTEGER,
    user_count INTEGER,
    region_count INTEGER,
    resource_count INTEGER,
    abend_count INTEGER,
    report_path VARCHAR(500),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Vision produit : la V2 peut devenir une brique de portail CICS : historique SQL, heatmaps par transaction, recherche par programme, surveillance des resources et comparaison avant/aprĂšs changement applicatif.

Dépannage et bonnes pratiques

1. Le script ne détecte pas de transaction

Cause possibleCorrection
Le fichier n’est pas un texte brut ou CSV lisible.Exporter en texte ou CSV sans conversion Word/PDF image.
Les colonnes monitoring ne sont pas connues.Renommer ou mapper les colonnes vers TRANID, REGION, PROGRAM, RESPONSE, CPU, DB2WAIT, FCWAIT.
Le log ne contient que des messages applicatifs.Ajouter DFHAC/DFHDB2/DFHFC/DFHXS ou un export monitoring CICS.
Format site spécifique.Créer un pré-normaliseur ou enrichir les rÚgles parser.

2. Trop d’issues remontĂ©es

Certains logs CICS sont trÚs bruyants. Commencer par choisir un profil ciblé (db2, file_control, security) et utiliser une baseline pour distinguer incident et charge normale.

Focused analysis
python cics_transaction_log_analyzer_v2.py input/cics_window.log \
  --profile db2 \
  --compare-with input/cics_baseline.log \
  --fail-on CRITICAL \
  --html output/reports/focused_cics_db2_report.html

3. Check-list avant partage externe

  • Utiliser --redact pour masquer users, terminals, resources et identifiants sensibles.
  • Anonymiser transactions mĂ©tiers, rĂ©gions, programmes et noms DB2/VSAM si nĂ©cessaire.
  • Conserver une copie brute interne pour valider le parsing et les evidence lines.
  • Ne pas conclure uniquement sur l’ABEND final : lire les waits et les messages prĂ©cĂ©dents.
  • Valider le diagnostic avec l’équipe CICS/DB2/security/storage selon le domaine dominant.
Point critique : les logs CICS peuvent rĂ©vĂ©ler des transactions mĂ©tier et ressources sensibles. Les exports doivent ĂȘtre traitĂ©s comme des documents opĂ©rationnels confidentiels.