as i know DSNHPC utility separates DB2 and cobol code and creates Token as timestamp. and during run time when timestamp is mismatch then we get -805 abend.
but now my question is if i compiled my program today and forgets to bind.If bind tomorrow then timetamp for cobol loadmodule and db2 would be different and code should through -805 abend. but in my case code ran properly..why ?
why i didn't get error as -805
Joined: 01 Dec 2006 Posts: 730 Location: Pennsylvania
If bind tomorrow then timetamp for cobol loadmodule and db2 would be different and code should through -805 abend.
This is a false assumption.
The timestamp for the load module and dbrm are created at compile time.
The Bind sees that they match. It uses a second indicator called a contoken, while creating the package. This contoken ties the load module and the package together. The timestamp is no longer used after the bind is done.
At run time the contoken of the load module and the package are checked to see if they match. In your case they do, thus why it worked.
Apparently, you were not provided proper db2 training.