IAS 10gR2 (10.1.2.0.0) on SUSE LINUX Enterprise Server 9
The purpose of this document is not really a description
of how to install and application server on SLES9.
Even if I didn't understand all the options I had to provide in order to install this product, the procedure was not hard at all and I had to solve only minor issues. “Boring and long” I would define it.
Before starting I have to add two things: the main goal of this document is to understand something more about the application server (which I don't know) and to show my findings on the variable LD_ASSUME_KERNEL.
<>Another important thing: for some of the features provided by the application server (such as single sign on and portal) you need a metadata repository: i.e. a database where the needed schema will be created. Check in the compatibility matrix of metalink before using an already existing database of yours. Personally I created a 10.1.0.3 DB only to be my “infrastructure database”.I'm starting with the usual recommendation on what you need in order to be able to successfully install the IAS.
I like the minimal operating system installation. Then I add the following packages:
make
gcc-3.3.3
compat
XFree86-libs
libaio-devel
libaio
openmotif-libs
openmotif
The oracle installer will check for other packages which are not really necessary:
libstdc++In particular to solve the dependences of the last two a lot of rpms are going to be added. You are warned.
Install the package db1 (if you have installed the additional components then this package is already installed) which contains libdb.so.2 or create a link beetween libdb.so.3 and libdb.so.2 (ln -s libdb.so.3 libdb.so.2) in /usr/lib; otherwise you will get this error:
error while loading shared libraries: libdb.so.2: cannot open shared object file: No such file or directory
Orarun is not required but I prefer to install it.
linux: # rpm -Uvh
orarun-1.8-109.5.i686.rpm
Now create you ORACLE_HOME:
linux: # mkdir -p
/u01/app/oracle/product/10.1/ias_1
linux: # chown -R
oracle:oinstall /u01/app/oracle
Go in /etc/profile.d, modify the entries in oracle.sh to meet your system (have a look at the other HOWTO on this website) and rename all the shell file giving a .bak extension otherwise you'll get:
TaskMaster sysInit failed for
/u01/app/oracle/product/oem10g
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at
java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:452)
at java.net.Socket.connect(Socket.java:402)
at java.net.Socket.<init>(Socket.java:309)
at java.net.Socket.<init>(Socket.java:124)
when configuring the webcache.
Now you can go on answering “y” to the runInstaller.








