ERROR -244 HELP!!!
Posted in 1999
Topics: Error Codes & Troubleshooting, Platform-Specific Issues
hi I am having some trouble with am error -244. Finderr wants me to use bcheck or scheck, does anyone know what these utilities are? I am running on Solaris 2.5 and Informix ONLINE-DS 7.2.1 here is the error below Thanks Judah <---BEGIN ERROR---> Can not fetch row on cursor E [SQLSTATE=IX 000 SQLCODE=-244] (cursor15) in something.inc on line 102 # finderr -244 -244 Could not do a physical-order read to fetch next row. The database server cannot read the disk page that contains a row of a table. Check the accompanying ISAM error code for more information. A hardware problem might exist, or the table or index file might have been corrupted. Unless the ISAM error code or an operating-system message points to another cause, run the bcheck or secheck utility to verify file integrity. Thanks in advance
Judah Libin wrote: > > hi > I am having some trouble with am error -244. Finderr wants me to use > bcheck or scheck, does anyone know what > these utilities are? I am running on Solaris 2.5 and Informix ONLINE-DS > 7.2.1 here is the error below > Thanks Judah > > <---BEGIN ERROR---> > Can not fetch row on cursor E [SQLSTATE=IX 000 SQLCODE=-244] (cursor15) > in something.inc on line 102 > # finderr -244 > -244 Could not do a physical-order read to fetch next row. > > The database server cannot read the disk page that contains a row of a > table. Check the accompanying ISAM error code for more information. A ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ There lies the most important phrase in the message. If you check the ISAM code (sqlca.sqlerrd[1]) you will probably find that it is just a lock error, either the row is locked or it's index node is locked. This happens most often when the table's lock level is page rather than row and another process is updating or inserting a row on the same page. The best solution is to SET LOCK MODE TO WAIT 10; in your code so that you do not get an error but wait for one of these transient locks to clear. If however, your applications are poorly designed and do a SELECT.... FOR UPDATE then present the record for an interactive user to modify then UPDATE ... WHERE CURRENT OF cursorname you are getting what you deserve. Some user has pulled a row up on the screen and is talking on the phone or out to lunch and has the row locked for the next hour or two. In this case rewrite the application to use timestamps and verified reread-before-update instead. Art S. Kagel
Judah Libin wrote:
> I am having some trouble with am error -244. Finderr wants me to use
> bcheck or scheck, does anyone know what these utilities are?
They're tools for verifying SE files. The equivalent for OnLine is
oncheck.
> I am running on Solaris 2.5 and Informix ONLINE-DS
> 7.2.1 here is the error below
It would help if you reported the ISAM error from sqlca.sqlerrd[1]
(check the subscript; I could be getting confused with I4GL).
There's at least a chance that it is reporting that something is
locked.
SQLSTATE is remarkably useless, not least because there is no
standard way to convert an error code into a text message.
> Thanks Judah
>
> <---BEGIN ERROR--->
> Can not fetch row on cursor E [SQLSTATE=IX 000 SQLCODE=-244] (cursor15)
> in something.inc on line 102
> # finderr -244
> -244 Could not do a physical-order read to fetch next row.
>
> The database server cannot read the disk page that contains a row of a
> table. Check the accompanying ISAM error code for more information. A
> hardware problem might exist, or the table or index file might have
> been corrupted. Unless the ISAM error code or an operating-system
> message points to another cause, run the bcheck or secheck utility to
> verify file integrity.
>
> Thanks in advance
--
Jonathan Leffler (jleffler@informix.com, jleffler@earthlink.net)
Guardian of DBD::Informix v0.60 -- see http://www.perl.com/CPAN
#include <disclaimer.h>