cancel
Showing results for 
Search instead for 
Did you mean: 

DBCO Configuration / DBSL / dboraslib.so

Former Member
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

fidel_vales
Employee
Employee
0 Kudos

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

Former Member
0 Kudos

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

markus_doehr2
Active Contributor
0 Kudos

dboraslib.so of version 9 don´t use the instantclient, they use the 9.2.x.x libraries.

If you want to use the instantclient, you need to install the dboraslib.so from the corresponding _EXT or _EX2 kernel series...

Markus

Former Member
0 Kudos

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?

markus_doehr2
Active Contributor
0 Kudos

ORA-01019 is "unable to allocate memory in the user side" which can be a follow up error of a user/password problem.

Did you create the OPS$-user on the database the system is trying to connect?

Markus

Former Member
0 Kudos

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

markus_doehr2
Active Contributor
0 Kudos

Yes - this should work (see also note 339092 - DB MultiConnect with Oracle as secondary database).

If you try to connect and you see an error in the syslog, what do you see in the corresponding workprocess trace?

Markus

Former Member
0 Kudos

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

markus_doehr2
Active Contributor
0 Kudos

Just to get the ends together:

- your actual system is running with kernel 4.6D (so must be 4.6c or lower)

- you try to connect with the Oracle 9.2 client to the external 10g database

right?

Markus

Former Member
0 Kudos

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

markus_doehr2
Active Contributor
0 Kudos

> 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

Former Member
0 Kudos

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

markus_doehr2
Active Contributor
0 Kudos

Do you have in your enviornment TNS_ADMIN set? If yes, to where does it point?

Markus

Former Member
0 Kudos

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

markus_doehr2
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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

markus_doehr2
Active Contributor
0 Kudos

> 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

Former Member
0 Kudos

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

markus_doehr2
Active Contributor
0 Kudos

> 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

Former Member
0 Kudos

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

markus_doehr2
Active Contributor
0 Kudos

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

Former Member
0 Kudos

Yippee! it finally works!

i deleted all my changes and started to configure the connection from the beginning.

actually, i did not do anything different, but now i can connect without any problems!

many thanks to you markus for your great help!

tommi

markus_doehr2
Active Contributor
0 Kudos

> Yippee! it finally works!

Great to hear it works finally - took long enough! )

Markus

Answers (1)

Answers (1)

former_member185954
Active Contributor
0 Kudos

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