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


Please Help Members By Posting Answers For Below Questions

What is the difference between spufi and qmf?

811


How can the firstname and the lastname from the emp table be concatenated to generate complete names?

949


What is the purpose of rollback and commit?

788


Is db2 a mainframe database?

729


What is bind package and plan in db2?

797


Which component is used to execute the sql statements?

829


For a db2 column that is being defined as decimal (11, 2), discuss the cobol picture clause.

847


What is db2 catalog database?

785


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.

2377


What is an instance database?

804


How do I start db2 in windows?

786


What is a dbrm in db2?

740


Describe major components of db2?

847


Define buffer pool.

794


What are bind parameters in db2?

788