SQL Development 32 bit and IDS 64/Client SDK 64
Posted in 2008
Kathy installed 64-bit IDS 11.50, Client SDK and 32-bit SQL Development (ISQL) all into /usr/informix on Solaris 10 and got "Wrong ELF Class: ELFCLASS64" from isql. Replies explained you can't mix 32- and 64-bit products in one INFORMIXDIR: install ISQL/CSDK in a separate directory with its own INFORMIXDIR, PATH and library path, sharing sqlhosts/INFORMIXSERVER, and connect via TCP or stream pipes (not shared memory); also install older products first and use CSDK 3.50 with 11.50. After moving ISQL to /usr/informix/tools, isql still launched dbaccess; she fixed it with an isql alias/script that sets INFORMIXDIR to the tools directory before running isql, and forms then worked.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Installation, Setup & Upgrades, Connectivity: ESQL/C, 4GL & Embedded SQL, Platform-Specific Issues
The platform I am trying to set up is an Intel running Solaris 10. The database engine is IDS 11.50.FC3 (64 bit). Other tools I am trying to install are Client SDK for Intel V3.00 (32 bit) and SQL Development 7.30.UC (32 bit). I installed all three products in /usr/informix. When I try to execute a .sql or the isql {dbname} command I receive the following error. ld.so.1: isql fatal: /usr/informix/lib/esql/libifsql.so: Wrong ELF Class: ELFCLASS64. I have since found out that I need to create two environments, one for SQL Development (32 bit) and the other for IDS and Client SDK (64 bit). I was under the impression that I could do this by creating another directory under /usr/informix. In my case I created a tools subdirectory under /usr/informix. When I ran the tar on the SQL Development CD and ran the ./installsql program I did so under /usr/informix/tools direcory. I am receiving an error that it needs to be installed under /usr/informix. I guess my real question is, how do I create a seperate environment for the 32 bit installation of SQL Development and also how do I set a new environment variable for $INFORMIXDIR to point to this environement?
> -----Original Message-----
> From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
> KATHY DUCHENE
> Sent: Tuesday, November 25, 2008 10:59 AM
> To: ids@iiug.org
> Subject: SQL Development 32 bit and IDS 64/Client SDK 64 [14116]
>
> The platform I am trying to set up is an Intel running Solaris 10. The
> database engine is IDS 11.50.FC3 (64 bit). Other tools I am trying to
> install
> are Client SDK for Intel V3.00 (32 bit) and SQL Development 7.30.UC
(32
> bit).
>
> I installed all three products in /usr/informix. When I try to execute
a
> .sql
> or the isql {dbname} command I receive the following error.
> ld.so.1: isql fatal: /usr/informix/lib/esql/libifsql.so: Wrong ELF
Class:
> ELFCLASS64.
>
> I have since found out that I need to create two environments, one for
SQL
> Development (32 bit) and the other for IDS and Client SDK (64 bit). I
was
> under the impression that I could do this by creating another
directory
> under
> /usr/informix. In my case I created a tools subdirectory under
> /usr/informix.
> When I ran the tar on the SQL Development CD and ran the ./installsql
> program
> I did so under /usr/informix/tools direcory. I am receiving an error
that
> it
> needs to be installed under /usr/informix. I guess my real question
is,
> how do
> I create a seperate environment for the 32 bit installation of SQL
> Development
> and also how do I set a new environment variable for $INFORMIXDIR to
point
> to
> this environement?
If you're installing in the same directory, you can't mix and match 32
and 64 bit environments. Even with the 32 bit client products installed
in a separate directory, you will not be able to connect to the 64 bit
engine through shared memory, only network or streams. So try putting
your tools in a directory like /usr/informix_tools. Then you should be
able to do something like this:
export INFORMIXDIR=/usr/informix_tools
export PATH=$PATH:$INFORMIXDIR/bin
export INFORMIXSQLHOSTS=/usr/informix/etc/sqlhosts
export INFORMIXSERVER=network_alias_for_your_64_bit_server
This should allow isql to access the 64 bit server.
--EEM
>
>
>
************************************************************************
**
> *****
> Forum Note: Use "Reply" to post a response in the discussion forum.
Several problems: 1- You cannot install 64bit and 32bit Informix products in the same directories. They share interdependent shared libraries (like libifsql.so). You will either have to install 64bit versions of these tools or install the 32bit ISQL and CSDK into a separate INFORMIXDIR with a copy of the sqlhosts file. Note that 32bit applications cannot access a 64bit engine instance using shared memory connections - you will have to use TCP/IP or Stream Pipe connections types. ISQL and CSDK application clients will set INFORMIXDIR and LD_LIBRARY_PATH to the tools install directory rather than the engine's directory. 2- CSDK v 3.00 does NOT support all of the 11.50 features. You should be installing CSDK v 3.50.<latest> along with IDS 11.50. All CSDK versions are fully source compatible with all earlier releases. If you have current applications compiled with earlier CSDK versions you MAY have to recompile them (almost certainly if they are not linked statically), but otherwise everything should work. 3- You MUST install older versions of products BEFORE newer ones when they are installed in the same directory, so be careful to install ISQL 7.30 BEFORE CSDK v 3.<anything> and to install CSDK v3.00 BEFORE installing IDS v 11.50 (which ships with CSDK v3.50). Art On Tue, Nov 25, 2008 at 11:58 AM, KATHY DUCHENE <kathy.duchene@state.mn.us>wrote: > The platform I am trying to set up is an Intel running Solaris 10. The > database engine is IDS 11.50.FC3 (64 bit). Other tools I am trying to > install > are Client SDK for Intel V3.00 (32 bit) and SQL Development 7.30.UC (32 > bit). > > I installed all three products in /usr/informix. When I try to execute a > .sql > or the isql {dbname} command I receive the following error. > ld.so.1: isql fatal: /usr/informix/lib/esql/libifsql.so: Wrong ELF Class: > ELFCLASS64. > > I have since found out that I need to create two environments, one for SQL > Development (32 bit) and the other for IDS and Client SDK (64 bit). I was > under the impression that I could do this by creating another directory > under > /usr/informix. In my case I created a tools subdirectory under > /usr/informix. > When I ran the tar on the SQL Development CD and ran the ./installsql > program > I did so under /usr/informix/tools direcory. I am receiving an error that > it > needs to be installed under /usr/informix. I guess my real question is, how > do > I create a seperate environment for the 32 bit installation of SQL > Development > and also how do I set a new environment variable for $INFORMIXDIR to point > to > this environement? > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > -- Art S. Kagel Oninit (www.oninit.com) IIUG Board of Directors (art@iiug.org) Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on my employer, Oninit, the IIUG, nor any other organization with which I am associated either explicitly or implicitly. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves.
2008/11/25 KATHY DUCHENE <kathy.duchene@state.mn.us>:
> The platform I am trying to set up is an Intel running Solaris 10. The
> database engine is IDS 11.50.FC3 (64 bit). Other tools I am trying to install
> are Client SDK for Intel V3.00 (32 bit) and SQL Development 7.30.UC (32 bit).
>
> I installed all three products in /usr/informix. When I try to execute a .sql
> or the isql {dbname} command I receive the following error.
> ld.so.1: isql fatal: /usr/informix/lib/esql/libifsql.so: Wrong ELF Class:
> ELFCLASS64.
>
> I have since found out that I need to create two environments, one for SQL
> Development (32 bit) and the other for IDS and Client SDK (64 bit). I was
> under the impression that I could do this by creating another directory under
> /usr/informix. In my case I created a tools subdirectory under /usr/informix.
> When I ran the tar on the SQL Development CD and ran the ./installsql program
> I did so under /usr/informix/tools direcory. I am receiving an error that it
> needs to be installed under /usr/informix. I guess my real question is, how
do
> I create a seperate environment for the 32 bit installation of SQL
Development
> and also how do I set a new environment variable for $INFORMIXDIR to point to
> this environement?
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
Kathy
In the first para you say the SQL and CSDK are 32 bit but in the third
para you say the CSDK is 64 bit? I' working on the first option :-)
All you really need to get your head around is to use two separate
environments and (preferably) two sets of users. One set have use the
engine and controlling tools directly (onmonitor, oninit, onmode,
dbaccess) and undertake a DBA type function whilst the second set are
developers and use isql and the CSDK.
You already have an engine installed in /usr/informix. Create
directory /usr/tools, set $INFORMIXDIR to /usr/tools and install sql
and CSDK here.
Both sets of users have the same INFORMIXSERVER variable set and the
same INFORMIXSQLHOSTS. DBA type users have INFORMIXDIR=/usr/informix
and PATH containing /usr/informix/bin . Dev users need
INFOMRIXDIR=/usr/tools and PATH containing /usr/tools/bin, also ('cos
it's Solaris) LIBPATH needs to be set to
/usr/tools/lib:/usr/tools/lib/esql:/usr/tools/lib/tools . You can use
an environment switching type script to allow one user access to both
environments, but this can get confusing, hence two independant user
sets are easier to understand and manage.
Once this is done the rest is easy. Use DBA to administer and
developers to make the tea !
Keith
On our new server I have created two environments as suggested for the 64 bit/32 bit. IDS V11.50 and Client SDK V3.50FC3 was installed under /usr/informix and SQL Development V7.32UC3 was created under /usr/informix/tools. Everything appeared to be working just fine until I tried to execute the isql {database name} to access Forms. Instead of the IBM Informix-SQL menu I get the DBACCESS menu. Any suggestions?
Did you install ISQL? It is not included with either the IDS engine not with the Client SDK. Hasn't been since DS 6.00. Art On Tue, Dec 23, 2008 at 10:21 AM, KATHY DUCHENE <kathy.duchene@state.mn.us>wrote: > On our new server I have created two environments as suggested for the 64 > bit/32 bit. IDS V11.50 and Client SDK V3.50FC3 was installed under > /usr/informix and SQL Development V7.32UC3 was created under > /usr/informix/tools. Everything appeared to be working just fine until I > tried > to execute the isql {database name} to access Forms. Instead of the IBM > Informix-SQL menu I get the DBACCESS menu. > > Any suggestions? > > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > > -- Art S. Kagel Oninit (www.oninit.com) IIUG Board of Directors (art@iiug.org) Disclaimer: Please keep in mind that my own opinions are my own opinions and do not reflect on my employer, Oninit, the IIUG, nor any other organization with which I am associated either explicitly or implicitly. Neither do those opinions reflect those of other individuals affiliated with any entity with which I am affiliated nor those of the entities themselves.
Thank you for the responses. I ended up changing the alias in the .profile for
isql which now points to a script which points to the right enviornment (alias
isql=isql.sh).
Here is an example of the script
export INFORMIXDIR=/usr/informix/toolsisql
The /usr/informix/tools is the seperate environment set up for SQL Development
Intel 32-Bit.
The ISQL Forms are working just fine now. Again thank you.