Add mainframe-exit migration plan for IPMS workload - #254
devin-ai-integration[bot] wants to merge 1 commit into
Conversation
Co-Authored-By: Ray Fan <rayaun.fan@cognition.ai>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
| | **Test** | 2 | `TSTGEN00` (data gen), `TSTVAL00` (validation) | | ||
| | **Copybooks (shared record layouts)** | 20 | `common/` (PORTFLIO, POSREC, TRNREC, HISTREC, PORTVAL, AUDITLOG, RTNCODE, ERRHAND, RETHND, COMMON), `batch/`, `db2/` (SQLCA, DBTBLS, DBPROC), `online/` (INQCOM, DB2REQ) | | ||
| | **JCL** | 15 | batch reports, portfolio CRUD, utility, test orchestration | | ||
| | **DB2 schema (SQL)** | 5 | `PORTFOLIO_MASTER`, `INVESTMENT_POSITIONS`, `TRANSACTION_HISTORY`, `POSHIST`, `RTNCODES`, `ERRLOG` | |
There was a problem hiding this comment.
🔍 DB2 schema row: count of 5 does not match the 6 objects listed
The inventory row claims 5 DB2 schema artifacts but enumerates six names (PORTFOLIO_MASTER, INVESTMENT_POSITIONS, TRANSACTION_HISTORY, POSHIST, RTNCODES, ERRLOG). The repo has exactly 5 SQL files (src/database/db2/RTNCODES.sql, PORTPLAN.sql, POSHIST.sql, db2-definitions.sql, ERRLOG.sql), so the count is per-file while the list is per-table — the two columns are measuring different things and read as an inconsistency. Also PORTPLAN.sql is not represented in the list at all.
Was this helpful? React with 👍 or 👎 to provide feedback.
| | **BMS map** | 1 | `INQSET.bms` (3270 screens) | | ||
| | **CICS CSD** | 1 | `PORTDFN.csd` | | ||
|
|
||
| **Technology surface (grep-verified):** `EXEC SQL` (DB2) in **14** programs; `EXEC CICS` (online) in **8**; `COMP-3` packed-decimal in **7** files; VSAM file `ASSIGN` in **25** programs. |
There was a problem hiding this comment.
🔍 Grep-verified counts hold only when template files are excluded
I re-ran the stated greps: across src/programs the numbers match (EXEC SQL in 14, EXEC CICS in 8, VSAM ASSIGN in 25). Including src/templates/ they become 15 and 26 respectively. The COMP-3 in 7 files claim is the least reproducible: 8 files repo-wide contain COMP-3, and only 3 under programs+copybook. Worth stating the scope of the grep in the document so a reader can reproduce the inventory.
Was this helpful? React with 👍 or 👎 to provide feedback.
| │ REFACTOR REFACTOR | ||
| │ PORTTRAN, POSUPDT PORTMSTR, PORTVALD | ||
| │ (money movement, (master + validation) | ||
| │ cost basis) | ||
| Business value │─────────────────────────────────────────────── | ||
| │ REPLATFORM RETAIN → later refactor | ||
| │ RPT*, HISTLD00, INQ* online, SECMGR | ||
| │ UTL* (batch/reports) (encapsulate behind API) | ||
| │ | ||
| │ RETIRE | ||
| │ POSUPDT.cbl (empty stub), TSTGEN/TSTVAL, | ||
| │ PORTTEST, duplicate VSAM-vs-DB2 once unified |
There was a problem hiding this comment.
📝 Info: POSUPDT is simultaneously slated for Refactor and Retire
The disposition map places POSUPDT under REFACTOR (money movement/cost basis) and POSUPDT.cbl (empty stub) under RETIRE, and §6.2 item 3 again lists POSUPDT as Refactor while item 4 calls for reverse-engineering the stub. src/programs/batch/POSUPDT.cbl is indeed 0 lines. The intent is presumably 'retire the empty artifact, refactor the behavior once reverse-engineered', but as written the two boxes contradict each other for a steering-committee audience.
Was this helpful? React with 👍 or 👎 to provide feedback.
Summary
Adds
MIGRATION_PLAN.md— a planning/architecture report recommending how to migrate the Investment Portfolio Management System off IBM i / z/OS. No code changes; single new markdown doc.What it answers (the core sequencing question — "service-level vs data conversion first?"):
Grounded in the actual repo inventory (counts verified from the tree/grep): 11 batch, 8 online/CICS, 8 portfolio, 6 common, 3 utility, 2 test programs; 20 copybooks; 15 JCL; DB2 (
EXEC SQL×14) + CICS (EXEC CICS×8) +COMP-3×7 + VSAMASSIGN×25. Flags real hotspots: VSAM↔DB2 dual persistence with mismatched keys,COMP-3money precision, the checkpoint/restart spine, and the emptyPOSUPDT.cblstub.Contents: component inventory + dependency map, 6-R weighted scoring matrix, three-way sequencing decision matrix, 6-phase roadmap with entry/exit gates, data + service migration strategies, banking risk/governance controls, and ASCII diagrams (dependency map, disposition map, roadmap, target architecture) per the "visualize concepts" preference. Framework is written to be reusable for other mainframe-exit workloads.
A rendered PDF copy is attached to the requester in the session.
Link to Devin session: https://app.devin.ai/sessions/d4ca52d75f354735b6fef097a5856644
Requested by: @rayfan-cog
Devin Review