Question Unable to load shared library (14945)

Aleksey Krivenya

New Member
Hello,

this is my first try to create a dataserver for oracle database and I need help with the error message below

I connected empty progress db in Data Dictionary and now I am trying to create a dataserver for oracle db
DataServer - ORACLE Utilities -> Create DataServer Schema...

┌────────────────────── Error ──────────────────────┐
│ Could not connect to "xe" as user "system@amk65" │
│ Unable to load shared library (14945) │
│ ───────────────────────────────────────────────── │
│ <OK> │
└───────────────────────────────────────────────────┘


( DataServer - ORACLE Utilities -> Run ORACLE SQL*Plus... successfully connects me to my oracle xe database with its creds )

The only article about this error number (000130927) tells us about different bit-level, but all my systems x64.

---
OE:
openSUSE Tumbleweed x86_64

OpenEdge Release 11.7.4

Oracle client 11.2
Client Shared Library 64-bit - 11.2.0.4.0

export ORACLE_HOME=/opt/oracle/instantclient_11_2
export PATH=/opt/oracle/instantclient_11_2:$PATH
export LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2:$LD_LIBRARY_PATH

ORA:
the same host - docker image: martinsthiago/oraclexe-11g-fig
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

"amk65" - is TNS name in /opt/oracle/instantclient_11_2/network/admin/tnsnames.ora


Could you help me with this?

Thanks,
Aleksey
 
Last edited:

Aleksey Krivenya

New Member
Tried to connect through a broker
Code:
 -DataService orabroker1 -Dsrv svub,1  -N tcp  -H localhost  -S 5162

pro:
┌───────────────────────────────── Error ──────────────────────────────────┐
│ Could not connect to "orald" as user "system/oracle@amk65" │
│ ORACLE error -1012 see "ORACLE Error Messages and Codes Manual". (1252) │
│ ──────────────────────────────────────────────────────────────────────── │
│ <OK> │
└──────────────────────────────────────────────────────────────────────────┘


article "Oracle error 1012 connecting to Oracle when ORACLE_SID is defined but Instance is remote" (000139500) doesn't help

orabroker1:
Code:
[23/05/02@16:10:51.353+0300] P-012601 T-L-4445 3 UB Basic      Recieved connection:: (8125)
[23/05/02@16:10:51.353+0300] P-012601 T-C-0001 2 UB Basic      ConnectionID= 192.168.29.65::orabroker1::4445::e3956e844102a415:-347d1624:187dc8fca43:-7fab. (8096)
[23/05/02@16:10:51.354+0300] P-012601 T-C-0001 2 UB Basic      Client connected : 192.168.29.65. (8533)
[23/05/02@16:10:51.354+0300] P-012601 T-C-0001 3 UB Basic      Started server for this client with args (-m1 orald). (8099)
[23/05/02@16:10:51.354+0300] P-012601 T-S-0004 2 UB Basic      Started server thread: S-0004. (8101)
[23/05/02@16:10:51.360+0300] P-012601 T-S-0004 2 UB Basic      Started server: /usr/dlc-11.7.4/bin/_orasrv -svub -S X -N TCP -U X -P X -hs 0 -s 40 -m1 orald -ipver IPv4 -dsminport 1025 -dsmaxport 2000 (8108)
[23/05/02@16:10:51.657+0300] P-012601 T-S-0004 2 UB Basic      Server Port = 1028 PID = 15909. (8114)
[23/05/02@16:10:51.658+0300] P-012601 T-C-0001 3 UB Basic      Enqueued request UBRQ_CONNECT issued to S-0004 requestID= <none>
[23/05/02@16:10:51.658+0300] P-012601 T-C-0001 3 UB Basic      The client C-0001 has disconnected from the broker. (8084)
[23/05/02@16:10:51.658+0300] P-012601 T-C-0001 2 UB Basic      Client disconnected : 192.168.29.65. (8534)
[23/05/02@16:10:54.665+0300] P-012601 T-S-0004 1 UB ----------- Posted EAbnormalShutdownServerEvent for PID: 15909
[23/05/02@16:10:54.667+0300] P-012601 T-S-0004 3 UB Basic      Ending serverPool thread: S-0004. (8077)

