View previous topic :: View next topic
|
Author |
Message |
callmeavi14
New User
Joined: 18 Jan 2010 Posts: 3 Location: India
|
|
|
|
Hi All,
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.
Any pointers?? |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
There is no provision to "keep some" / "throw away some" in the commit/rollback environment. The entire design depends on an entire "unit of work".
If you are not permitted to issue the proper commit/rollback to discard the problem yet keep the audit, you will have to do the audit in some other way. IMHO, not a good idea. . . |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 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. |
|
Back to top |
|
|
|