on 04-25-2008 2:56 PM
hello,
i like to connect from our sap system, running on suse linux, to an external oracle 10g database.
i know i have to configure the database connection with transaction dbco, but i don't know
how the connection string must look like.
anyway, when i try to connect with EXEC SQL CONNECT TO... i can see the error "can't find shared library..." in the system log.
i know i have to install the file dboraslib.so in the library directory of the sap system, but i don't know where to download this file.
i searched the database patches at the service marketplace, but none of the packages there contains the dboraslib.so.
i hope anyone can help me.
thanks in advance
thomas
Edited by: Tommi Fricker on Apr 25, 2008 3:56 PM
Edited by: Tommi Fricker on Apr 25, 2008 4:16 PM
Hello Tommi,
Additional to the file mentioned by siddhesh, you also have to install the proper oracle client.
The needed oracle client depends on your current kernel.
If your kernel is 700 then the client is 10g.
Otherwise, probably it is 9i, unless you are using an old (out of mainstream maintenance) one
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
thank you for your information and your help.
i copied the dboraslib.so in the library directory of our sap system and installed the oracle instantclient. after unpacking the SAR file, i found the new files in directory /oracle/client.
when i execute ldd with the lib, i can see that it can find the instantclient:
[root@s4b] /<2>S4B/profile # ldd /usr/sap/S4B/SYS/exe/run/dboraslib.so
libclntsh.so.9.0 => /oracle/client/92x_32/lib/libclntsh.so.9.0 (0x400b4000)
libwtc9.so => /oracle/client/92x_32/lib/libwtc9.so (0x40abc000)
libc.so.6 => /lib/libc.so.6 (0x40ac5000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40be3000)
libdl.so.2 => /lib/libdl.so.2 (0x40bf9000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40bfc000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
after restarting sap, the new library has been loaded by the sap system, but it still doesn't work.
in the system log i can see an database error 1019 when i execute following code:
DATA: CONNECTION LIKE DBCON-CON_NAME VALUE 'ORA10CHILI'.
EXEC SQL.
CONNECT TO :CONNECTION
ENDEXEC.
i think i have to create a file tnsnames.ora and define the connection there?
so i created a file /oracle/network/admin/tnsnames.ora with following content:
ATHOS.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ATHOS.WORLD)
)
)
in transaction DBCO i configured the connection with the connection info ATHOS.WORLD.
unfortunately, this had no effect, i still geht the same error 1019.
do i have to create more config files for oracle?
how does sap know, where to find the tnsnames.ora?
thanks in advance,
Thomas
hello markus,
you're right. i mixed up the words.
i installed the oracle 9 libs, not the instantclient, and it seems, that the shared lib can find the client libs:
[root@s4b] /<2>S4B/profile # ldd /usr/sap/S4B/SYS/exe/run/dboraslib.so
libclntsh.so.9.0 => /oracle/client/92x_32/lib/libclntsh.so.9.0 (0x400b4000)
libwtc9.so => /oracle/client/92x_32/lib/libwtc9.so (0x40abc000)
libc.so.6 => /lib/libc.so.6 (0x40ac5000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40be3000)
libdl.so.2 => /lib/libdl.so.2 (0x40bf9000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40bfc000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
does anyone know, what error 1019 means, which i can find in the sap system log, after i try to connect to the db via exec sql?
hello markus,
when i sniff the network transfer with ngrep on the linux machine, i see, that the system does not communicate with the oracle server at all.
therefore i don't think that its an authentication problem.
can you confirm, that these are the necessary steps to connect sap to an external oracle:
1. install the dbsl file for oracle.
2. install the client libs.
3. create a file $ORACLE_HOME/network/admin/tnsnames.ora and define the connection data.
4. declare the connection in transaction DBCO, using the name defined in tnsnames.ora as connection data.
tommi
here's the output of my trace, i hope this helps:
B create_con (con_name=ORA10CHILI)
B Loading DB library '/usr/sap/S4B/SYS/exe/run/dboraslib.so' ...
B Library '/usr/sap/S4B/SYS/exe/run/dboraslib.so' loaded
B Version of library '/usr/sap/S4B/SYS/exe/run/dboraslib.so' is "46D.00", patchlevel (0.2186)
B New connection 2 created
B Connect to ORA10CHILI as S4Badm with ATHOS
C Connecting as S4Badm/<pwd>@ATHOS on connection 1 ...
C *** ERROR => OCI-call 'olog' failed: rc = 1019
[dboci.c 2460]
C *** ERROR => CONNECT failed with sql error '1019'
[dbsloci.c 7024]
B ***LOG BY2=> sql error 1019 performing CON [dbds 1096 ]
B ***LOG BY0=> [dbds 1096 ]
tommi
yes, right.
the 9.x dbsl file was the only one i found for the 4.6 system:
i followed this path for downloading the dbsl file from the service marketplace:
Support Packages and Patches" Additional Components" SAP Kernel" SAP KERNEL 32-BIT" SAP KERNEL 4.6D_EXT 32-BIT
do you think i can get the connection working with this combination (10g server <-> 9.x client on system 4.6C)?
tommi
> the 9.x dbsl file was the only one i found for the 4.6 system:
There is an EX2 kernel also which is linked against the 10g instantclient (if you have an extended support contract for 4.6c)
http://service.sap.com/patches
--> My Company's Application Components
--> SAP KERNEL 32-BIT
--> SAP KERNEL 4.6D_EX2 32-BIT
> do you think i can get the connection working with this combination (10g server <-> 9.x client on system 4.6C)?
Yes - it should be possible.
Does the LD_LIBRARY_PATH for <sid>adm contain the path to the 9.2 client?
Markus
hello markus,
i think i am a step further now.
i check the LD_LIBRARY_PATH and realized, that the 9.x libs were not included in that path.
so i added them.
but now i get an error 6401:
B Tue Apr 29 09:08:44 2008
B Connect to ORA10CHILI as S4Badm with ATHOS
C Connecting as S4Badm/<pwd>@ATHOS on connection 1 ...
C *** ERROR => OCI-call 'olog' failed: rc = 6401
[dboci.c 2460]
C *** ERROR => CONNECT failed with sql error '6401'
[dbsloci.c 7024]
B ***LOG BY2=> sql error 6401 performing CON [dbds 1096 ]
B ***LOG BY0=> [dbds 1096 ]
i found out, that this error means: invalid driver designator, so i think it depends on either on my dbco configuration or my
tnsnames.ora file.
in dbco i configured following:
Verbindungsname: ORA10CHILI
DBMS: ORA
Benutzername: <username>
DB-Passwort: <password>
Verb.Info ATHOS
Permanent: NO (unchecked)
my tnsnames.ora looks like this:
ATHOS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL=TCP) (HOST=<hostname>) (PORT=1522))
(CONNECT_DATA = (SID=ATHOS) (SERVER=DEDICATED))
)
is it possible, that the sap system does not find my tnsnames.ora? because when i delete the tnsnames.ora, i get the same error 6401?
i placed the tnsnames.ora under $ORACLE_HOME/network/admin
thanx a lot for your help,
tommi
Edited by: Tommi Fricker on Apr 29, 2008 9:30 AM
Edited by: Tommi Fricker on Apr 29, 2008 9:32 AM
yes, i set TNS_ADMIN.
i have following folder structure:
tnsnames.ora
/oracle/network/admin/tnsnames.ora
the 9.x client libs
/oracle/client/92x_32/
dboraslib.so
/usr/sap/S4B/SYS/exe/run/dboraslib.so
the dbsl can find the client libs:
s4b:s4badm 60> ldd dboraslib.so
libclntsh.so.9.0 => /oracle/client/92x_32/lib/libclntsh.so.9.0 (0x400b4000)
libwtc9.so => /oracle/client/92x_32/lib/libwtc9.so (0x40abc000)
libc.so.6 => /lib/libc.so.6 (0x40ac5000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40be3000)
libdl.so.2 => /lib/libdl.so.2 (0x40bf9000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40bfc000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
i have set following variables:
s4b:s4badm 73> echo $LD_LIBRARY_PATH
/usr/sap/S4B/SYS/exe/run:/oracle/client/92x_32/lib
s4b:s4badm 75> echo $ORACLE_HOME
/oracle
s4b:s4badm 76> echo $TNS_ADMIN
/oracle/network/admin
is it necessary to restart SAP, when i make changes to the environment variables?
tommi
i have set following variables:
s4b:s4badm 73> echo $LD_LIBRARY_PATH
/usr/sap/S4B/SYS/exe/run:/oracle/client/92x_32/lib
s4b:s4badm 75> echo $ORACLE_HOME
/oracle
s4b:s4badm 76> echo $TNS_ADMIN
/oracle/network/admin
All looks good to me.
is it necessary to restart SAP, when i make changes to the environment variables?
yes - because the runinng workprocesses won´t notice if you don´t
But you can try to execute sqlplus manually to check if the connection is technically working:
sqlplus /nolog
connect S4Badm/<pwd>@ATHOS
If that works the system should be able to connect to the database after a restart.
Markus
at the moment i don't have sqlplus installed.
by the way, is it necessary, that i install the complete oracle client?
all i did was installing the client libraries from the sap service marketplace (Patches/Datenbank Patches/Oracle....).
do you know if theres is a possibility to install sqlplus on a system with glibc 2.2.5 without xserver?
our system is SLES8 with glibc 2.2.5.
the only client rpm for oracle i found was 10g, but this version requires glibc 2.3 and i don't want to upgrade the glibc, cause there is other software running on the server requiring glibc 2.2.5.
the client for 9.x ist installable with the universal installer. do you know if this is possible without an xserver?
the first thing i will do is restarting the sap system this evening, to be sure, that all my changes are reloaded.
if this fails, i will try to install the oracle client.
thanks again,
tommi
> at the moment i don't have sqlplus installed.
> by the way, is it necessary, that i install the complete oracle client?
> all i did was installing the client libraries from the sap service marketplace (Patches/Datenbank Patches/Oracle....).
That's enough - it contains the full client.
> our system is SLES8 with glibc 2.2.5.
> the only client rpm for oracle i found was 10g, but this version requires glibc 2.3 and i don't want to upgrade the glibc, cause there is other software running on the server requiring glibc 2.2.5.
No, 10g requires either SLES 9 or SLES 10...
> the client for 9.x ist installable with the universal installer. do you know if this is possible without an xserver?
Nope - but you can export the DISPLAY to a system with a running Xserver...
> the first thing i will do is restarting the sap system this evening, to be sure, that all my changes are reloaded.
> if this fails, i will try to install the oracle client.
Ok - let me know!
Markus
hello markus,
hmm, unfortunately my connection still does not work
after restarting the server this morning i got an error 1019 during the first attempt:
Wed Apr 30 09:10:20 2008
B create_con (con_name=ORA10CHILI)
B Loading DB library '/usr/sap/S4B/SYS/exe/run/dboraslib.so' ...
B Library '/usr/sap/S4B/SYS/exe/run/dboraslib.so' loaded
B Version of library '/usr/sap/S4B/SYS/exe/run/dboraslib.so' is "46D.00", patchlevel (0.2186)
B New connection 2 created
B Connect to ORA10CHILI as s4badm with ATHOS
C Got ORACLE_HOME=/oracle from environment
C Connecting as s4badm/<pwd>@ATHOS on connection 1 ...
C *** ERROR => OCI-call 'olog' failed: rc = 1019
[dboci.c 2460]
C *** ERROR => CONNECT failed with sql error '1019'
[dbsloci.c 7024]
B ***LOG BY2=> sql error 1019 performing CON [dbds 1096 ]
B ***LOG BY0=> [dbds 1096 ]
after that, all following tries to connect end with an error 12154
B Wed Apr 30 09:11:04 2008
B Connect to ORA10CHILI as s4badm with ATHOS
C Connecting as s4badm/<pwd>@ATHOS on connection 1 ...
C *** ERROR => OCI-call 'olog' failed: rc = 12154
[dboci.c 2460]
C *** ERROR => CONNECT failed with sql error '12154'
[dbsloci.c 7024]
B ***LOG BY2=> sql error 12154 performing CON [dbds 1096 ]
B ***LOG BY0=> [dbds 1096 ]
i read, that error 1019 at the first attempt to connect happens often, when necessary environment variables are missing!?
but i think i have set them all:
ORACLE_HOME=/oracle
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
ORA_NLS=/oracle/client/92x_32/ocommon/nls/admin/data
TNS_ADMIN/oracle/network/admin
LD_LIBRARY_PATH includes the 9.xx libs
i guess i have to try and install the oracle client, don't know what else i can do?
tommi
Edited by: Tommi Fricker on Apr 30, 2008 10:12 AM
> ORACLE_HOME=/oracle
> NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
> ORA_NLS=/oracle/client/92x_32/ocommon/nls/admin/data
> TNS_ADMIN/oracle/network/admin
> LD_LIBRARY_PATH includes the 9.xx libs
"Usually" ORACLE_HOME is /oracle/<SID>/<version>_<BIT>
What I see is, that ORA_NLS is set. For Oracle 9 (client) this needs to be ORA_NLS33 - see note 393620 - Problems through incorrect ORA_NLS33.
Is this a typo or is there no "=" between the TNS_ADMIN and the value?
Markus
oh, some typo errors. sorry for that.
here is the correct output:
s4b:s4badm> echo $ORACLE_HOME
/oracle
s4b:s4badm> echo $ORA_NLS33
/oracle/client/92x_32/ocommon/nls/admin/data
s4b:s4badm> echo $TNS_ADMIN
/oracle/network/admin
s4b:s4badm> echo $NLS_LANG
AMERICAN_AMERICA.WE8ISO8859P1
my folder structure is like this:
/oracle
.......| network
...................| admin
.........................- tnsnames.ora
.......| client
................| 92x_32
...........................| jdbc
...........................| lib
...........................| ocommon
except the folder network, which i created myself to put the tnsnames.ora into, this structure has been created automatically when
i extracted the client database patch (OCL92032.SAR) with SAPCAR.
do i have to install additional components?
is it correct, that ORACLE_HOME points to /oracle or is it necessary to let it point to /oracle/client/92x_32 ?
thanx a lot,
tommi
Edited by: Tommi Fricker on Apr 30, 2008 11:31 AM
do i have to install additional components?
is it correct, that ORACLE_HOME points to /oracle or is it necessary to let it point to /oracle/client/92x_32 ?
everything looks good to me...
I found metalink 1025524.6 (pretty new) which describes the problem - and recommends to install a client installation of sqlplus...
If you can do that, I suggest to try it. If not, then I´d open an OSS call (BC-DB-ORA) and ask there, why it´s not working as described.
Markus
Hello,
You need to visit http://service.sap.com/patches
and then navigate to Entry by Application->Support Packages and Patches->Additional Components->SAP Kernel-><SAP KERNEL 32/64-BIT NON UNICODE/UNICODE>->SAP KERNEL X.XX 32/64-BIT NON UNICODE/UNICODE->LINUX XXX->Oracle
and look for a file called lib_dbsl_95-10004194.sar or similar number.. i think that should be it.
Regards,
siddhesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.