View previous topic :: View next topic
|
Author |
Message |
vinay19
New User
Joined: 31 May 2007 Posts: 24 Location: Bangalore
|
|
|
|
hi all,
We are facing a peculiar problem in one of our program. There is query in one of our programs to update a column which is of type timestamp.
There is a query to update this timestamp which is as follows
UPDATE TABLE
SET LOCK_TIMESTAMP = CURR_LOCK_TIMESTAMP
WHERE LOCK_TIMESTAMP < CURR_LOCK_TIMESTAMP
AND .....
There is a particular logic to calculate CURR_LOCK_TIMESTAMP
This query gets executed sometimes successfully and sometimes not. With the same code base.
I want to know what is the possible reason for this. If it fails it should fail every time else it should get executed correctly each time.
If anyone has faced such an issue previously let me know.
thanks in advance. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
Quote: |
There is a particular logic to calculate CURR_LOCK_TIMESTAMP |
review the logic...
Quote: |
If it fails it should fail every time else it should get executed correctly each time. |
no if the computation is wrong only for certain values |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
what is the error that your are facing?????????????????
if it is a -180 or -181 then enrico is correct, your particular logic sucks for calculation of curr_lock_timestamp. |
|
Back to top |
|
|
vinay19
New User
Joined: 31 May 2007 Posts: 24 Location: Bangalore
|
|
|
|
hi all,
Thanks for your replies. The issue is now resolved. I was not getting sqlcode 180 or anything else. The query was failing with an sqlcode 100.
The logic to calculate timestamp is perfect.
There was a logic error in the code.
For people interested to know what was the problem.
The extension of lock was happening only once initially, but it is changed to extend the lock twice now. But the catch is that while extending the lock second time only first two digits of micro seconds in timestamp is taken into account and not the last four and the lag between the first and second extension would be such that it would be only in the last four digits of micro seconds.
So whenever the load was more on db2 the lag would ve reached upto first two digits of microseconds that time i was not gettting any error but in the other cases. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
Quote: |
The logic to calculate timestamp is perfect. |
if You say so |
|
Back to top |
|
|
|