Re: ISQL7.50.UC5 show error messages
Posted in 2012
In ISQL/PERFORM 7.50.UC5, a query returning no rows displays "ISAM or system error number 3400" instead of the proper "There are no rows satisfying the conditions" message. Rob Newton's strace showed perf.iem was found and read correctly, but error -3400 was being reported through the -3000 message template. Jonathan Leffler suspected changes in the 'system error' detection code and asked for the original post's context; another poster said a similar symptom in his SE setup came from a dropped database connection (fixed by re-issuing DATABASE or restarting the engine). No resolution for Rob's case is recorded; the thread ends with him listing his CentOS 6.2 install order.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Stored Procedures & SPL
Hi Jonathan,
I am having this same problem as the OP. I too am using ISQL 7.50.UC5. And
like him, when doing a query using SPERFORM or within ISQL that returns no
results, it displays 'ISAM or system error number 3400'.
I ran an strace to see if it was finding an reading the perf.iem file, and it
does do this:
...
access("/opt/informix/msg/en_us/0333/perf.iem", R_OK) = 0
close(4) = 0
open("/opt/informix/msg/en_us/0333/perf.iem", O_RDONLY|O_LARGEFILE) = 4
read(4, "\\\\376h\\\\0\\\\262", 4) = 4
_llseek(4, 708, [708], SEEK_SET) = 0
read(4,
"\\\\v\\\\321\\\\0/\\\\0\\\\0!~\\\\v\\\\322\\\\0O\\\\0\\\\0!\\\\256\\\\v\\\\323\\\\0M\\\\0\\\\0!\\\\376\\\\v\\\\324\\\\0;\\\\0\\\\0\\\\"L"..., 64)
= 64
_llseek(4, 348, [348], SEEK_SET) = 0
read(4,
"\\\\362T\\\\0008\\\\0\\\\0\\\\26\\\\363\\\\362|\\\\0>\\\\0\\\\0\\\\26\\\\264\\\\362\\\\205\\\\0.\\\\0\\\\0\\\\26\\\\205\\\\362\\\\206\\\\0007\\\\0\\\\0
\\\\26M"..., 64) = 64
_llseek(4, 556, [556], SEEK_SET) = 0
read(4,
"\\\\364=\\\\0:\\\\0\\\\0\\\\21-\\\\364>\\\\0\\\\31\\\\0\\\\0\\\\21\\\\23\\\\364A\\\\0w\\\\0\\\\0\\\\20\\\\233\\\\364B\\\\0j\\\\0\\\\0\\\\0200"...,
64) = 64
_llseek(4, 660, [660], SEEK_SET) = 0
read(4, "\\\\v\\\\306\\\\0/\\\\0\\\\0 \\\\"\\\\v\\\\314\\\\0O\\\\0\\\\0 R\\\\v\\\\315\\\\0$\\\\0\\\\0 \\\\242\\\\v\\\\316\\\\0M\\\\0\\\\0
\\\\307"..., 64) = 64
_llseek(4, 636, [636], SEEK_SET) = 0
read(4,
"\\\\v\\\\302\\\\0$\\\\0\\\\0\\\\37g\\\\v\\\\304\\\\0J\\\\0\\\\0\\\\37\\\\214\\\\v\\\\305\\\\0J\\\\0\\\\0\\\\37\\\\327\\\\v\\\\306\\\\0/\\\\0\\\\0 \\\\""...,
64) = 64
_llseek(4, 620, [620], SEEK_SET) = 0
read(4,
"\\\\364H\\\\0!\\\\0\\\\0\\\\21\\\\255\\\\v\\\\274\\\\0\\\\30\\\\0\\\\0\\\\37N\\\\v\\\\302\\\\0$\\\\0\\\\0\\\\37g\\\\v\\\\304\\\\0J\\\\0\\\\0\\\\37\\\\214"...
, 64) = 64
_llseek(4, 4525, [4525], SEEK_SET) = 0
read(4, " ISAM or system error number %d "..., 33) = 33
write(1, "\\\\33[7m ISAM or system error number"..., 41) = 41
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
write(1, "\\\\33[1;1HPERFORM: \\\\33[7m Query \\\\33[m N"..., 157) = 157
read(0,
I also ran your listiem program as you suggested, and found the message for
3400. The odd thing is, I did a search on the actual message that is being
printed, and found it as 3000:
$ ./listiem /opt/informix/msg/en_us/0333/perf.iem |less
...
.-3400There are no rows satisfying the conditions
...
.-3000
ISAM or system error number %d
I hope that with this extra info you can pin-point the problem I am having?
Thanks,
Rob
Hi Rob,
I'm not sure whether you're addressing me or someone else.
On Mon, Apr 30, 2012 at 00:17, ROB NEWTON <robn@mirrabooka.com> wrote:
> Hi Jonathan,
>
> I am having this same problem as the OP. I too am using ISQL 7.50.UC5. And
> like him, when doing a query using SPERFORM or within ISQL that returns no
> results, it displays 'ISAM or system error number 3400'.
>
I can't immediately find the original post you are looking at. I checked
back through the ids@iiug.org messages to the beginning of April, and can't
immediately see anything with the same or a similar subject line. Do you
have any indication of when the original post was originally posted?
> I ran an strace to see if it was finding an reading the perf.iem file, and
> it
> does do this:
>
> ....
> access("/opt/informix/msg/en_us/0333/perf.iem", R_OK) = 0
> close(4) = 0
> open("/opt/informix/msg/en_us/0333/perf.iem", O_RDONLY|O_LARGEFILE) = 4
> read(4, "\\\\376h\\\\0\\\\262", 4) = 4
> _llseek(4, 708, [708], SEEK_SET) = 0
> read(4,
> "\\\\v\\\\321\\\\0/\\\\0\\\\0!~\\\\v\\\\322\\\\0O\\\\0\\\\0!\\\\256\\\\v\\\\323\\\\0M\\\\0\\\\0!\\\\376\\\\v\\\\324\\\\0;\\\\0\\\\0\\\\"L"...,
> 64)
> = 64
> _llseek(4, 348, [348], SEEK_SET) = 0
> read(4,
>
>
"\\\\362T\\\\0008\\\\0\\\\0\\\\26\\\\363\\\\362|\\\\0>\\\\0\\\\0\\\\26\\\\264\\\\362\\\\205\\\\0.\\\\0\\\\0\\\\26\\\\205\\\\362\\\\206\\\\0007\\\\0\\\\0
\\\\26M"...,
> 64) = 64
> _llseek(4, 556, [556], SEEK_SET) = 0
> read(4,
>
>
"\\\\364=\\\\0:\\\\0\\\\0\\\\21-\\\\364>\\\\0\\\\31\\\\0\\\\0\\\\21\\\\23\\\\364A\\\\0w\\\\0\\\\0\\\\20\\\\233\\\\364B\\\\0j\\\\0\\\\0\\\\0200"...,
> 64) = 64
> _llseek(4, 660, [660], SEEK_SET) = 0
> read(4, "\\\\v\\\\306\\\\0/\\\\0\\\\0 \\\\"\\\\v\\\\314\\\\0O\\\\0\\\\0 R\\\\v\\\\315\\\\0$\\\\0\\\\0 \\\\242\\\\v\\\\316\\\\0M\\\\0\\\\0
> \\\\307"..., 64) = 64
> _llseek(4, 636, [636], SEEK_SET) = 0
> read(4,
> "\\\\v\\\\302\\\\0$\\\\0\\\\0\\\\37g\\\\v\\\\304\\\\0J\\\\0\\\\0\\\\37\\\\214\\\\v\\\\305\\\\0J\\\\0\\\\0\\\\37\\\\327\\\\v\\\\306\\\\0/\\\\0\\\\0
> \\\\""..., 64) = 64
> _llseek(4, 620, [620], SEEK_SET) = 0
> read(4,
>
>
"\\\\364H\\\\0!\\\\0\\\\0\\\\21\\\\255\\\\v\\\\274\\\\0\\\\30\\\\0\\\\0\\\\37N\\\\v\\\\302\\\\0$\\\\0\\\\0\\\\37g\\\\v\\\\304\\\\0J\\\\0\\\\0\\\\37\\\\214"...
,
> 64) = 64
> _llseek(4, 4525, [4525], SEEK_SET) = 0
> read(4, " ISAM or system error number %d "..., 33) = 33
> write(1, "\\\\33[7m ISAM or system error number"..., 41) = 41
> rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
> write(1, "\\\\33[1;1HPERFORM: \\\\33[7m Query \\\\33[m N"..., 157) = 157
> read(0,
>
> I also ran your listiem program as you suggested, and found the message for
> 3400. The odd thing is, I did a search on the actual message that is being
> printed, and found it as 3000:
>
> $ ./listiem /opt/informix/msg/en_us/0333/perf.iem |less
> ....
> ..-3400> There are no rows satisfying the conditions
> ....
> ..-3000
> ISAM or system error number %d
>
> I hope that with this extra info you can pin-point the problem I am having?
>
So, the problem is that you are getting an error -3400 reported via message
-3000. There is no system error -3400, of course.
I know there were some changes made to detect 'system errors', so I can
more or less guess where there might be a problem, but I'd really like the
original context quoted so I can see what's up.
--
Jonathan Leffler <jonathan.leffler@gmail.com> #include <disclaimer.h>
Guardian of DBD::Informix - v2011.0612 - http://dbi.perl.org
"Blessed are we who can laugh at ourselves, for we shall never cease to be
amused."
--f46d040172ff5b31d404befd1abb
I've sporadically seen the same error message when executing a query against an SE table, using isql perform (albeit ver. 4.10.DD6 for MS-DOS).. In my case, I discovered that for some reason, the connection to the SE database server was lost and had to execute a "DATABASE dbname" sql command to re-establish the connection, or shutdown the SE engine and fire it up again.
Hi Jonathan, The original post was: SASCHA KURATIS -- Tuesday, 20 September 2011, at 7:23 a.m. http://www.iiug.org/forums/ids/index.cgi/read/24968 Could my problem have something to do with the installation order of various products and/or the versions I am using. I am using Centos (RHEL) 6.2 Linux. The installation order was: 1) Informix_4GL_RDS_Devel-7.50.UC5 2) Informix_SQL_Devel-7.5.UC5 3) Informix_IDS_Express-11.70.UC5 (installed IDS and ESQL/C from the installer).