Hey, I like the freak moniker...
We do need to Z lock the tcb a few times during online reorg...I think
this happens once at the start, and once at the end of the reorg when
modifying some in memory table structures.
I'm not sure about our lock behavior though...will pass your note on to
the guys who wrote this, and post back here.
> Hi Lara,
>
[quoted text clipped - 15 lines]
> Cheers
> Serge
Sean McKeough - 26 Oct 2004 15:32 GMT
Here's the response:
"This lock is a 'special waiter' lock, designed spcifically to wait for
anyone with a conflicting lock to leave while never starving new lock
requests coming in. Basically, we wait until the last person who held a
conflicting lock BEFORE we made our request to release their lock, but
we should never wait for new lockers.
So someone out there isn't releasing their table lock - either a
connection never does commit/rollback or does only commits with hold so
that the table lock is never released."
> Hey, I like the freak moniker...
>
[quoted text clipped - 25 lines]
>> Cheers
>> Serge
Mark Townsend - 27 Oct 2004 02:18 GMT
> Here's the response:
> "This lock is a 'special waiter' lock, designed spcifically to wait for
[quoted text clipped - 6 lines]
> connection never does commit/rollback or does only commits with hold so
> that the table lock is never released."
Hmm - doesn't that sort of mean then that in a busy system the re-org
will never start ? Is this DB2 LUWser or Mainframe ?
Serge Rielau - 27 Oct 2004 12:58 GMT
>> Here's the response:
>> "This lock is a 'special waiter' lock, designed spcifically to wait
[quoted text clipped - 9 lines]
> Hmm - doesn't that sort of mean then that in a busy system the re-org
> will never start ? Is this DB2 LUWser or Mainframe ?
Actually no. BTW, Bruce Lindsay gave a very detailed talk on online
Reork a couple of years ago at a DB2 conference :-)
What happens is that the lock divides the transactions into old and new.
Ones all the _old_ ones are gone reorg can start its mery business.
I think it has to do with new transactions being aware that the a reorg
is going.
When reorging a row. New transactions will see the new row, old ones
will see the old version (or at least a tumbstone of it).
online-reorg is comparatively slow which is why it's also called
trickle-reorg.
Cheers
Serge
Hi Serge,
thank you so much for the 'freak'-hint. I did not mean it negative at
all, in the feuture I will use experts :-)
We use db2 UBD V7.1 on Unix, and there IS a super exclusive lock, at
least the db monitor is telling that...
The effect at the end is the following: The lock is held and the
working users fill up the transaction logs and after a time the logs
are full, the reorg is hanging in a strange state of doing nothing,
even if the transactions are rolled back and the users are gone. All
we could do is 'force application' to kill the backend process and
this will make the db to crash and restart.
The IBM-Support told us, that there is no possibility to 'see' what
the db is doing exactly during the reorg, and there is no message
telling us 'table xyz is reorganized', going on with table abc. In
this case we had the possibility to start the reorg statements step by
step and we are not trapped in the asynchronous mechanism.
Many thanks for any help,
Lara
> Hi Lara,
>
[quoted text clipped - 15 lines]
> Cheers
> Serge
Lara - 27 Oct 2004 11:31 GMT
Sorry, Version is 8.1 FixPack 6
Sean McKeough - 27 Oct 2004 14:42 GMT
There is get snapshot for table support for reorg (you can see what
state the reorg is in).
What you need to do is see which applications are not releasing their
table locks.
> Hi Serge,
>
[quoted text clipped - 39 lines]
>>Cheers
>>Serge