Error: uploading country.xml failed.
[ExternalProcessAction] Process Error: java.sql.SQLException:
ORA-29855: error occurred in the
execution of ODCIINDEXCREATE routine
ORA-06550: line 1, column 8:
PLS-00201: identifier 'MDSYS.MDPRVT_IDX' must be declared
ORA-06550: line 1, column 8:
PL/SQL: Statement ignored
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 10
ORA-06512: at line 1
solved by unlocking the mdsys account and creating the MDPRVT_IDX
with mdinst.sql.
Now you can set back you environment (for you DB) and your DB memory
parameters to have a SGA_TARGET properly confugurated.
Time to connect to your IAS and register them in the new FARM using
the DB connection string.
If your IAS is already registered you can deregister it with the
command:
$ORACLE_HOME/dcm/bin/dcmctl leavefarm
I'm still fighting to create a cluster using IAS + webcaches. The
webcaches seems unwilling to work in the cluster.
This session is, in my opinion, the most
interesting.
If you have followed the installation
procedure you have seen that it is required that no env variable should
be set so even LD_ASSUME_KERNEL which is usually an important part of
other product installation.
What does it mean?
LD_ASSUME_KERNEL specify which
implementation of the libc.so.6 (glibc) to use.
Normally three different version are installed on your system:
/lib/i686/libc.so.6
/lib/libc.so.6
/lib/tls/libc.so.6
this is made for compatibility with
older system.
so if you set LD_ASSUME_KERNEL to 2.4.21 (the usual set for SUSE) you
are going to use /lib/i686/libc.so.6
Let's go to a system where I installed a
database and issue the command:
oracle@brealmdbls01:~> lsof|grep
oracle|grep libc.so.6|head -n 5
tnslsnr 2612 oracle mem
REG 104,2
1321972 275270 /lib/i686/libc.so.6
tnslsnr 2627 oracle mem
REG 104,2
1321972 275270 /lib/i686/libc.so.6
tnslsnr 2628 oracle mem
REG 104,2
1321972 275270 /lib/i686/libc.so.6
tnslsnr 2629 oracle mem
REG 104,2
1321972 275270 /lib/i686/libc.so.6
oracle 2784 oracle
mem REG
104,2 1321972 275270
/lib/i686/libc.so.6
As you can see all the processes of the
orcle user are employing /lib/i686/libc.so.6
Doing the same test on the machine where
you have just installed the application server you'll get:
oracle@breoraasls02:~> lsof|grep
oracle|grep libc.so.6|head -n 5
sshd 3356 oracle
mem REG 8,2
1345545 950307 /lib/tls/libc.so.6
bash 3357 oracle
mem REG 8,2
1345545 950307 /lib/tls/libc.so.6
opmn 6980 oracle
mem REG 8,2
1345545 950307 /lib/tls/libc.so.6
java 7004 oracle
mem REG 8,2
1345545 950307 /lib/tls/libc.so.6
opmn 8509 oracle
mem REG 8,2
1345545 950307 /lib/tls/libc.so.6
The result is, as expected, not the same.
Then what are the differences between
the two libc.so.6?
If you use them as a command you'll
discover:
oracle@breoraasls02:~>
/lib/i686/libc.so.6
GNU C Library stable release version 2.3.3 (20040412), by Roland
McGrath et al.
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Configured for i686-suse-linux.
Compiled by GNU CC version 3.3.3 (SuSE Linux).
Compiled on a Linux 2.6.5 system on 2004-06-30.
Available extensions:
GNU libio by Per Bothner
crypt add-on version 2.1 by
Michael Glad and others
linuxthreads-0.10 by Xavier
Leroy
GNU Libidn by Simon Josefsson
NoVersion patch for broken
glibc 2.0 binaries
BIND-8.2.3-T5B
libthread_db work sponsored
by Alpha Processor Inc
NIS(YP)/NIS+ NSS modules
0.19 by Thorsten Kukuk
Thread-local storage support included.
pthread library is compiled with floating stack support enabled.
Report bugs using the `glibcbug' script to <bugs@gnu.org>.
oracle@breoraasls02:~>
/lib/tls/libc.so.6
GNU C Library stable release version 2.3.3 (20040412), by Roland
McGrath et al.
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Configured for i686-suse-linux.
Compiled by GNU CC version 3.3.3 (SuSE Linux).
Compiled on a Linux 2.6.5 system on 2004-06-30.
Available extensions:
GNU libio by Per Bothner
crypt add-on version 2.1 by
Michael Glad and others
NPTL 0.61 by Ulrich Drepper
GNU Libidn by Simon Josefsson
NoVersion patch for broken
glibc 2.0 binaries
RT using linux kernel aio
BIND-8.2.3-T5B
NIS(YP)/NIS+ NSS modules
0.19 by Thorsten Kukuk
Thread-local storage support included.
Report bugs using the `glibcbug' script to <bugs@gnu.org>.
Mainly NPTL 0.61 by Ulrich Drepper are
used instead of the older linuxthreads-0.10 by Xavier Leroy.
In 10g we can see how heavily the
development as been shifted from processes to threads. Even the
listener changed:
oracle@brealmdbls01:~> ps -fe|grep
tnsl
oracle 2612 1 0 Mar20
? 00:01:59
/u01/app/oracle/product/10.1.0.3/db_1/bin/tnslsnr LISTENER -inherit
oracle 2627 2612 0 Mar20
? 00:00:00
/u01/app/oracle/product/10.1.0.3/db_1/bin/tnslsnr LISTENER -inherit
oracle 2628 2627 0 Mar20
? 00:00:00
/u01/app/oracle/product/10.1.0.3/db_1/bin/tnslsnr LISTENER -inherit
oracle 2629 2627 0 Mar20
? 00:00:00
/u01/app/oracle/product/10.1.0.3/db_1/bin/tnslsnr LISTENER -inherit
Four threads (I have 4 CPU) instead of a
process.
Since I had serious problems with SLES7
threads (linuxthreads-0.09) and RAC I'm wondering if the newer native
posix thread libraries should be used instead of the older. I can't
answer now since I need to test the behaviour of the systems using
different libc.so.6 but I feel I contributed somehow to a possible
misconfiguration of several DBs in the SUSE community.
Another worry concerns async I/O (RT
using linux kernel aio) but even here I need to investigate further.
Contact
information:
fabrizio.magni _at_ gmail.com