ABEND Intelligence V2 â DĂ©codeur ABEND / RC / Reason Code pour MVS / zOS
Installer, tester et exploiter abend_intelligence_v2.py, un utilitaire autonome qui décode les ABEND, return codes, condition codes, reason codes et messages systÚme depuis une ligne de commande ou un fichier JOBLOG / SYSOUT.
Le bouton principal pointe explicitement vers /static/toolbox/abend_intelligence_v2.py. DĂ©pose ce script dans static/toolbox/ pour lâexposer depuis IDEO-Lab.
ABEND Intelligence V2 est une brique complémentaire du JobLog Doctor : elle se concentre sur le décodage profond des codes de fin anormale, des return codes et des messages de contexte. Elle peut fonctionner en mode direct, par exemple S0C7 SB37 S913 U4038 RC=8 MAXCC=16, ou analyser un fichier complet pour extraire automatiquement les signaux.
Ce que le moteur analyse
| Domaine | Signaux analysés | Diagnostic produit |
|---|---|---|
| System ABEND | S0C7, S0C4, S806, S913, SB37, S878 | Cause probable, domaine technique, gravité, actions recommandées. |
| User ABEND | U4038, U0999, codes applicatifs, Language Environment | Contexte runtime, message CEE, cause applicative probable. |
| Return Code | RC=4, RC=8, RC=12, RC=16, MAXCC, LASTCC | Niveau warning/error/critical selon seuils configurables. |
| Reason Code | REASON=, RSN=, valeurs hexadĂ©cimales et numĂ©riques | ComplĂ©ment de diagnostic attachĂ© Ă lâABEND ou au message systĂšme. |
| Message families | IEF, IEC, IGD, ICH, IRR, CEE, IDC, ICE, IEW, $HASP | Classification technique : JCL, dataset, sécurité, runtime, compiler, JES. |
| SynthÚse incident | Timeline, evidence lines, context windows, score de risque | Résumé exploitable par production support, DBA, développeur COBOL ou équipe sécurité. |
Téléchargement des fichiers
Cette page fournit des liens explicites vers lâutilitaire Python, les samples, le catalogue ABEND et les rapports de dĂ©monstration. Pour IDEO-Lab, les fichiers doivent ĂȘtre placĂ©s sous /static/toolbox/.
Script autonome Python, sans dépendance externe, utilisable en direct ou sur fichier input.
Data exception COBOL / champ numérique invalide / copybook mismatch.
Dataset space problem, allocation failure, volume or SPACE issue.
Security/RACF problem, access denied, protected dataset.
S806, SORT/ICE, MAXCC et messages variés pour test plus large.
Catalogue intégré des codes ABEND exportable et enrichissable.
Script, samples, exports, catalogue et rapports de démonstration.
Arborescence static recommandée
static/
toolbox/
abend_intelligence_v2.py
abend_intelligence_v2_catalog.json
abend_intelligence_v2_pack.zip
sample_abend_v2_s0c7.txt
sample_abend_v2_sb37.txt
sample_abend_v2_s913.txt
sample_abend_v2_mixed.txt
abend_intelligence_v2_guide.htmlInstallation dâABEND Intelligence V2
Le script est autonome et ne nĂ©cessite aucune base de donnĂ©es. Il suffit dâavoir Python disponible et un fichier texte reprĂ©sentant un JOBLOG, un SYSOUT, un JESYSMSG ou un sample synthĂ©tique.
1. Arborescence locale recommandée
abend_lab/
bin/
abend_intelligence_v2.py
input/
sample_abend_v2_s0c7.txt
sample_abend_v2_sb37.txt
sample_abend_v2_s913.txt
sample_abend_v2_mixed.txt
output/
reports/
csv/
json/Ce bouton pointe explicitement vers /static/toolbox/abend_intelligence_v2.py.
2. Installation Linux / macOS
mkdir -p abend_lab/bin abend_lab/input abend_lab/output/reports abend_lab/output/csv abend_lab/output/json
cp abend_intelligence_v2.py abend_lab/bin/
cp sample_abend_v2_*.txt abend_lab/input/
cp abend_intelligence_v2_catalog.json abend_lab/input/
cd abend_lab
python3 bin/abend_intelligence_v2.py --demo s0c73. Installation Windows PowerShell
New-Item -ItemType Directory -Force abend_lab\bin, abend_lab\input, abend_lab\output\reports, abend_lab\output\csv, abend_lab\output\json
Copy-Item .\abend_intelligence_v2.py .\abend_lab\bin\
Copy-Item .\sample_abend_v2_*.txt .\abend_lab\input\
Copy-Item .\abend_intelligence_v2_catalog.json .\abend_lab\input\
Set-Location .\abend_lab
python .\bin\abend_intelligence_v2.py --demo s0c74. Test de validation
python bin/abend_intelligence_v2.py --input input/sample_abend_v2_s0c7.txt \
--html output/reports/sample_s0c7_report.html \
--json output/json/sample_s0c7_analysis.json \
--csv-findings output/csv/sample_s0c7_findings.csv \
--csv-timeline output/csv/sample_s0c7_timeline.csvFichiers input attendus
ABEND Intelligence V2 accepte deux types dâentrĂ©e : des codes passĂ©s directement en arguments, ou un fichier texte brut reprĂ©sentant un JOBLOG/JESYSMSG/SYSOUT/SYSPRINT/CEEDUMP partiel ou complet.
TĂ©lĂ©charger dâabord le script Python, puis lancer lâanalyse directe ou sur fichier texte.
1. Types de fichiers acceptés
| Source | Contenu typique | Usage |
|---|---|---|
JESYSMSG | Messages IEF/IEC/ICH/IGD/CEE, RC, ABEND, reason codes. | Source principale pour diagnostiquer la fin anormale. |
JESMSGLG | Messages JES/HASP de début/fin job, RC global. | Contexte job, date, start/end, job status. |
SYSOUT/SYSPRINT | Messages applicatifs, compiler, utilities, SORT, IDCAMS. | Compléter la root cause avec messages métier ou utility. |
CEEDUMP/SYSABEND | Informations runtime et dump Language Environment. | Contexte avancé pour U4038, S0C7, S0C4. |
| Liste de codes directe | S0C7 SB37 S913 U4038 RC=8 MAXCC=16 | Décodage rapide sans fichier. |
2. Exemple minimal de fichier input
IEF450I PAYROLL1 STEP030 PAYLOAD - ABEND=S0C7 U0000 REASON=00000000
CEE3207S The system detected a data exception.
PAYERR01E Invalid packed decimal field detected in PAYROLL.INPUT.G0007V00
IEF472I PAYROLL1 STEP030 - COMPLETION CODE - SYSTEM=S0C7 USER=0000 REASON=00000000
$HASP395 PAYROLL1 ENDED - RC=00123. Samples disponibles
ContrĂŽle numeric fields, copybook, packed decimal, feed applicatif.
ContrĂŽle SPACE, volumes, SMS, allocation et dataset full.
ContrÎle RACF, permission dataset, accÚs refusé, profil sécurité.
ContrĂŽle load module, STEPLIB/JOBLIB, SORT RC/MAXCC et messages utility.
--redact avant de partager un rapport externe.Utilisation quotidienne
1. Décodage direct de codes
Le mode le plus rapide consiste Ă passer les codes directement Ă lâoutil.
python abend_intelligence_v2.py S0C7 SB37 S913 U4038 RC=8 MAXCC=162. Modes démo intégrés
python abend_intelligence_v2.py --demo s0c7
python abend_intelligence_v2.py --demo sb37
python abend_intelligence_v2.py --demo s913
python abend_intelligence_v2.py --demo mixed3. Analyse simple dâun fichier
python abend_intelligence_v2.py --input input/sample_abend_v2_s0c7.txt4. Analyse avec tous les exports
python abend_intelligence_v2.py --input input/sample_abend_v2_s0c7.txt \
--json output/json/sample_s0c7_analysis.json \
--csv-findings output/csv/sample_s0c7_findings.csv \
--csv-timeline output/csv/sample_s0c7_timeline.csv \
--html output/reports/sample_s0c7_report.html5. Mode anonymisé
python abend_intelligence_v2.py --input input/production_joblog.txt \
--redact \
--html output/reports/production_abend_redacted.html \
--json output/json/production_abend_redacted.json6. Mode batch strict
python abend_intelligence_v2.py --input input/nightly_joblog.txt \
--html output/reports/nightly_abend_report.html \
--csv-findings output/csv/nightly_abend_findings.csv \
--fail-on ERRORParamĂštres de ligne de commande
1. ParamĂštres dâentrĂ©e et de sortie
| ParamĂštre | Description | Exemple |
|---|---|---|
codes | Codes passés directement en arguments. | S0C7 SB37 RC=8 MAXCC=16 |
--input | Fichier JOBLOG/SYSOUT/JESYSMSG texte Ă analyser. | --input input/joblog.txt |
--demo | Lance un scénario intégré : s0c7, sb37, s913, mixed. | --demo s0c7 |
--json | Exporte lâanalyse complĂšte en JSON. | --json output/analysis.json |
--csv-findings | Exporte les codes, anomalies, severities et recommandations. | --csv-findings output/findings.csv |
--csv-timeline | Exporte la timeline des événements détectés. | --csv-timeline output/timeline.csv |
--html | GénÚre le rapport HTML. | --html output/report.html |
--export-catalog | Exporte le catalogue ABEND intégré en JSON. | --export-catalog catalog.json |
2. ParamĂštres dâanalyse et de gouvernance
| ParamÚtre | Effet | Usage recommandé |
|---|---|---|
--custom-catalog | Charge un catalogue JSON additionnel ou personnalisé. | Ajouter des codes site-specific ou des user ABEND applicatifs. |
--redact | Masque les noms de datasets dans les sorties. | Partage externe, ticket support, rapport anonymisé. |
--fail-on | Retourne un code erreur Ă partir dâune sĂ©vĂ©ritĂ© donnĂ©e. | --fail-on ERROR ou --fail-on CRITICAL. |
--context-lines | Nombre de lignes avant/aprĂšs conservĂ©es autour dâun finding. | Augmenter si le diagnostic manque de contexte. |
--risk-threshold | Seuil de score utilisé pour qualifier la criticité globale. | Adapter au contexte formation, batch ou production. |
3. Exemple avec catalogue personnalisé
python abend_intelligence_v2.py --input input/joblog.txt \
--custom-catalog input/site_abend_catalog.json \
--html output/reports/joblog_custom_catalog.htmlExemples dâutilisation
ScĂ©nario 1 â DĂ©codage rapide pendant un incident
Un exploitant voit un code ABEND et veut immédiatement une lecture métier.
python abend_intelligence_v2.py S0C7 U4038 RC=12ScĂ©nario 2 â S0C7 sur batch applicatif
Cas COBOL classique : data exception, copybook mismatch ou champ packed decimal invalide.
python abend_intelligence_v2.py --input input/sample_abend_v2_s0c7.txt \
--html output/reports/s0c7_report.html \
--csv-findings output/csv/s0c7_findings.csvScĂ©nario 3 â SB37 / problĂšme dâespace dataset
Cas exploitation : dataset plein, secondary allocation insuffisante, SMS storage class ou volume à vérifier.
python abend_intelligence_v2.py --input input/sample_abend_v2_sb37.txt \
--html output/reports/sb37_report.html \
--csv-findings output/csv/sb37_findings.csvScĂ©nario 4 â S913 / accĂšs RACF refusĂ©
Cas sécurité : dataset protégé, user non autorisé, profil RACF à corriger.
python abend_intelligence_v2.py --input input/sample_abend_v2_s913.txt \
--redact \
--html output/reports/s913_redacted_report.html \
--json output/json/s913_redacted_analysis.jsonScĂ©nario 5 â ExĂ©cution nocturne automatisĂ©e
0 5 * * * /opt/abend/bin/python /opt/abend/abend_intelligence_v2.py \
--input /data/joblogs/nightly_joblog.txt \
--html /var/www/reports/abend/nightly_abend_report.html \
--csv-findings /var/log/abend/nightly_abend_findings.csv \
--json /var/log/abend/nightly_abend_analysis.json \
--fail-on ERROR >> /var/log/abend/abend_intelligence.log 2>&1ABEND catalog â Lecture opĂ©rationnelle
La V2 embarque un catalogue ABEND enrichi et exportable. Ce catalogue transforme un code brut en explication, zone probable, gravité et recommandations.
Fichier JSON utile pour documentation, enrichissement manuel ou intégration dans une base SQL.
| Code | Lecture rapide | Zone probable | Action recommandée |
|---|---|---|---|
S0C1 | Operation exception | Programme / module / instruction invalide | Vérifier load module, compilation, linkage, mauvais entry point. |
S0C4 | Protection exception | Adressage mémoire | ContrÎler pointeurs, linkage section, bounds, dump registers. |
S0C7 | Data exception | Données numériques COBOL | ContrÎler copybook, packed decimal, zoned decimal, feed amont. |
S0CB | Decimal divide exception | Calcul numérique | ContrÎler division par zéro, signe, format numérique. |
S013 | Open error | Dataset / DCB / format | Vérifier DD, DCB, RECFM, LRECL, BLKSIZE, dataset existant. |
S322 | CPU time limit exceeded | Runtime / boucle / volumĂ©trie | ContrĂŽler TIME, boucle applicative, explosion volume, requĂȘtes DB2. |
S522 | Wait time exceeded | Attente / ressource | ContrÎler contention, dataset enqueue, attente DB2/CICS ou opérateur. |
S806 | Load module not found | STEPLIB/JOBLIB/LNKLST | Vérifier EXEC PGM, bibliothÚques, module load, APF si nécessaire. |
S878/S80A | Storage shortage | Mémoire région / virtual storage | ContrÎler REGION, paramÚtres LE, fuite mémoire, volumétrie. |
S913 | Security violation | RACF / dataset access | Vérifier user, dataset profile, access list, classe RACF. |
SB37 | Dataset space exhausted | Allocation disque | ContrĂŽler SPACE, volume, secondary allocation, SMS storage class. |
SD37 | No secondary extent | Allocation dataset | Augmenter allocation ou définir secondary quantity. |
SE37 | Extent/volume limit | Volume/dataset growth | Réviser allocation, multi-volume, SMS policies. |
U4038 | Language Environment user abend | COBOL/LE runtime | Lire messages CEE, SYSOUT applicatif et cause précédente. |
Exporter le catalogue intégré
python abend_intelligence_v2.py --export-catalog output/json/abend_catalog.jsonExports et exploitation des résultats
Vue lisible : score, root causes, findings, timeline, contexte, recommandations et preuves.
Format complet pour API, ingestion SQL, archivage ou comparaison automatique.
Une ligne par code ou anomalie, avec sévérité, cause probable, contexte et recommandation.
Une ligne par Ă©vĂ©nement dĂ©tectĂ©, utile pour reconstituer la sĂ©quence dâincident.
Catalogue embarqué exportable pour documentation, enrichissement ou stockage SQL.
Mode batch strict via --fail-on ERROR ou --fail-on CRITICAL.
Exemple de synthĂšse console
ABEND Intelligence V2
Status : FAILED
Highest severity : CRITICAL
Risk score : 100/100
Codes detected : S0C7, U4038, RC=12
Findings : 6
Timeline events : 9
ROOT CAUSE CANDIDATE
S0C7 - Data exception
Area: Data quality / COBOL numeric fields
Recommendation: Validate input file layout against the COBOL copybook.Idée de table SQL pour historisation
CREATE TABLE abend_intelligence_run (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
source_name VARCHAR(255),
status VARCHAR(32),
highest_severity VARCHAR(16),
risk_score INTEGER,
detected_codes VARCHAR(500),
finding_count INTEGER,
timeline_count INTEGER,
report_path VARCHAR(500),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Dépannage et bonnes pratiques
1. Le script ne détecte aucun ABEND
| Cause possible | Correction |
|---|---|
| Le fichier nâest pas un texte brut. | Exporter depuis SDSF/JES en format texte, pas en PDF image. |
| Les lignes ont été tronquées ou reformattées. | Conserver la largeur fixe et éviter Word/Excel avant parsing. |
| Le fichier contient seulement la sortie applicative. | Récupérer aussi JESYSMSG/JESMSGLG pour obtenir IEF450I/IEF472I. |
| Code site-specific non connu. | Ajouter le code dans un catalogue personnalisé via --custom-catalog. |
2. Trop de findings remontées
Certains fichiers contiennent beaucoup de messages applicatifs. Utiliser le CSV findings pour filtrer, ajuster le seuil --fail-on et enrichir progressivement le catalogue pour distinguer bruit et vrais incidents.
python abend_intelligence_v2.py --input input/joblog.txt \
--context-lines 1 \
--fail-on CRITICAL \
--html output/reports/joblog_abend_report.html3. Check-list avant partage dâun vrai joblog
- Utiliser
--redactpour masquer les datasets dans les rapports. - Supprimer ou anonymiser user IDs, jobnames sensibles, applications, volumes et environnements.
- Conserver une copie brute interne pour vérifier la fidélité du parsing.
- Garder le contexte : date, fenĂȘtre batch, scheduler, application, incident utilisateur.
- Ne jamais conclure uniquement sur lâABEND final : lire les messages prĂ©cĂ©dents.
