Library question and problem on Oracle 9.2.0.1client on AIX
Date: 19 Jul 2002 02:33:05 -0700
Message-ID: <5e6168fe.0207190133.3eb3d024_at_posting.google.com>
I am trying to use a AIX application that is connecting to an Oracle Database server through the OCI on AIX provided in the Oracle 9.2.0.1 database server.
I have two problems:
[Quoted] [Quoted] 1/ The first one, is why the OCI libraries being provided as .a and
not .so?
This is true for both AIX Client 8.1.7.3 and 9.2.0.1? Basically a .a
is an
archive of a .o whith added entry points. If I extract the .o with ar,
I can
[Quoted] then call dynamically the library normally as I would in a Linux
system.
Is this the normal policy for AIX system, how are we expected to call
dynamically the library wihout have to link the application with all
possibles versions of the library first (in fact in the same
application we are calling dynimacally either the Oracle OCI or DB2
client or Sybase ct/lib.
[Quoted] [Quoted] 2/ On AIX with the follwing sample c program, I get an SIGILL signal
error
at the end of the program after the end (long after the main) in the
__exit
when the deallocation of resources are done. I reduced it to a sample
test
case program to isolate the problem. Any idea of what is wrong,
something I
should do and I don't ?
The server titanium is a 8.0.5 (but this is repeatable on any Oracle DBMS) and can be called OK from the AIX 5 9.2.0.1 client.
#include <dlfcn.h>
int main()
{
void *hDll;
void *pfnorlon, *pfnologof, *pfnocof;
char ociLda [1024];
char ociHda [256];
int rc;
hDll = dlopen("libclntsh.o", RTLD_NOW);
pfnorlon = dlsym(hDll, "orlon");
pfnologof = dlsym(hDll, "ologof");
pfnocof = dlsym(hDll, "ocof");
/* Connection */
rc = ((int (*)(char*, char*, char*, int, void*, int,
int))pfnorlon)(ociLda, ociHda,
"system/manager_at_titanium", -1, 0, -1, 0);
rc = ((int (*) (char*))pfnologof)(ociLda);
dlclose(hDll);
}
Any ideas ? Received on Fri Jul 19 2002 - 11:33:05 CEST