I have a mysterious problem, and I'd really welcome any informations on it.
Let's start :
- product : IBM Informix CISAM 7.26 UC2
- OS : linux RHEL5
- kernel : 2.6.18-8.el5
- machine : one machine (A) is x86_64 x86_64 x86_64 GNU/Linux, one machine (B) is i686 i686 i386 GNU/Linux (with uname command)
The same application is installed on the two machines.
The application opens the files in ISINOUT+ISMANULOCK mode.
The application doesn't use any lock function (so, as the CISAM manual say, no lock is used).
When I try to use the application on A, I got some "107" errors.
When I try to use the application on B, everything's ok.
107 CISAM error code is : "the record or file requested by this call cannot be accessed because another user has locked it."
The application is run in root (I know that's evil, but I have to adapt to 10 years of History before me).
When the error occurs, there's only one process wich is trying to modify the file.
I tried to bcheck -s all the bases. Still the 107 error.
So... any idea to solve the mystery ?
Thanks a lot in advance
This error occur when you try access the database ????
you can check ho is locking the record with "onstat -k" , but you need to know the partnum (hex format) .
the command will return something like this:
c000000001dd1380 0 c0000000cf57dc38 c000000001cc1f30 HDR+X 12600095 14806 K- 1
On the column where equal "HDR+X" , means the table 12600095 , rowid 14806 , index 1 is with exclusive lock....
You can get the partnum of table with this SQL:
select tabname, hex(partnum) from systables
Thanks for your help.
I finally manage to find the problem :
On the A machine, we were using a Veritas Replication solution. Not on the B machine.
We first tried to stop the replication : still the 107 error code when accessing the cisam files.
But, when looking at the filesystem, it was the Veritas filesystem on the A machine (vxfs), and it was ext3 on the B machine.
When we move the cisam files on the A machine, on a filesystem not replicated by the Veritas solution, it worked...