CICS Transaction Log Analyzer V2 â Analyseur transactions, ABEND et wait states
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.
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.
Ce que le moteur analyse
| Domaine | Signaux analysés | Diagnostic produit |
|---|---|---|
| Transaction performance | TRANID, response time, CPU, peak response, hourly buckets. | Transactions lentes, tendances horaires, outliers et transactions critiques. |
| ABEND CICS | ASRA, AEY9, APCT, AEI0, AICA, AKCS. | Type dâincident, transaction fautive, programme impliquĂ© et evidence lines. |
| DB2 wait | DFHDB2, DB2WAIT, SQLCODE, high DB2 wait ratio. | Suspicion contention DB2, requĂȘte lente, lock/wait ou package Ă examiner. |
| File control | DFHFC, FCWAIT, VSAM file, ENQ, CI/CA suspicion. | Suspicion fichier VSAM, file-control contention, dataset ou resource issue. |
| Security | DFHXS, authorization failure, RACF-like denial, AEY9. | AccÚs refusé, transaction ou ressource protégée, user à vérifier. |
| Resources | Program, resource, terminal, region, user, MQ/TS/TD wait. | Concentration des risques par programme, région, user ou ressource. |
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/.
Script Python autonome, sans dépendance externe, utilisable sur logs CICS texte ou CSV monitoring.
Incident multi-signal : DB2 wait, FC wait, ABEND, security et ressources.
Transaction lente dominée par DB2 wait et SQLCODE.
Incident DFHFC, FCWAIT élevé, ressource fichier et contention.
DFHXS / authorization failure / AEY9 / user à vérifier.
Export monitoring tabulaire pour tester le mode CSV.
Script, samples, policy, exports et rapports de démonstration.
Arborescence static recommandée
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.htmlInstallation 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
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/Ce bouton pointe explicitement vers /static/toolbox/cics_transaction_log_analyzer_v2.py.
2. Installation Linux / macOS
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 mixed3. Installation Windows PowerShell
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 mixed4. Test de validation
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.csvFichiers 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.
TĂ©lĂ©charger dâabord le script Python, puis lancer lâanalyse sur un log CICS ou un export CSV.
1. Sources acceptées
| Source | Contenu typique | Usage |
|---|---|---|
| Logs CICS texte | DFHAC, DFHDB2, DFHFC, DFHXS, DFHSR, DFHMQ. | Incident analysis, ABEND, wait state, transaction triage. |
| Monitoring CSV | TRANID, REGION, USERID, PROGRAM, RESP, CPU, DB2WAIT, FCWAIT. | Analyse tabulaire, p95, max response, top transactions. |
| Incident extract | FenĂȘtre courte autour dâun incident ou ABEND. | Root-cause hints et evidence lines. |
| Baseline | FenĂȘtre saine ou pĂ©riode prĂ©cĂ©dente. | Comparaison avant/aprĂšs, rĂ©gression response time. |
| Policy JSON | Transactions, programmes, ressources et seuils critiques. | RÚgles site-specific et priorisation métier. |
2. Exemple minimal de log CICS
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 DETECTED3. Samples disponibles
Cas complet pour valider DB2, FC, ABEND, security, clusters et scoring.
Cas centré sur DB2WAIT, SQLCODE et transaction lente.
Cas DFHFC, FCWAIT, VSAM resource et contention fichier.
Cas DFHXS / authorization failure / AEY9 / user critique.
Export tabulaire pour tester le mode monitoring CSV.
RĂšgles site-specific : transactions critiques, programmes, seuils.
--redact avant partage externe.Utilisation quotidienne
1. Modes démo intégrés
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 security2. Analyse simple dâun fichier
python cics_transaction_log_analyzer_v2.py input/sample_cics_v2_mixed.log3. Analyse complĂšte avec exports
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.csv4. Analyse CSV monitoring
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.csv5. Mode anonymisé
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.json6. Mode batch strict
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 CRITICALParamĂštres de ligne de commande
1. ParamĂštres dâentrĂ©e et de sortie
| ParamĂštre | Description | Exemple |
|---|---|---|
input_file | Fichier log CICS ou CSV monitoring Ă analyser. | input/cics.log |
--demo | Scénario intégré : mixed, db2, file, security. | --demo mixed |
--json | Exporte lâanalyse complĂšte en JSON. | --json output/analysis.json |
--html | GénÚre le rapport HTML. | --html output/report.html |
--csv-events | Exporte les événements normalisés. | --csv-events output/events.csv |
--csv-transactions | Exporte la synthĂšse par transaction. | --csv-transactions output/transactions.csv |
--csv-programs | Exporte la synthĂšse par programme. | --csv-programs output/programs.csv |
--csv-users | Exporte la synthĂšse par user. | --csv-users output/users.csv |
--csv-regions | Exporte la synthÚse par région CICS. | --csv-regions output/regions.csv |
--csv-resources | Exporte les ressources DB2/VSAM/MQ/TS/TD détectées. | --csv-resources output/resources.csv |
--csv-clusters | Exporte les clusters temporels dâincident. | --csv-clusters output/clusters.csv |
--csv-hourly | Exporte lâactivitĂ© groupĂ©e par heure. | --csv-hourly output/hourly.csv |
--csv-compare | Exporte la comparaison avec une baseline. | --csv-compare output/compare.csv |
2. ParamĂštres dâanalyse et de gouvernance
| ParamÚtre | Effet | Usage recommandé |
|---|---|---|
--profile | Profil : production, cics, db2, file_control, security, training, strict. | Adapter les seuils et priorités au contexte. |
--custom-policy | Charge un JSON de rÚgles site-specific. | Déclarer transactions, programmes, ressources et seuils critiques. |
--compare-with | Compare le fichier courant avec une baseline. | DĂ©tecter rĂ©gression de rĂ©ponse ou apparition dâABEND. |
--redact | Masque users, resources et identifiants sensibles. | Partage externe, ticket support, démonstration. |
--fail-on | Retourne un code erreur Ă partir dâune sĂ©vĂ©ritĂ© donnĂ©e. | --fail-on ERROR ou --fail-on CRITICAL. |
3. Exemple profil DB2
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.csvExemples 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.
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.csvScĂ©nario 2 â File control wait / VSAM contention
Cas CICS classique : FCWAIT élevé, ressource fichier chaude, suspicion VSAM ou enqueue.
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.csvScĂ©nario 3 â ABEND ASRA / storage violation
Cas applicatif : programme impliqué, transaction en ABEND, evidence DFHSR/DFHAC et user/terminal à corréler.
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.csvScĂ©nario 4 â Incident sĂ©curitĂ© AEY9 / authorization failure
Cas sécurité : transaction non autorisée, ressource protégée, user à vérifier.
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.csvScĂ©nario 5 â ContrĂŽle nocturne automatisĂ©
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>&1Corré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
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 DETECTED2. Types de clusters produits
| Cluster | Signaux typiques | Lecture opérationnelle |
|---|---|---|
| DB2 wait dominated | DB2WAIT Ă©levĂ©, DFHDB2, SQLCODE, response time fort. | Suspicion lock, requĂȘte lente, package DB2 ou table chaude. |
| File-control contention | FCWAIT élevé, DFHFC, ressource fichier, VSAM. | Fichier chaud, enqueue, VSAM split ou allocation lente. |
| Application ABEND | ASRA, AEI0, APCT, DFHSR, programme impliqué. | Défaut programme, storage violation, module absent ou erreur CICS API. |
| Security issue | AEY9, DFHXS, authorization failure, user/resource. | Autorisation manquante, profil sécurité ou ressource protégée. |
| MQ/TS/TD resource | DFHMQ, DFHTS, DFHTD, wait spécifique. | Attente queue, temporary storage ou transient data. |
3. Bon réflexe de diagnostic
- Comparer
RESPONSEet 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.
Exports et exploitation des résultats
Vue lisible : score, transactions, ABEND, clusters, root-cause hints et evidence lines.
Format complet pour API, ingestion SQL, stockage historique ou comparaison automatique.
Une ligne par transaction : response, p95, max, waits, ABEND, score.
Vue par programme, user et région pour identifier hotspots et responsabilités.
DB2 tables, VSAM files, MQ queues, TS/TD resources et ressources sensibles.
Corrélation temporelle, buckets horaires et comparaison baseline.
Exemple de synthĂšse console
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 : 4Idée de table SQL pour historisation
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
);Dépannage et bonnes pratiques
1. Le script ne détecte pas de transaction
| Cause possible | Correction |
|---|---|
| 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.
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.html3. Check-list avant partage externe
- Utiliser
--redactpour 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.
