Source-derived document; review findings and open questions with the application owner.
Operations
In this document
Operations
The evidence supports only a partial, source-level description of CARDDEMO/CARD-DEMO operations. It identifies COBOL, CICS, BMS, VSAM, JCL, sequential files, and optional DB2, IMS, MQ, assembly, REXX, GSAM/BSAM, Control-M, and UNIX components, but does not establish that these components compile, link, deploy, connect, or run together. Ownership, complete topology, production use, data correctness, and operational support arrangements are also unverified README.md; CARDDEMO.CSD; E0001 E0010 E0017 E0038 E0044.
Online processing
The clearest recorded online path begins at CICS sign-on transaction CC00. COSGN00C validates USRSEC, redisplays errors, exits on PF3, and routes authenticated ADMIN users to COADM01C; other authenticated users are routed to COMEN01C using XCTL and a commarea [COSGN00C.cbl; COSGN00.bms; COSGN00.CPY] E0028 E0030 E0034.
Recorded journeys include account viewing and updating, card listing and search, transaction processing, bill payment, reporting, administration, and user maintenance. These journeys use BMS maps, terminal input and output, paging, and VSAM browse or update operations, with named programs including COACTVWC, COACTUPC, COCRDLIC, COCRDSEC, COBIL00C, and COACCT01. The available evidence does not provide complete screen behavior, key actions, commarea layouts, state transitions, or response handling E0013 E0026 E0038.
Account viewing reportedly reads cross-reference, account-master, and customer-master data. Account updating validates input and commarea values and may lock and rewrite account and customer records, including handling for missing records, concurrent updates, and customer-update failure. Exact validation remains uncertain because CSLKPCDY is absent E0025 E0029. Bill payment reportedly checks account existence, positive balance, duplicate transaction ID, and confirmation before creating a transaction and updating a balance. Identifier uniqueness, concurrency, commit behavior, and the effect of non-confirmation have not been demonstrated.
Transaction programs reportedly validate account/card relationships, limits, expiry, and references; update balances or account data; and may write rejects to DALYREJS. CBTRN02C visibly performs substantive validation and posting. Claims that CBTRN01C posts transactions are contradicted by the visible absence of WRITE, REWRITE, and DELETE operations [COTRN00C.cbl] [COTRN01C.cbl] [COTRN02C.cbl] [CBTRN01C.cbl] [CBTRN02C.cbl]. Atomicity, commit or rollback, reconciliation, and recovery remain unestablished.
Batch and scheduled processing
Batch intent covers initialization, loading and replacement, posting, interest and fee calculation, statements, reports, imports, exports, indexing, backups, cleanup, and scheduled workflows. JCL and utility evidence includes IDCAMS, sorting, FTP, PDF conversion, and Control-M/UNIX-related processing. REPROCT.ctl confirms a REPRO from FILEIN to FILEOUT, but does not establish filtering, validation, or the identity of either dataset E0022.
CBEXPORT and CBIMPORT are described, but the export layout is unavailable and a possible sequential-versus-indexed file mismatch remains unresolved. Reported job orders conflict, and the available evidence does not establish EOF handling, partial-update behavior, abend response, restart, rerun, or compensation. COND=(4,LT) in CICCMP.jcl is inconsistent with the stated claim that NEWCOPY follows a successful compile under ordinary JCL semantics E0007 E0040 E0045 [CICCMP.jcl] [BLDCIDB2.prc] [IMSMQCMP.jcl].
Data and external processing
Catalog evidence reports 209 entries under AWS.M2.CARDDEMO, including NONVSAM, DATA, INDEX, CLUSTER, and GDG components; LISTCAT completed with condition code 0 [LISTCAT.txt]. However, reported layouts and keys conflict or remain incomplete. Examples include differing account, card, transaction, and customer record lengths; inconsistent key widths; a ten-byte account ZIP versus a five-byte screen field; and a 350-byte transaction layout versus a 500-byte migration format [ACCTFILE.jcl] [CARDFILE.jcl] [TRANFILE.jcl] [XREFFILE.jcl] [CVACT01Y.cpy] [CVTRA05Y.cpy] E0002 E0036.
Interfaces are declared for CICS, BMS, commareas, VSAM, DB2, IMS, GSAM/BSAM, MQ, JCL, IDCAMS, RACF, JES/TSO, SDSF, FTP, and scheduling tools. Queue names, endpoints, contracts, transformations, encodings, external ownership, and dataset identities are unknown E0035 E0046. Optional authorization processing combines MQ, IMS, DB2, and VSAM, but cross-system atomicity is unproven. PAUTDTL1 declares 200 bytes while an unload uses LRECL=206; relationships among AUTHFRDS, DBPAUTP0, and differing error handling remain unresolved [COPAUA0C.cbl] [COPAUS2C.cbl] [DBPAUTP0.dbd] [UNLDPADB.JCL] E0009 E0011.
Operational controls and recovery
Security references include USRSEC, RACF, and user-maintenance programs, but effective authorization, auditing, segregation of duties, lockout, encryption, masking, queue permissions, network protection, and identity propagation are unverified. Fixed-length plaintext passwords, example or literal FTP credentials, possible exposed CVV or government identifiers, destructive replacement, JOURNAL(NO), RECOVERY(NONE), and ERROROPTION(IGNORE) are risk indicators rather than confirmed incidents [FTPJCL.JCL] E0016 E0032 E0033.
The evidence does not establish backup completeness, restoration success, restart points, reconciliation, transaction boundaries, or operational alerting. The immediate characterization priority is execution-based: determine which sources build, bind, deploy, connect, and run together, then test online journeys, batch chains, scheduling, data boundaries, failure, rerun, backup, and restoration while recording return codes, datasets, bindings, commareas, commits, logs, external effects, and recovery behavior.
Automated evidence review
Operations review
Overall assessment
The draft is appropriately cautious and generally distinguishes source declarations and intended behavior from demonstrated execution. It should not be treated as approval or evidence that CARDDEMO/CARD-DEMO is an integrated, operational system. The main improvement needed is to consolidate the two largely duplicated versions, clearly separate observed source behavior from inferred capability, and resolve citation and naming inconsistencies.
Supported or reasonably bounded claims
The following claims are suitably qualified, assuming the cited artifacts are accurate:
- The suite contains or references COBOL, CICS, BMS, VSAM, JCL, sequential files, and optional DB2, IMS, MQ, assembly, REXX, GSAM/BSAM, Control-M, and UNIX components.
CC00andCOSGN00Cprovide the clearest documented online entry path, including validation, PF3 handling,XCTL, and commarea use.CBTRN02Cvisibly performs validation and posting-related operations.REPROCT.ctldemonstrates aREPROfromFILEINtoFILEOUT, but not the identity, contents, filtering, or validation of those datasets.- The catalog snapshot and
LISTCATcondition code demonstrate catalog visibility and command completion, not application correctness or successful processing. - The stated risks involving plaintext credentials, replacement processing,
JOURNAL(NO),RECOVERY(NONE), andERROROPTION(IGNORE)are appropriately described as indicators rather than confirmed incidents. - The proposed execution-based characterization is the correct next step.
Claims requiring qualification or verification
-
Recorded journeys may be overstated.
“Recorded journeys include” account viewing, payments, reporting, and administration appears to describe source or design evidence, not observed user execution. Use “source-described journeys” or “intended journeys” unless runtime demonstrations exist. -
Authentication wording should be precise.
The evidence appears to show routing after validation ofUSRSEC; it does not necessarily establish that authentication is effective, secure, or connected to a live identity store. “After the source’s apparent validation path” would avoid implying proven authentication. -
Posting and update behavior needs direct evidence.
“May lock and rewrite,” “creating a transaction,” “updating a balance,” and “posting” should identify whether these are visibleREAD,WRITE,REWRITE,DELETE, or equivalent statements, or merely comments and program descriptions. In particular, distinguishCBTRN02CfromCBTRN01C. -
Catalog totals should be scoped.
State that 209 entries and the category breakdown are from a particularLISTCATsnapshot. Do not imply that this is the complete system inventory, especially given the conflicting inventory totals and source ranges. -
Security and data-exposure language remains inferential.
“Possible exposed CVV or government identifiers” is acceptable as a risk indicator, but should specify whether the fields are declared, populated, logged, transmitted, or merely present in copybooks. The same applies to “destructive replacement.” -
Cross-system atomicity is not the only missing control.
The draft should also avoid implying that MQ, IMS, DB2, and VSAM participate in one flow merely because artifacts reference them.
Contradictions and evidence-quality issues
- The two supplied drafts substantially duplicate one another. Retain one consolidated version.
- Citation anchors are inconsistent. Examples include
E0026linked toevidence-E0027.md,E0025linked toevidence-E0029.md, andE0007linked toevidence-E0008.md. Every evidence identifier and filename should be reconciled. - Program naming is inconsistent between
COTRN00C.cbl/COTRN01C.cbl/COTRN02C.cblandCBTRN01C.cbl/CBTRN02C.cbl. Establish whether these are different artifacts, aliases, or transcription errors before drawing conclusions about posting. - The draft refers to conflicting job orders, map/program names, PF7 behavior, FTP direction, dataset names, and copybook coverage but does not summarize the competing evidence. A short discrepancy table would be more useful than listing the issues only.
- The statement that
COND=(4,LT)conflicts with a successful-compile requirement is plausible under normal JCL semantics, but should identify the exact preceding step and expected return-code convention. A site-specific procedure could alter the interpretation. - The second version’s exact record lengths and catalog category counts should either be tied to authoritative artifacts or presented explicitly as reported values in conflict.
Important operational gaps
The evidence does not establish:
- Successful compilation, link-edit, bind, deployment, or execution.
- CICS region, transaction, program, mapset, commarea, and load-library configuration.
- DB2 subsystem, package/plan, IMS PSB/DBD, MQ manager/queue, RACF, scheduler, FTP, or network configuration.
- Actual dataset identities, DISP behavior, catalog ownership, encodings, record formats, and copybook alignment.
- Commit and rollback boundaries, CICS syncpoints, VSAM locking semantics, restart points, checkpointing, rerun safety, reconciliation, or compensation.
- EOF and partial-update behavior, abend handling, return-code propagation,
CONDbehavior, or recovery after interrupted jobs. - Backup scope, restore testing, retention, RPO/RTO, disaster recovery, monitoring, alerting, incident ownership, runbooks, or production support arrangements.
- Effective authorization, password controls, audit trails, masking, encryption, segregation of duties, queue permissions, and credential validity.
Unresolved questions to prioritize
- Which exact source sets build and run together, and under what runtime versions and configurations?
- What are the authoritative copybooks, keys, lengths, encodings, and dataset definitions?
- Which transaction programs perform durable writes, and where are commit, rollback, and locking boundaries?
- What are the authoritative batch dependencies, scheduler definitions, return-code rules, restart procedures, and rerun safeguards?
- Do the MQ/IMS/DB2/VSAM flows execute in practice, and what happens on cross-system failure?
- Can representative online and batch scenarios be executed with logs, return codes, dataset comparisons, external effects, and successful backup restoration recorded?
The draft’s conclusion should remain explicitly advisory: the current evidence supports characterization planning, not operational approval.
Harten analysis of AWS Samples CardDemo, a public demonstration application. The retained source content matches AWS revision 59cc6c2fd7ebd7ef7925cad552a01a4b8b6e4d5e. The documents describe source analysis and a proposed modernisation plan, not an implemented migration. No AWS endorsement is implied.
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. Apache 2.0 source licence · Amazon notice. Read the case study and source measurement.