In a Cobol-DB2 program, I am fetching rows from 4 tables
using cursor and then based on the a field present in that
table, It processes the information accordingly..for
example stat-c is one digit field..if stat-c is 'D' then
the a row is deleted from table and written those details
in to a file. If the stat-c is 'U' then a row is updated
(hardcoded what to update)in a table and written those
details in to a file. If the stat-c is 'I' then a row is
inserted in a table and written those details in to two
files. The issue is i have to include the intermediate
commits. When an abend occurs, due to commit statement db2
tables will be saved, But there will be lose of file
contents. When we resubmitting the job associated with this
program there will be insert ,update and delete anomolies
to avoid that what measures could be taken?.
The intermediate commit is nothing but issuing
commit after massive inserts, updates and deletes(sum of
500actions)
Answer Posted / just helpin
This is a JCL question, not a DB2 one.
You have to make two steps in your JCL. In the first step
preallocate the output file. In the second step run your
program and have DISP=(MOD,KEEP,KEEP) on the output file.
When you rerun after an abend restart the from the second
step.
Is This Answer Correct ? | 0 Yes | 1 No |
Post New Answer View All Answers
What is the difference between spufi and qmf?
How can the firstname and the lastname from the emp table be concatenated to generate complete names?
What is the purpose of rollback and commit?
Is db2 a mainframe database?
What is bind package and plan in db2?
Which component is used to execute the sql statements?
For a db2 column that is being defined as decimal (11, 2), discuss the cobol picture clause.
What is db2 catalog database?
SET is the ANSI standard for variable assignment, SELECT is not. SET can only assign one variable at a time, SELECT can make multiple assignments at once. If assigning from a query, SET can only assign a scalar value. If the query returns multiple values/rows then SET will raise an error. SELECT will assign one of the values to the variable and hide the fact that multiple values were returned (so you'd likely never know why something was going wrong elsewhere - have fun troubleshooting that one) When assigning from a query if there is no value returned then SET will assign NULL, where SELECT will not make the assignment at all (so the variable will not be changed from it's previous value) As far as speed differences - there are no direct differences between SET and SELECT. However SELECT's ability to make multiple assignments in one shot does give it a slight speed advantage over SET.
What is an instance database?
How do I start db2 in windows?
What is a dbrm in db2?
Describe major components of db2?
Define buffer pool.
What are bind parameters in db2?