Re: Cannot set/unset DELIMIDENT
Posted in 2004
Topics: Server Administration, Networking & sqlhosts Configuration, Platform-Specific Issues
Petro Schutte wrote:
> Solaris 8
> Informix Dynamic Server Version 7.31.FD1
>
> On the specific server commands in dbaccess behave as if DELIMIDENT is
> set. Neither does it show when I list the current environment
> variables nor can I unset it. I have tried it in Kourne shell as well
> as Cshell with no effect. (I have tested the set and unset of
> DELIMIDENT on two other servers with the same software loaded and
> there it is working as desribed in the manual) The servers are all
> running SAP 4.6.
>
> The output of "env" is:
> --------------------------------------------------------------------------------
> HOME=/export/home/informix
> PATH=/informix/PRD/bin:/export/home/informix:...snip...>[...no DELIMIDENT in the deleted info...]
> INFORMIXSQLHOSTS=/informix/PRD/etc/sqlhosts.tli
> INFORMIXSERVER=gariepprdshm> dbms_type=inf
>
> -------------------------------------------------------------------------------
>
> Although DELIMIDENT is not set it behaves as if it is set.
>
> Please help -- We have to unset DELIMIDENT.
See my session G08 "Is Your DBA Paranoid Enough?" from the IBM DMTC
2004. I fear your DBA (DBSA - Database System Administrator) isn't
paranoid enough.
If DELIMIDENT was set in the environment of oninit when it was
started, then it doesn't matter what the value is in the client's
environment - the server's value will take precedence over the
client's lack of a value (and all that matters is whether DELMIDENT is
present in the environment - not what its value is).
You will have to restart the server without DELIMIDENT in the
environment. I don't think 7.31 supports 'onstat -g env', but if it
does, it would confirm (or deny) my hypothesis.
The correct way to start the server is to rigorously control its
environment... Use a script like this - always, and every time you
start the server:
IXD=/informix/PRD
cd $IXD
env -i INFORMIXDIR=$IXD \\
ONCONFIG=onconfig.gariep.prd \\ TZ=GMT-2 \\
SHELL=/bin/ksh \\
HOME=$IXD \\
PATH=$IXD/bin:/bin:/usr/bin \\
INFORMIXSQLHOSTS=$IXD/etc/sqlhosts.tli \\
INFORMIXSERVER=gariepprdshm \\ -- $IXD/bin/oninit "$@"
You might want to ensure that "$@" - the argument list - does not
include '-i' (you probably don't use this script to initialize the
server, and you don't want it to be abused to initialize the server).
The env command is standard POSIX. The '-i' option says "ignore
inherited environment". The environment that follows is close to
minimal - it has INFORMIXSQLHOSTS in it since your working environment
does. The double-dash says "end of environment variables"; command
line follows. One advantage of using the absolute name of the oninit
executable is that the path shows up in the 'ps' listings, which makes
it easier to associate different oninit commands with the
corresponding INFORMIXDIR values - if you have multiple servers on
your machine (as I do, but not every one does).
I use a one-step-more-complex startup script. It uses a command
'asroot' of my own devising which I use to set the UID to informix and
the sole GID to informix so that the CPU VPs run as informix and not
as root.
Your time zone setting is odd (not wrong, necessarily). You time zone
name is GMT all year round, and it's offset is two hours east of UTC
(Universal Time, Coordinated), aka GMT. I'd have expected an
alternative abbreviation. But setting the time zone reliably for the
server is another part of being a paranoid DBSA.
I note that you're living in a state of sin - you've got
SHELL=/bin/csh in your environment. See: "C Shell Programming
Considered Harmful" at (amongst other places):
http://www.cs.uu.nl/wais/html/na-dir/unix-faq/shell/csh-whynot.html
Incidentally, you can run into similar problems with other environment
variables. For example, setting DBDATE="Y4MD-" in the server's
environment will baffle any client who connects with no DBDATE set in
their environment - innocent US citizens would expect the nominal
default DBDATE="MDY4/" setting to work, but the server's value takes
precedence.
--
Jonathan Leffler #include <disclaimer.h>
Email: jleffler@earthlink.net, jleffler@us.ibm.com
Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/
Jonathan Leffler wrote: > [...] > See my session G08 "Is Your DBA Paranoid Enough?" from the IBM DMTC > 2004. I fear your DBA (DBSA - Database System Administrator) isn't > paranoid enough. Ok - at the risk of looking like an idiot for not being able to find it for myself, would you mind posting how/where one would go about finding that? You've got a version of slides that is even more current than the one from the CD given to the conference attendees, correct? I've checked the IBM and IIUG sites for it. Did I overlook it? -- June C. Hunt
June C. Hunt wrote: > Jonathan Leffler wrote: > >>[...] >>See my session G08 "Is Your DBA Paranoid Enough?" from the IBM DMTC >>2004. I fear your DBA (DBSA - Database System Administrator) isn't >>paranoid enough. > > Ok - at the risk of looking like an idiot for not being able to find it for > myself, would you mind posting how/where one would go about finding that? > You've got a version of slides that is even more current than the one from > the CD given to the conference attendees, correct? I've checked the IBM and > IIUG sites for it. Did I overlook it? Probably not. I gave it at the KCIUG meeting (http://www.iiug.org/kciug/) too, and sent it to be put up on the web site, but it isn't there. Oh well, you'll have to come to the IIUG/IDUG conference in May :-) Besides, weren't you at the DMTC? A draft, admittedly not as complete as I'd like, is on that CD. -- Jonathan Leffler #include <disclaimer.h> Email: jleffler@earthlink.net, jleffler@us.ibm.com Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/
Related threads
- Posting from the Informix-list
- Migrating from IDS 9.40.UC6 to 11.50.UC3
- Ip for a network session
- questions onstat -g