table being reported as not present by application
Posted in 2013
After migrating from Unix to Linux on Informix 11.50.FC9, table ec_user_request was intermittently reported as missing (error -206) despite existing in the database. Initial investigation suggested permission issues—the table owner was "paqis" with revoked public access, while Apache queries ran as different users lacking table access.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Error Codes & Troubleshooting, Transactions, Locking & Isolation, Platform-Specific Issues, Versions, Editions & End-of-Life
achine Configuration.... OS Name Linux OS Release 2.6.32-358.6.2.el6.x86_64 OS Node Name wldbp654 OS Version #1 SMP Tue May 14 15:48:21 EDT 2013 OS Machine x86_64 IBM Informix Dynamic Server Version 11.50.FC9 S The probem Since Migrating from Unix to Linux we are getting lots of errors Onestrange one is table being reported as misssing when it is in fact present. Does locking cause the type of message . We are using row locking number of row in table 7436 the mesage from apache web server log. Does any one have any ideas what causes the error message. [Mon Sep 9 07:24:38 2013] -e: A Critical error occured Unknown Error DBD::Informix::db prepare failed: SQL: -206: The specified table (ec_user_request) is not in the database. [Mon Sep 9 07:24:38 2013] -e: ISAM: -111: ISAM error: no record found. at /var/ecert/eclive/application/lib/APEcert/Control/HTTP/Switch.pm line 209 [Mon Sep 9 07:24:38 2013] -e: APEcert::Control::HTTP::Switch::__ANON__('DBD::Informix::db prepare failed: SQL: -206: The specified ta...', 'DBI::db=HASH(0x7fee508b4600)', undef) called at /var/ecert/eclive/ap plication/taf/drivers/informix/TAF/Database.pm line 260[Mon Sep 9 07:24:38 2013] -e: TAF::Database::prepare(undef, '-query', 'SELECT login, request_count, start_timestamp FROM ec_user_req...') called at /var/ecert/eclive/application/taf/drivers/informix/TAF/DataS ource.pm line 805 [Mon Sep 9 07:24:38 2013] -e: TAF::DataSource::_execute_single(undef, '-query', 'SELECT login, request_count, start_timestamp FROM ec_user_req...', '-lock', 'EXCLUSIVE', '-columns', 'ARRAY(0x7fee509a8b48)') called at /var/ecert/eclive/application/taf/drivers/informix/TAF/DataSource.pm line 247 [Mon Sep 9 07:24:38 2013] -e: TAF::DataSource::load(undef, '-lock', 'EXCLUSIVE', '-keys', 'HASH(0x7fee451aa240)') called at /var/ecert/eclive/application/lib/APEcert/Model/UserRequest.pm line 43 [Mon Sep 9 07:24:38 2013] -e: APEcert::Model::UserRequest::get_user_request(undef, '-login', 'hallc') called at /var/ecert/eclive/application/lib/APEcert/Control/HTTP/Switch.pm line 162 [Mon Sep 9 07:24:38 2013] -e: APEcert::Control::HTTP::Switch::switch(undef, '-input', 'TAF::ApacheInputStream=HASH(0x7fee509a8f68)', '-output', 'TAF::ApacheOutputStream=HASH(0x7fee5099c758)') called at /var/ecert/eclive/application/lib/TAF/Switch.pm line 52 [Mon Sep 9 07:24:38 2013] -e: eval {...} called at /var/ecert/eclive/application/lib/TAF/Switch.pm line 51
Is it an ANSI mode logged database? If so it could be that the table isn't owned by the user that is running Apache and table is not qualified with an owner name. Art Art S. Kagel Advanced DataTools (www.advancedatatools.com) Blog: http://informix-myview.blogspot.com/ Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on my employer, Advanced DataTools, the IIUG, nor any other organization with which I am associated either explicitly, implicitly, or by inference. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves. On Sun, Sep 8, 2013 at 4:55 PM, KARL OLIVER <karl.oliver@maf.govt.nz> wrote: > achine Configuration.... > OS Name Linux > OS Release 2.6.32-358.6.2.el6.x86_64 > OS Node Name wldbp654 > OS Version #1 SMP Tue May 14 15:48:21 EDT 2013 > OS Machine x86_64 > > IBM Informix Dynamic Server Version 11.50.FC9 S > The probem > Since Migrating from Unix to Linux we are getting lots of errors > Onestrange one is table being reported as misssing when it is in fact > present. > Does locking cause the type of message . > We are using row locking number of row in table 7436 > > the mesage from apache web server log. Does any one have any ideas what > causes > the error message. > > [Mon Sep 9 07:24:38 2013] -e: A Critical error occured Unknown Error > DBD::Informix::db prepare failed: SQL: -206: The specified table > (ec_user_request) is not in the database. > [Mon Sep 9 07:24:38 2013] -e: ISAM: -111: ISAM error: no record found. at > /var/ecert/eclive/application/lib/APEcert/Control/HTTP/Switch.pm line 209 > [Mon Sep 9 07:24:38 2013] -e: > APEcert::Control::HTTP::Switch::__ANON__('DBD::Informix::db prepare failed: > SQL: -206: The specified ta...', 'DBI::db=HASH(0x7fee508b4600)', undef) > called > at /var/ecert/eclive/ap > plication/taf/drivers/informix/TAF/Database.pm line 260[Mon Sep 9 07:24:38 > 2013] -e: TAF::Database::prepare(undef, '-query', 'SELECT login, > request_count, start_timestamp FROM ec_user_req...') called at > /var/ecert/eclive/application/taf/drivers/informix/TAF/DataS > ource.pm line 805 > [Mon Sep 9 07:24:38 2013] -e: TAF::DataSource::_execute_single(undef, > '-query', 'SELECT login, request_count, start_timestamp FROM > ec_user_req...', > '-lock', 'EXCLUSIVE', '-columns', 'ARRAY(0x7fee509a8b48)') called at > /var/ecert/eclive/application/taf/drivers/informix/TAF/DataSource.pm line > 247 > [Mon Sep 9 07:24:38 2013] -e: TAF::DataSource::load(undef, '-lock', > 'EXCLUSIVE', '-keys', 'HASH(0x7fee451aa240)') called at > /var/ecert/eclive/application/lib/APEcert/Model/UserRequest.pm line 43 > [Mon Sep 9 07:24:38 2013] -e: > APEcert::Model::UserRequest::get_user_request(undef, '-login', 'hallc') > called > at /var/ecert/eclive/application/lib/APEcert/Control/HTTP/Switch.pm line > 162 > [Mon Sep 9 07:24:38 2013] -e: APEcert::Control::HTTP::Switch::switch(undef, > '-input', 'TAF::ApacheInputStream=HASH(0x7fee509a8f68)', '-output', > 'TAF::ApacheOutputStream=HASH(0x7fee5099c758)') called at > /var/ecert/eclive/application/lib/TAF/Switch.pm line 52 > [Mon Sep 9 07:24:38 2013] -e: eval {...} called at > /var/ecert/eclive/application/lib/TAF/Switch.pm line 51 > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > --089e01227ca40473ec04e5e6056a
No its not
all the table contains is information about las request by user
as such
hallc 1 2013-09-09 08:10:35
schema
26 }
create table "paqis".ec_user_request
(
login varchar(20) not null ,
request_count integer not null ,
start_timestamp datetime year to second not null
);
revoke all on "paqis".ec_user_request from "public" as "paqis";
create unique cluster index "paqis".ixun_ec_user_request_login
on "paqis".ec_user_request (login) using btree ;
alter table "paqis".ec_user_request add constraint primary key
(login) constraint "paqis".pk_ec_user_request ;
Karl
What user is running the query? The syntax you have given only allows paqis
to access this table (being the owner). You would need to grant specific
access to specific users (or public). The revoke is stopping this general
access.
Keith
On 8 Sep 2013 22:37, "KARL OLIVER" <karl.oliver@maf.govt.nz> wrote:
> No its not
>
> all the table contains is information about las request by user
> as such
> hallc 1 2013-09-09 08:10:35
>
> schema
>
> 26 }
> create table "paqis".ec_user_request
> (
>
> login varchar(20) not null ,
>
> request_count integer not null ,
>
> start_timestamp datetime year to second not null
> );
>
> revoke all on "paqis".ec_user_request from "public" as "paqis";>
> create unique cluster index "paqis".ixun_ec_user_request_login
>
> on "paqis".ec_user_request (login) using btree ;
> alter table "paqis".ec_user_request add constraint primary key
>
> (login) constraint "paqis".pk_ec_user_request ;
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--047d7b6776783c74bc04e5e676b9
most of the time users can write to table sometime they cant due to lock / permissions as follows User Select Update Insert Delete Index Alter JBoss All None No No No No jboss All None No No No No public All All Yes Yes Yes No
Well the problem is being query is accessing the wrong database. Apparently being caused by thread safe issue in apache according to our developers. Not something I know anything about