Informix-SE transaction logging
Posted in 1998
Hi,
We are attempting to use transaction logging on Informix Standard Engine
Version 7.22.UC1 (HP/UX 10.x) and are running into trouble. We enabled
logging on one of a number of active databases. Everything was fine
for the first two weeks and then during a real busy period, we started
getting the errors below.
Error 1
=======
User:pam
Date: 06/08/1998 Time: 14:17:37
Program error at "srl_crmic.4gl", line number 458.
SQL statement error number -240.
Could not delete a row.
SYSTEM error number -121.
ISAM error: cannot write log record
-240 Could not delete a row.
The database engine is unable to finish execution of a DELETE
statement. Roll back the current transaction; then check the
accompanying ISAM error code for more specific information.
-121 ISAM error: cannot write log record
The ISAM processor is trying to add a record to the transaction log
and has received an error from the operating system. One probable
cause is that the disk is full. Look for operating system error
messages that may give more information. The transaction log file
can grow quite large. In order to reduce its size you must do two
things. First, make a backup copy of the data file (C-ISAM) or all
database files (SQL). Second, make the transaction log file an empty
file. If these steps are performed routinely, the size of the log file can
be controlled.
Comments
--------
The log file was 10meg approx with 80meg free in the partition. We thought that
ulimit may be the problem, but we checked the ulimit on the user who created
the error, which was unlimited. What other causes could it be?
What we also cannot fathom is why this has not been a problem for two weeks.
Is transaction logging stable on SE? Are there Unix/Informix configuration
issues which need to be addressed specifically for transaction logging?
What is really inexplicable is that at the same time, other non-logging
databases were affected with error 2 (shown below). Are they related?
At present, we have had to switch off transaction logging and now everything
is running smoothly again. However, the prospect of writing cleanup code in all
my 4GL source, instead of using transaction handling is pretty undesirable.
Error 2
=======
User:pam
Date: 06/08/1998 Time: 11:01:38
Program error at "srl_utils.4gl", line number 1328.
SQL statement error number -261.
Cannot create file for table (pam.temp_query).
SYSTEM error number -45.
Operation not supported on socket
-261 Cannot create file for table (tablename).
The database engine is unable to create the file that will represent
this table. Check the accompanying ISAM error code for more
information. The file would be created in the database.dbs directory
(unless you supplied an IN pathname clause). Its filename would
begin with the first few letters of tablename, followed by a three-digit
number and the suffix .tbl. The most likely cause for the error is
some problem with file permissions; or possibly the disk is full.
-45 Operation not supported on socket
An operating system error code with the meaning shown was
unexpectedly returned to the database engine. If the error recurs,
note all the circumstances and contact Informix Technical Support.
Comments
--------
The system was modified so as not to use tcp sockets to access the database,
which apparently overcame this error. The Unix kernel was also amended to
increase the number of locks, preventing users locking each other out.
Any help would be greatly appreciated.
Thanks in advance.
Tony