dataserv.lg - Unable to load shared library (14945):
Code:
[23/05/02@16:10:51.655+0300] P-015907 T-1494207360 1 ORA    -- Parent pid = 15907 child is 15909
[23/05/02@16:10:51.655+0300] P-015909 T-1494207360 1 ORA    -- Child pid = 15909
[23/05/02@16:10:51.655+0300] P-015909 T-1494207360 1 ORA    -- Remote ORACLE server begin. (1897)
[23/05/02@16:10:51.655+0300] P-015909 T-1494207360 1 ORA    -- Executable was compiled on Oct  5 2018 at 18:47:41 (5067)
[23/05/02@16:10:51.655+0300] P-015909 T-1494207360 1 ORA    -- Login to dataserver db as user X. (2689)
[23/05/02@16:10:51.659+0300] P-015909 T-1494207360 1 ORA    -- ORASRV version 17 (6440)
[23/05/02@16:10:51.659+0300] P-015909 T-1494207360 1 ORA    -- Unable to load shared library (14945)
[23/05/02@16:10:51.659+0300] P-015909 T-1494207360 1 ORA    -- -Dsrv qt_debug: 0 (0x0 None) (6489)
[23/05/02@16:10:51.659+0300] P-015909 T-1494207360 1 ORA    --   Cursor limit: 84 (-c setting) (6490)
[23/05/02@16:10:51.659+0300] P-015909 T-1494207360 1 ORA    -- BROKER: The server could not open the foreign database. (1891)
[23/05/02@16:10:51.660+0300] P-015909 T-1494207360 1 ORA    -- Logoff from dataserver db as user oech1::232b3c333728/*****@amk65. (2690)
[23/05/02@16:10:51.660+0300] P-015909 T-1494207360 1 ORA    -- Remote ORACLE server end. (1898)
 
Last edited:

Aleksey Krivenya

New Member
I noticed, that in the example ORA_HOME presents in the dataserv.lg log - ORACLE_HOME set to '/oracle/app/oracle/product/11.1.0' (14875):

Example from the article (000139890):
Code:
Dataserv.lg shows connection and spawning of _ORASRV process but nothing else:

[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- Parent pid = 8140 child is 8141
[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- Child pid = 8141
[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- Remote ORACLE server begin. (1897)
[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- Executable was compiled on Feb 9 2012 at 19:38:10 (5067)
[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- Login to dataserver db as user X. (2689)
[YY/MM/DD@HH:MM:SS.###+0100] P-002964 T-000001 1 BROKER -- ORACLE server is spawned. (1892)
[YY/MM/DD@HH:MM:SS.###+0100] P-002964 T-000001 1 BROKER -- Server pid is 8140 (1994)
[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- ORASRV version 15 (6440)
[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- Using shared library /oracle/app/oracle/product/11.1.0/lib32/libclntsh.so (oci 8.1) (14874)
[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- ORACLE_HOME set to '/oracle/app/oracle/product/11.1.0' (14875)
[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- ORACLE_SID set to 'oracle11' (14877)
[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- OCI call OCIHandleAlloc <0>

In my sandbox ORACLE_HOME is defined in the /etc/profile and ubroker.properties - is it not enough?

Code:
export DLC=/usr/dlc-11.7.4
export ORACLE_HOME=/opt/oracle/instantclient_11_2
#export ORACLE_SID=amk65
export PATH=/opt/oracle/instantclient_11_2:$PATH
export LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2
export TNS_ADMIN=$ORACLE_HOME/network/admin
Code:
[Environment.orabroker1]
    TNS_ADMIN=/opt/oracle/instantclient_11_2/network/admin
    ORACLE_HOME=/opt/oracle/instantclient_11_2
    DSLOGDIR=/data1/work/oe11.7.4/dataserv.lg

Such record `ORA -- ORACLE_HOME set to .... ` isn't exist in my dataserv.lg - maybe this is the cause of the error about libraries?

Instead of this - Unable to load shared library (14945)
Code:
[23/05/03@16:26:48.220+0300] P-019369 T-3246717824 1 ORA    -- Executable was compiled on Oct  5 2018 at 18:47:41 (5067)
[23/05/03@16:26:48.220+0300] P-019369 T-3246717824 1 ORA    -- Login to dataserver db as user X. (2689)
[23/05/03@16:26:48.224+0300] P-019369 T-3246717824 1 ORA    -- ORASRV version 17 (6440)
[23/05/03@16:26:48.224+0300] P-019369 T-3246717824 1 ORA    -- Unable to load shared library (14945)
[23/05/03@16:26:48.225+0300] P-019369 T-3246717824 1 ORA    -- -Dsrv qt_debug: 0 (0x0 None) (6489)
[23/05/03@16:26:48.225+0300] P-019369 T-3246717824 1 ORA    --   Cursor limit: 84 (-c setting) (6490)
[23/05/03@16:26:48.225+0300] P-019369 T-3246717824 1 ORA    -- BROKER: The server could not open the foreign database. (1891)
[23/05/03@16:26:48.225+0300] P-019369 T-3246717824 1 ORA    -- Logoff from dataserver db as user system@amk65. (2690)
[23/05/03@16:26:48.225+0300] P-019369 T-3246717824 1 ORA    -- Remote ORACLE server end. (1898)


Is it necessary to define ORACLE_HOME additionally for dataserver?
 
Last edited:

Aleksey Krivenya

New Member
I think the record `ORA -- ORACLE_HOME set to .... ` is the result of using shared library, but not it's cause.

So I tried to find out if my LD_LIBRARY_PATH contains correct path to ora lib.

I've added it directly into $DLC/bin/mpro
Code:
LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH

exec $PROEXE "$@"

run OS-GETENV in mpro

Code:
DISPLAY
    OS-GETENV("LD_LIBRARY_PATH") LABEL "LD_LIBRARY_PATH"
    format "x(180)".

and got it with necessay ORA path

┌────────────────
│LD_LIBRARY_PATH
│────────────────
│/u01/app/oracle/product/11.2.0/client_1:/usr/dlc-11.7.4/jdk/jre/lib/amd64:...


But attempt to connect to my ora db still returns "Unable to load shared library (14945)"

┌───────────────────────────────── Error ──────────────────────────────────┐
│ Unable to load shared library (14945) │
│ ORACLE error -1012 see "ORACLE Error Messages and Codes Manual". (1252) │
│ ** │
│ Failed to connect to ORACLE database oracledb. (1451) │
│ ──────────────────────────────────────────────────────────────────────── │
│ <OK> │
└──────────────────────────────────────────────────────────────────────────┘


And dataserv.lg:
Code:
[23/05/05@19:20:01.592+0300] P-008004 T-3951445888 1 ORA    -- Executable was compiled on Oct  5 2018 at 18:47:41 (5067)
[23/05/05@19:20:01.592+0300] P-008004 T-3951445888 1 ORA    -- Login to dataserver db as user oech1::232b3c333728@xe65. (2689)
[23/05/05@19:20:01.592+0300] P-008004 T-3951445888 1 ORA    -- -Dsrv qt_debug: 0 (0x0 None) (6489)
[23/05/05@19:20:01.592+0300] P-008004 T-3951445888 1 ORA    --   Cursor limit: 84 (-c setting) (6490)
[23/05/05@19:20:01.592+0300] P-008004 T-3951445888 1 ORA    -- Logoff from dataserver db as user oech1::232b3c333728@xe65. (2690)


If it wasn't the example above with using libclntsh.so, I'd think that the message "Unable to load shared library (14945)" is not about ORACLE libraries

Code:
[YY/MM/DD@HH:MM:SS.###+0100] P-008140 T-000001 1 ORA -- Using shared library /oracle/app/oracle/product/11.1.0/lib32/libclntsh.so (oci 8.1) (14874)

So, please, could anyone help me with this?

PS:
Code:
# ls -l /u01/app/oracle/product/11.2.0/client_1/libclntsh.so*
lrwxrwxrwx 1 root   root         17 May  5 19:33 /u01/app/oracle/product/11.2.0/client_1/libclntsh.so -> libclntsh.so.11.1
-rw-r--r-- 1 oracle oracle 53865194 Aug 24  2013 /u01/app/oracle/product/11.2.0/client_1/libclntsh.so.11.1
 
Last edited:

Aleksey Krivenya

New Member
So, the only way I could solve my problem was to define ORASOPATHNAME variable as it is described in the Article Number 000129530
Code:
export ORASOPATHNAME=$ORACLE_HOME/libclntsh.so.11.1

Unfortunatelly, this article doesn't contain error number (14945) and google helped me too late

Despite that this var is optional.

I don't know how I could connect differently.

Didn't help:
LD_LIBRARY_PATH
ldconfig
cp libclntsh.so.11.1 /usr/lib
cp libclntsh.so.11.1 $ORACLE_HOME/lib64/
"ln -s" in any combination
full ora client
RHEL/OLES/SUSE
11/12/19 client versions

Thank you for the moral support and advises ))
 
Last edited:

Aleksey Krivenya

New Member
Hi,

all my systems are x64 (see first post)
That was the first that I checked - the first article which I found at Progress community (article 000130927)
 
Last edited:

Aleksey Krivenya

New Member
wow...

I goggled it by exact text of the error "Unable to load shared library (14945)" - this request doesn't return this article ))
But "progress error 14945" returns it at the top!

Thank for the article ... and for the expirience with requests!

PS. ORASOPATHNAME allowed me to connect to oradb but I have some problems with creating DataServer Schema - may be the reason is the usage of instant client.
 
Last edited:
Top