Subject | Re: Locks conflict and corruption on win 2003 standard edition |
---|---|
Author | Adam |
Post date | 2005-10-25T05:06:40Z |
--- In firebird-support@yahoogroups.com, "Valdir Marcos"
<valdir.marcos@s...> wrote:
PowerEdge SC420, after some hours I start getting the message "lock
conflict on no wait transaction" all the time.
sometimes with garbage option, and, other times with limbo option.
version can only be flagged as garbage once there are no transactions
old enough to be interested in it. Commit retaining commits the
changes, but retains the old transaction context, meaning the old
record versions are still technically interesting. You need to use
hard commits ie. "Commit" from time to time, and should only use
retaining if you actually need to retain the old context.
Lock conflict on no wait transaction is a normal error message, just
as normal as foreign key violation etc. It means that you have two
transactions that attempt to modify (update or delete) the same
record, either the second is attempting to change at the same time or
the second is started before the first transaction committed the
change.
eg
open two isql windows
window1:update table set id=id where id=1
window2:update table set id=id where id=1
voila
It is not corruption, but rather letting you know that there is
already a newer record version and so you can not make the change.
Adam
<valdir.marcos@s...> wrote:
>DT, 3.0GHZ, 1 MEGB, 800FSB, SOCKET T, E0, MALE
> > long-running transactions that simply exhaust system resources
>
>
> Delphi 7 + FB 1.5.2.4731 + IBX + CommitRetaining all the time.
>
> The Win 2003 Standard Server of my client is:
> A Dell PowerEdge SC420 computer:
> Quantity
> Part Description
>
> 0
> PREPARATION MATERIAL, DEV, SRV, INCRS #1
>
> 0
> PREPARATION MATERIAL, DEV, SRV, INCRS #2
>
> 1
> GUIDE, PRODUCT, INFORMATION, POWEREDGE, DAO/BCC
>
> 1
> GUIDE, GETTING STARTED, SC420, DAO/BCC
>
> 1
> PROCESSOR, 80547, PENTIUM 4 PRESCOTT DT, Pentium 4 Prescott
>MINITOWER, PE420SC
> 1
> CARD (CIRCUIT), PLANAR (MOTHERBOARD), TRANSFORMER SKY DIVE
>HITACHI LG DATA STORAGE, HALF HEIGHT, INTERNAL, CHASSIS 2001
> 1
> KEYBOARD, 104, UNITED STATES, NMB, LOW COST, MIDNIGHT GRAY
>
> 2
> DUAL IN-LINE MEMORY MODULE, 256, 533M, 32X72, 8, 240, 1RX8
>
> 1
> COMPACT DISK DRIVE, 48X, IDE (INTEGRATED DRIVE ELECTRONICS),
>2001, ULD
> 1
> KIT, MOUSE, PERSONAL SYSTEM 2, 2BTN, WHEEL, LOGITECH
>
> 1
> ASSEMBLY, FLOPPY DRIVE, 1.44MEGB, NEC CORPORATION, CHASSIS
>CENTER
> 1
> SYSTEM INTEGRATION, FEE (CHARGE), INTEGRATION, BRAZIL CUSTOMER
>CUSTOMER CENTER
> 1
> SYSTEM INTEGRATION, CASE, COMPACT DISKETTE, LEATHER, BRAZIL
>SINGLE CHANNEL, V2.2, WORLD WIDE
> 1
> HARD DRIVE, 160GB, Serial ATA, 8MB, 7.2K, WD-XL80
>
> 1
> KIT, DOCUMENTATION ON COMPACT DISK, DOCUMENT OBJECT MODEL,
>everything goes right. However, when FB is running on the Dell
>
>
> It's a small company with one server and ten workstations.
> When FB works on a Win XP Pro workstation as the 'server'
PowerEdge SC420, after some hours I start getting the message "lock
conflict on no wait transaction" all the time.
> If I leave this 2003 working for 3 days, I have to stop all users,use gfix with mend option, and gbak with ignore option always;
sometimes with garbage option, and, other times with limbo option.
>Commit Retaining does not help with respect to garbage. A record
> What could this problem?
>
version can only be flagged as garbage once there are no transactions
old enough to be interested in it. Commit retaining commits the
changes, but retains the old transaction context, meaning the old
record versions are still technically interesting. You need to use
hard commits ie. "Commit" from time to time, and should only use
retaining if you actually need to retain the old context.
Lock conflict on no wait transaction is a normal error message, just
as normal as foreign key violation etc. It means that you have two
transactions that attempt to modify (update or delete) the same
record, either the second is attempting to change at the same time or
the second is started before the first transaction committed the
change.
eg
open two isql windows
window1:update table set id=id where id=1
window2:update table set id=id where id=1
voila
It is not corruption, but rather letting you know that there is
already a newer record version and so you can not make the change.
Adam