wm jdbc oci configuration error

hello ,all
when enabling the jdbc connection, i encounted the error message below.
And I’ve read the references here and doing as guided but failed.

[ART.118.5042] Adapter Runtime (Connection): Unable to enable connection resource SinoPub:testRac.
[ART.118.5036] Adapter Runtime (Connection): Unable to configure connection manager.
/entsys/webm/oracle/9iclient/lib/libocijdbc9.sl: specified file is not a shared library, or a format error was detected.

jdbc properties:
Transaction Type LOCAL_TRANSACTION
DataSource Class oracle.jdbc.pool.OracleDataSource
serverName
user hyagent
password ******
databaseName
portNumber
networkProtocol
Other Properties url=jdbc:oracle:oci:@(DESCRIPTION=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.99.113)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.99.114)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=hyudb)(server=DEDICATED)))

IS :
version:6.1
fix:IS_6-1_SP1_Fix21
IS_6-1_SP1
IS_6-1_SP1_SCLP
IS_6-1_FP2

JVM:1.4.2.02 (48.0)
OS:HP-UX

oracle client 9
oracle database:Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production

OS env parameter:
SHLIB_PATH=/entsys/webm/oracle/9iclient/lib:/entsys/webm/oracle/9iclient/lib32
LD_LIBRARY_PATH=/entsys/webm/oracle/9iclient/lib:/entsys/webm/oracle/9iclient/lib32

oracle driver:
classes12.zip ojdbc14.jar

Any comments are highly appreciated.
Thanks in advance.

Shenjie,

When using native libraries, such as the Oracle OCI libraries, you need to make sure that they match the mode you are running the IS JVM with.

If you are running IS in 64-bit mode (look for the switch in your server.sh), then you need to use 64-bit Oracle libraries. Otherwise you need 32-bit Oracle libraries.

regards,

Jonathan Heywood
webMethods Professional Services

Thanks Jonathan .
But is there any comments in server.sh can tell if it’s 64-bit or 32-bit? Can you explain more in detail?
And the point is that in SHLIB_PATH envirnment variable , both lib and lib32 are included. So 64-bit or 32-bit still matters?

shenjie

Shenjie,

Check for the following line in server.sh:

JAVA_D64="-d64"

If that line is uncommented (as above) then you are running in 64-bit mode. If it is not present, or commented out (preceded by #) then you are running 32-bit.
(Note: This assumes Solaris or HPUX).

I suspect you are running 32-bit and have 64-bit libraries in your path. If that is the case, then trying making sure only the lib32 directories are in the relevant paths.

You may also find some information in the Advantage Knowledge bases. I see that other customers have also had similar issues and closely following the OCI configuration described in the JDBC Adapter User Guide.

Good luck.

Jonathan Heywood
webMethods Professional Services

Thanks Jonathan
But in the server.sh file, we don’t have this JAVA_D64="-d64" line.

Anyway, we changed the environment variable
SHLIB_PATH=/entsys/webm/oracle/9iclient/lib:/entsys/webm/oracle/9iclient/lib32 to
SHLIB_PATH=/entsys/webm/oracle/9iclient/lib32:/entsys/webm/oracle/9iclient/lib:
Everything works fine.
But I don’t know why. The sequence of lib and lib32 really matters?

Regards

Hi Shenjie,

another approach will be to upgrade to the 10g drivers and use thin mode instead, which does not require native libs.

Can you explain the reason why you are trying to use oci mode?
This will help us to determine if the solution with the 10g drivers and the thin mode will help you or not.

On the other side you should consider upgrading your JVM to a newer version as there are several known issues related to jdbc notications and thread handling which are solved in newer versions of the JVM.

Regarding the jars you will only need one of them dependent on the JVM-Version you use:

  • classes12.jar/classes12.zip is for JVMs 1.2.x and 1.3.x
  • ojdbc14.jar is for JVMs 1.4.x and newer.

Regards,
Holger

Thanks, Holger
Our oracle is RAC. So we have to use oci mode.
we both placed classes12.zip and ojdbc14.jar. Do you mean we only need ojdbc14.jar since the JVM version is 1.4.2.02 ?
BTW, can you explain more about upgrade to 10g driver? is this a new jdbc driver like oracle.jdbc.pool.OracleDataSource?

Best Regards
Shenjie

Hi Shenjie,

you can check details for the Oracle JDBC Drivers here (free registration required):
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
and
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq_0.htm

The Oracle 10g Drivers have some performance improvements related to 9i Drivers and they are supporting LOBs in ThinModem wich was not fully supported with the 9i Drivers.

If you are using JVM 1.4.x (this is true for the JVM Version 1.4.2_02 as well) you will only need the ojdbc14.jar.

I could not find anything on Oracle´s internet pages why Thin Driver should not be working with RAC.

Regards,
Holger