Hello,
I am trying to run the tomcat as NT Service, but does not seem to work with
OCI, if I run the same tomcat instance not as a service but via startup.bat,
the OCI JDBC driver works fine.
Can anybody help me locate how to fix the service installation script to
avoid the exception.
Local setup followed -
1) I have installed tomcat 5.5.25.
2) Installed oracle client installation to use JDBC OCI Driver.
a) Installed the oracle client installation at location -
C:\oracle\product\10.2.0\client_1
b) PATH is updated to reflect the above location for the dlls.
c) copied the ojdbc14.ar to the %CATALINA_HOME%/commo/lib/ folder.
3) the context.xml has the OCI URL properly -
<Resource name="jdbc/provider" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:oci:@//<IP>:1521/orcl"
username="UN" password="PWD" maxActive="20" maxIdle="10"
maxWait="-1"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"
/>
If i run the %CATALINA_HOME%/bin/startup.bat - the application works fine and
the JDBC code excutes properly.
To install the tomcat as a service I ran the following script -
NOTE - We did specify the -Djava.library.path in the script.
_____________________________________________________________________________
SET CATALINA_HOME=C:\tools\apache-tomcat-5.5.25
SET CATALINA_BASE=C:\tools\apache-tomcat-5.5.25
@echo off
echo CATALINA_HOME: %CATALINA_HOME%
echo CATALINA_BASE: %CATALINA_BASE%
echo JAVA_HOME: %JAVA_HOME%
pause
set BASEDIR=%CATALINA_HOME%
call "%CATALINA_HOME%\bin\setclasspath.bat"
set args=%args% --Description=TOMCAT1
set args=%args% --DisplayName=TOMCAT1
set args=%args% --Startup=auto
set args=%args% --LogPath=%CATALINA_BASE%\logs
set args=%args% --LogLevel=DEBUG
set args=%args% --StdError=%CATALINA_BASE%\logs\tomcat1_err.log
set args=%args% --StdOutput=%CATALINA_BASE%\logs\tomcat1_out.log
set args=%args% --Classpath="%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar"
set args=%args% --JavaHome=%JAVA_HOME%
set args=%args% --Jvm=%JAVA_HOME%\jre\bin\server\jvm.dll
set args=%args%
--JvmOptions="-Xms128m;-Xmx512m;-Djava.library.path=C:\oracle\product\10.2.0\client_1;-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed"
set args=%args% --StartMode=jvm
set args=%args% --StartClass=org.apache.catalina.startup.Bootstrap
set args=%args% --StartParams=start
rem set args=%args% --StartImage=%CATALINA_HOME%\bin\tomcat5.exe
rem set args=%args% --StartPath=%CATALINA_HOME%\bin;
set args=%args% --StopMode=jvm
set args=%args% --StopClass=org.apache.catalina.startup.Bootstrap
set args=%args% --StopParams=stop
rem set args=%args% --StopImage=%CATALINA_HOME%\bin\tomcat5.exe
rem set args=%args% --StopPath=%CATALINA_HOME%\bin
%CATALINA_HOME%\bin\tomcat5.exe //IS//TomcatTest %args%
set args=
set BASEDIR=
_____________________________________________________________________________
Now when we run the service and start the application - we get the following
exception -
java.lang.UnsatisfiedLinkError:
C:\oracle\product\10.2.0\client_1\ocijdbc10.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at oracle.jdbc.driver.T2CConnection$1.run(T2CConnection.java:3135)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.jdbc.driver.T2CConnection.loadNativeLibrary(T2CConnection.java:3131)
at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:221)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:132)
at
oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:78)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at
org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at
org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
<<snipped>>
Can anybody please help me locate how to fix the service installation script
to avoid the exception. I am assuming since the regular command prompt way of
starting tomcat works fine with the driver, its the service installation script
which is missing something.
Thanks,
Rumpa Giri
---------------------------------
Be a better pen pal. Text or chat with friends inside Yahoo! Mail. See how.