I am working on an application. The application gets the Database update request through distributed online applications through the IMS Transactions.
This requests are processed through COBOL applications and updates the DB2 tables. The requests are dealt by a single COBOL routine(Say program A, COBOL DB2), as part of my requirement i am supposed to trigger a subroutine B(COBOL DB2). If any update through program A goes wrong then i am supposed to trigger subroutine B to create an Audit Trail.
Problem: If there is any issue in subroutine A then the whole transaction is rolled back. In that case the subroutine B updates will also be rolled back as that is triggered through A. In subroutine B i am updating only 1 DB2 table. Is there anyway i can sustain my updates(Subroutine B) only for that particular table.
Due to specific requirements i cant put any explicit COMMIT/ROLLBACK in either program A or subroutine B.
Joined: 22 Apr 2006 Posts: 6258 Location: Mumbai, India
May be you can "unload" the DB2 table to a QSAM and update the file instead of DB2-table when needed, and update the file without any check-point logic in program...but it's a nasty way of doing things.