-107 error is still there
Posted in 1995
A few days ago I posted an article about a problem with locking in
Online 7.11.UC1 on a HP-UX machine.Jim Gordon posted me an answer stating
that there was a syntax error on the create index command and that he couldn't
reproduce the error on his HP-box.The syntax error was a typo error, the index
exists on the test table and Informix Tech Support also can't reproduce the
error.So I asked the client to run again the SQL Skripts modifying the second
user script with the addition of the set lock mode to wait 180 command and to
sent me his onstat -k and onstat -u output.So here are the skripts:
create database abc with log;
create table test(ident_nr1 integer, ident_nr2 integer, text char(20))
lock mode row;
create unique index ix_1 on test (ident_nr1, ident_nr2);
1. User issues:
begin work;
insert into test values (1,1,"bez1");
update test set text = "upd2" where
ident_nr1 = 1 and ident_nr2 = 1;
2. User issues:
set lock mode to wait 180; begin work;
insert into test values (2,2,"bez2");
update test set text = "upd2" where
ident_nr = 2 and ident_nr2 = 2;
(When not running the lock mode to wait command he gets)
Error:
-244 Could not do a physical order read
-107 ISAM-Error record is locked
Isolation Level is set to dirty read.
The onstat -k output shows:
INFORMIX-Online Version 7.11.UC1 -- On-Line -- Up 1 days 00:10:14 -- 13568 Kbytes
Locks
address wtlist owner lklist type tblsnum rowid key#/bsiz
8039f868 0 80750514 0 HDR+S 100002 205 0
8039f8c0 0 807500e0 803a28e0 IX 10073d 0 0
8039f8ec 0 807500e0 8039f8c0 HDR+X 10073d 212 0
8039f918 0 807500e0 8039f8ec HDR+X 10073d 212 K- 1
803a0e94 0 80750514 8039f868 HDR+IX 10073d 0 0
803a0ec0 807500e0 80750514 803a0e94 HDR+X 10073d 211 0
803a0eec 0 80750514 803a0ec0 HDR+X 10073d 211 K- 1
803a28e0 0 807500e0 0 S 100002 205 0
8 active, 30000 total, 16384 hash buckets
The onstat -u shows:
INFORMIX-Online Version 7.11.UC1 -- On-Line -- Up 1 days 00:10:50 -- 13568 Kbytes
Userthreads
address flags sessid user tty wait tout locks nreads nwrites
8074f010 ---P--D 0 informix - 0 0 0 327 611
8074f444 ---P--F 0 informix - 0 0 0 0 0
8074f878 ---P--B 8 informix - 0 0 0 682 780
8074fcac ---P--D 0 informix - 0 0 0 0 0
807500e0 L-BPR-- 236 unipps ttyq1 803a0ec0 180 4 0 0
80750514 Y-BP--- 235 unipps ttys6 81daaab8 0 4 3 2
6 active, 128 total, 17 maximum concurrent
As I interpret it the user with address 807500e0 (2. User)
is waiting for the lock 803a0ec0 on the row with rowid 211 from
the 1. User.
The 1. User 80750514 is waiting for the latch(?) 81daaab8.
As I don't possess an Informix 7.11 manual am I missing something?
TIA
Tolis Varnas
tvarnas@orbit.de
tvarnas@compulink.gr