Page 1 of 1

Error retrieving system catalog information for requested ta

Posted: Mon Oct 22, 2007 1:01 am
by raji
Hi,

We installed Datastage 7.5.2 on UNIX (AIX box of version 5.3) and Source & target database is DB2 version v8.1.1.96.

In intial stage , we run the job in the database of 32 bit.

We reverted the DB to 64 bit from 32 bit and try to run the jobs.

But at present with the 64 bit, we cant able to run the job successfully.

Its gving the following error for all the jobs:

[IBM][CLI Driver][DB2/AIX64] SQL0443N Routine "SYSIBM.SQLTABLES" (specific name "TABLES") has returned an error SQLSTATE with diagnostic text "SYSIBM:CLI:-727". SQLSTATE=38553


SQLTables: Error retrieving system catalog information for requested tables(s).

Will any one please give me idea why this error occured.

Thanks for the help.

Posted: Mon Oct 22, 2007 1:22 am
by ray.wurlod
DataStage is a 32-bit application. You MUST use 32-bit libraries with DataStage, even if these are accessing a 64-bit capable instance of DB2.

Verify that the 32-bit library is referred to first in the shared library search path set up in the dsenv script.

Ask your DBA for information about what the DB2 error codes mean.
Another possibility is that you lack SELECT privilege on the system table referred to in the message.

Posted: Tue Oct 23, 2007 1:56 am
by ogmios
And if after using the 32bit libraries you still get the "SQL0443N Routine "SYSIBM.SQLTABLES"" you should talk to your DBA's... it's a known problem in DB2 and it requires them to set some extra access rights for your user.

Posted: Tue Oct 23, 2007 5:51 am
by fridge
How many tables have you got (do "select count(*) from syscat.tables"

I encounted this kind of problem I believe when there are more than 32,678 tables (caused my many multiple schemas)

IBM have a patch for this

Posted: Tue Oct 23, 2007 6:12 am
by ogmios
Read the readme file of your DB2 installation... it will contain something like this which should be executed on the server.
To bind db2schema.bnd on the server, execute one of these command
sequences:

At a command prompt:
db2 terminate
db2 CONNECT TO <dbname>
db2 BIND <path>/db2schema.bnd BLOCKING ALL GRANT PUBLIC sqlerror continue
db2 terminate
or,
At the DB2 command line:
TERMINATE
CONNECT TO <dbname>
BIND <path>/db2schema.bnd BLOCKING ALL GRANT PUBLIC sqlerror continue
TERMINATE

where <dbname> represents the name of a database to which the utilities
should be bound, and where <path> is the full path name of the directory
where the bind files are located.
So go to your DBA's, they will need to do this... and apparently are not aware of this :D