Translating with DrWatson… this can take a few seconds the first time.
This is a genuine, complex translation. DrWatson protects commands, error codes, and log output while naturally translating the surrounding text. It’s translated once and saved.
Daniil T on 12.10.FC12 on Linux got error -668 when a remotely invoked SPL procedure ran SYSTEM, because the ADM VP tried chdir to the Windows client directory. Doug Lawry pointed to CREATE USER and USERMAPPING and suggested a defect report and restart. Daniil found a workaround of starting oninit from a fixed directory and did not open a case.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Daniil T — source: IBM Community (ConnectedCommunity.org) Informix forum
Greetings,
Encountering an interesting issue.
Server is: 12.10.FC12
When invoking an SPL procedure from a remote client which calls the routine:
create procedure system_test()system 'echo "Hello"';
end procedure;
I get the following error:
SQL error = -668 ISAM error = 0 error string = = ""It doesn't really matter what command I invoke via SYSTEM, I always get the same error.
This only occurs when I invoke the above when connecting "remotely", either via JDBC or the native Informix driver.
However, when I jump onto the server, logging in as the same user, and run the same proc inside a dbaccess session it works fine.
So, when I traced the ADM VP, I noticed that it was doing a chdir() to what appears to be the HOME directory when SYSTEM is called "locally":
[pid 3095] chdir("/home/informix") = 0
However, when the client calls SYSTEM remotely, it fails because it tries changing to the directory the client is executed/run from:
[pid 3128] chdir("C:\\\\Some\\\\Windows\\\\Directory\\\\Informix\\\\Client") = -1 ENOENT (No such file or directory)
I'm not sure if this is a "feature" on Linux, or whether I haven't provisioned the Informix server correctly to use an appropriate "chdir()" directory.
I have tried creating the same Windows directory on the server, however, it's not an absolute Linux path, so not sure where the directory should actually be placed (I might experiment...).
Any ideas would be greatly appreciated.
TIA.
#Informix
↪ replying to Daniil T
Doug Lawry — source: IBM Community (ConnectedCommunity.org) Informix forum
Daniil T — source: IBM Community (ConnectedCommunity.org) Informix forum
Thanks Doug.
I did have a little play. Unfortunately, it looks like I need USERMAPPING enabled. However, AFAIK, we don't use this feature in our production and acceptance-testing environments, but, SYSTEM calls seem to work fine on those.
FWIW, this is occurring on an x86/Linux server install of Informix. The other environments are SPARC/Solaris.
↪ replying to Daniil T
Doug Lawry — source: IBM Community (ConnectedCommunity.org) Informix forum
You can enable USERMAPPING without restarting IDS. It's covered in this article:
https://www.oninitgroup.com/faq-items/informix-read-only-access
Your problem may be a defect, though. Have you opened a support case? Are your Solaris systems on a different IDS version?
Also, strange results occur after starting IDS when in a directory which is then removed. Have you tried stopping and restarting?
------------------------------
Doug Lawry
Oninit Consulting
------------------------------
↪ replying to Doug Lawry
Daniil T — source: IBM Community (ConnectedCommunity.org) Informix forum
Thanks Doug.
We've got a work-around which requires oninit be started from a specific well-known directory (which is never removed). Although, the observation of strange behaviour from a deleted start directory is most curious.
Due to the work-around, we're unlikely to raise a support ticket.
The Solaris servers are all running 12.10.FC10, with one at 12.10.FC12.
Unfortunately, starting and stopping doesn't appear to affect behaviour.
We use strictly necessary cookies to make this site work. With your
consent we’d also use optional cookies for analytics and marketing. You can accept all,
reject all, or choose. Read our Cookie Policy.