Fw: SYSTEM command cannot be executed..
Posted in 2003
Topics: Stored Procedures & SPL, Error Codes & Troubleshooting, Connectivity: ESQL/C, 4GL & Embedded SQL, Triggers, Constraints & Referential Integrity, Platform-Specific Issues, Versions, Editions & End-of-Life
Hi, I found an issue that if the database is in buffered mode, my esqlc program gives the following error and can not write the inserted pdf data to the op.system file. ********Error encountered in SELECT******** ---------------------------------------------------------- SQLSTATE: IX000 SQLCODE: -244 EXCEPTIONS: Number=2 More? N - - - - - - - - - - - - - - - - - - - - EXCEPTION 1: SQLSTATE=IX000 MESSAGE TEXT: Could not do a physical-order read to fetch next row. CLASS ORIGIN: IX SUBCLASS ORIGIN: IX000 - - - - - - - - - - - - - - - - - - - - EXCEPTION 2: SQLSTATE=IX000 MESSAGE TEXT: ISAM error: record is locked. CLASS ORIGIN: IX SUBCLASS ORIGIN: IX000 ---------------------------------------------------------- We use insert trigger. When the data is being inserted, it is also tried to be written to op.system file. Does it cause the error? Thanks, Best regards.. ----- Original Message ----- From: "Arthur Groen" <arthur@hiljo.nl> To: "Sadi G'rsoy" <sadi@login.com.tr>; "IIUG" <informix-list@iiug.org> Sent: Monday, December 08, 2003 6:39 PM Subject: Re: SYSTEM command cannot be executed.. | If the exit() value of your SYSTEM command is NOT NUL . | then the engine will flag the INSERT as FAILED. | | Maybe the diff with "nonlogging mode" is getting a rollback as well. | | rgds | /Arthur | | ----- Original Message ----- | From: "Sadi G'rsoy" <sadi@login.com.tr> | To: "IIUG" <informix-list@iiug.org> | Sent: Monday, December 08, 2003 4:00 PM | Subject: SYSTEM command cannot be executed.. | | | > Hi all, | > | > Our platform is: Sparc Solaris 8 with IDS 9.40.UC2 | > | > I get a 668 error when doing the following: | > | > I have to extract a pdf to text in my database. I have created a trigger | > for insert on the pdf data table. It executes a stored procedure. The sp | > executes a shell file that sets the required environment paramaters and | > executes an .ec binary. The ec binary writes the pdf data to an op.system | > file and calls a c binary i downloaded from internet doing the conversion | > of the .pdf file to .txt file. The .ec binary then inserts the content of | > the .txt file to an informix table (text type). | > | > The architecture is complex some but it works in the database which is | > created in nonlogging mode. But when i create the database in | > buffered-logging, when i try to insert the data to the byte column, i get | > the error 668. I have to use buffered logging mode to use Excalibur | > datablade. | > | > Best Regards, | > Sadi | > | > | > | > | > | > | > | > sending to informix-list | > | | sending to informix-list
On Tue, 09 Dec 2003 05:13:51 -0500, Sadi G'''rsoy wrote: Try not to piggy back on an old subject. Start a new one or you are likely to be ignored. This time you lucked out. > Hi, > I found an issue that if the database is in buffered mode, my esqlc program > gives the following error and can not write the inserted pdf data to the > op.system file. > > ********Error encountered in SELECT******** > ---------------------------------------------------------- SQLSTATE: IX000 > SQLCODE: -244 > > EXCEPTIONS: Number=2 More? N > - - - - - - - - - - - - - - - - - - - - > EXCEPTION 1: SQLSTATE=IX000 > MESSAGE TEXT: Could not do a physical-order read to fetch next row. CLASS > ORIGIN: IX > SUBCLASS ORIGIN: IX000 > - - - - - - - - - - - - - - - - - - - - > EXCEPTION 2: SQLSTATE=IX000 > MESSAGE TEXT: ISAM error: record is locked. CLASS ORIGIN: IX SUBCLASS ORIGIN: > IX000 > ---------------------------------------------------------- The error codes indicate that the engine could not read a row because either that row or another row that it had to read during a sequential scan was locked by another user. When you run apps in a database that uses any logged mode you really MUST have each session begin with 'SET LOCK MODE TO WAIT <Nsecs>;' where <Nsecs> is some small number of seconds to wait for transient locks to be released. Unless there is a VERY poorly designed interactive app out there that is holding locks for long periods of time or a bulk load running most locks are transient lasting for a fraction of a second. However, without SET LOCK MODE TO WAIT set in your session your queries will return a lockout error if they encounter a lock. > We use insert trigger. When the data is being inserted, it is also tried to be > written to op.system file. Does it cause the error? Thanks, Best regards.. <OLD POSTINGS SNIPPED> Art S. Kagel