From: s.amann on
Hello,

I get the following error when I try to insert data into a table.
"SQL1477N Table "<table-name>" cannot be accessed. "

The table was created with NOT LOGGED INITIALLY
The import is done by a program written in C and using embedded SQL.
It starts with ALTER TABLE myTable ACTIVATE NOT LOGGED INITIALLY WITH
EMPTY TABLE.
Then I prepare the statement and the inserts are done within a loop
using question marks and a host structure:
EXEC SQL EXECUTE <prepared statement> USING :db_rec;
After all inserts I do a commit.

This worked fine for many months. But suddenly I get the error -1477
always for the same record. (before the commit)
I thought this depends on an irregular record in the data file but
if I create the table without NOT LOGGED INITIALLY it works.
If I insert the critical record manually it also works.

I dropped and re-created the table several times.


We use DB2 Version: v7.1.0.98 on Linux 9.0 (i586) - Kernel
2.4.21-303-smp (1)

Maybe it is not a DB2 problem, but a C memory problem.

Thanks for any hint

Stefan

db2diag.log:
String Title:Redo/undo of nonrecoverable operation.
Table object is being marked not available. PID:11306 Node:000
Table(3:775)=DB2INST1.TESTDAT1_NEW

String Title:Table is not available: SQLCODE -1477. PID:11306 Node:000
Table(3;775)=DB2INST1.TESTDAT1_NEW
 | 
Pages: 1
Prev: Memory Heap Error
Next: What is the fastest way...