Re: 668 System command cannot be executed - 1: Not owner
Posted in 2006
gavinrifkind wrote: > Reece Wrote: > > If the Informix engine is either: > > 10.00.xC4 or later > > 9.40.xC8 or later > > > > Then the problem may be APAR IC49554 and a work around would be to > > explicitly specify CLIENT_LOCALE and DB_LOCALE in the URL used to > > connect to the database. > > > > As suggested by Jonathan, the stored procedure is most likely > > failing... the above mentioned APAR results in the 4GE failing with a > > database locale mismatch unless CLIENT_LOCALE and DB_LOCALE are > > explicity specified. > > > > If you're not using the above engines, modify your script to determine > > the reason the 4GE fails (such directing output of the 4GE to a file) > > and then take corrective action. > > > > Thanks, > > Thanks, > > The version is 9.40.FC8 , so this APAR does apply. > I have managed to get things to work correctly by just changing the > System settings to the appropriate locale. > Where can I get find the details of this APAR, so that I can explain > the issue to management. > > Thanks > Gavin > > > -- > gavinrifkind > ------------------------------------------------------------------------ > gavinrifkind's Profile: http://www.dbtalk.net/m553 > View this thread: http://www.dbtalk.net/t320415 For status of the APAR, please call Tech Support. Details of the bug... To prevent data corruption, PTS bug 171156 was fixed. This resulted in an error instead of a warning when attempting to connect to a database server when the DB_LOCALE set for the client connection specified a different code set than that of the DB_LOCALE used to create the database. While executing the Stored Procedure from an ESQL/C program on Windows, the shell that gets created by the "system" call in the SP ends up having a DB_LOCALE of en_US.212, and I've yet to figure out where that comes from (then again, I'm not the one digging through the code figuring out how to fix the problem either). Since the 212 code set most likely doesn't match what was used to create the database, the "system" call fails which causes the SP to fail with the -668/-1 error. Workarounds available: 1) Have the "system" function call a script which explicitly sets the environment needed for running the 4GL program, which would include setting CLIENT_LOCALE and DB_LOCALE. 2) Explicitly specify CLIENT_LOCALE and DB_LOCALE on all client connections. When this is done, it appears that the DB_LOCALE from the client connection is passed to the shell spawned by the "system" function. Hope that helps...