Subject Re: Locks conflict and corruption on win 2003 standard edition
Author Adam
--- In firebird-support@yahoogroups.com, "Valdir Marcos"
<valdir.marcos@s...> wrote:
>
> > 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
DT, 3.0GHZ, 1 MEGB, 800FSB, SOCKET T, E0, MALE
>
> 1
> CARD (CIRCUIT), PLANAR (MOTHERBOARD), TRANSFORMER SKY DIVE
MINITOWER, PE420SC
>
> 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),
HITACHI LG DATA STORAGE, HALF HEIGHT, INTERNAL, CHASSIS 2001
>
> 1
> KIT, MOUSE, PERSONAL SYSTEM 2, 2BTN, WHEEL, LOGITECH
>
> 1
> ASSEMBLY, FLOPPY DRIVE, 1.44MEGB, NEC CORPORATION, CHASSIS
2001, ULD
>
> 1
> SYSTEM INTEGRATION, FEE (CHARGE), INTEGRATION, BRAZIL CUSTOMER
CENTER
>
> 1
> SYSTEM INTEGRATION, CASE, COMPACT DISKETTE, LEATHER, BRAZIL
CUSTOMER CENTER
>
> 1
> HARD DRIVE, 160GB, Serial ATA, 8MB, 7.2K, WD-XL80
>
> 1
> KIT, DOCUMENTATION ON COMPACT DISK, DOCUMENT OBJECT MODEL,
SINGLE CHANNEL, V2.2, WORLD WIDE
>
>
>
> It's a small company with one server and ten workstations.
> When FB works on a Win XP Pro workstation as the 'server'
everything goes right. However, when FB is running on the Dell
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.
>
> What could this problem?
>

Commit Retaining does not help with respect to garbage. A record
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