Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

DB2 access on MVS Platform

Status
Not open for further replies.

Mags1972

IS-IT--Management
Feb 28, 2005
24
GB
Hope someone can help me with this.

I am running a very simple map on the MVS(CICS) environment and this map is being called by another.

the map simply selects records from the DB2 database and inserts them on another.

however, If Mercator encounters an SQL error (i.e duplicate insert or whatever) it reports the issue to the CICS log BUT continues to try and process.

It reads ALL the incoming transactions again and again and again.

Is there anyway I can tell the map that if it receives this kind of error... STOP???

thanks in advance



 
What version? Are you using the adapter in the output card and have you got OnFailure set? Is your input data Burst mode? Does the top level map have a VALID FAIL round the call to the map?
 
Janhes. Its version 6.7.2, and what do you mean by "using the adapter in the output card"?

The "onfailure" is set to rollback. and when I last looked at this I was advised by ascential that "burst" mode is not the way to go (to be honest without the DB2 errors the maps runs fine)

And I will look to use the VALID FAIL function tomorrow.

Many thanks
 
Right, I have solved this, but am not sure if this is the ideal way or not.

Like I say I am running the map on the MVS environment (under CICS), but I also test the map on the PC by connecting via ODBC.

When I run the map through ODBC it recongises the DB2 error iimediately and finishes, however it is only on the MVS env that it continues looping. I tried "retries", "on failures" the lot today and nothing seemed to prevent this loop.

whilst playing around I noticed that if you call a map to process 10,000 records but set the "burst" to 1,000 it ONLY ever processes 1,000 (no exception), so all I did was set the "burst" to 10,000 (max number of trans ever to be used by the map) and it seems to report the DB2 error (if there is one) and stop!!! (jackpot)

Not ideal but it works

 
That sounds like a bug. If you set burst to 1,000 it should process data in chunks of 1,000 records.
Did you use the VALID and FAIL functions round your RUN of the map?
 
Janhes

Yes I agree setting the burst should control (not limit) the number of transactions.

I have not yet used the VALID/FAIL around the main map, but do you think this would make a difference then??

Because the controlled (error)tests I am doing are on the inserts only (i.e output cards). but when the run is successful it is only processing the 1,000 only.

cheers

Martyn







 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top