I have a problem with Tomcat and the java-library.path. (My problem isn't Oracle-specific but it is when I use Oracle that problem appears since Oracle uses the java.library.path)
What I have managed to do: Oracle JDBC with works fine if I: - put ojdbc14.jar in ${CATALINA_HOME}/common/lib - set ORACLE_HOME to the correct directory - set LD_LIBRARY_PATH (java.library.path) to include the directory with the needed .so-file However this is not exactly what I wan't to do. Instead of setting the variables in the shell I want to set them from a Java-class when it is invoked by Tomcat. So I set ORACLE_HOME to the same directory as above and include the directory with the .so-file in the LD_LIBRARY_PATH by doing this: System.out.println("JLP =" + System.getProperty("java.library.path"); System.out.println("OH =" + System.getProperty("ORACLE_HOME"); System.setProperty("ORACLE_HOME", dbHomePath); String jlp = java.lang.System.getProperty("java.library.path"); System.setProperty("java.library.path", dbLibraryPath + ":" + jlp); System.out.println("JLP2 =" + System.getProperty("java.library.path"); System.out.println("OH2 =" + System.getProperty("ORACLE_HOME"); String dsJNDIName = "java:/comp/env/jdbc/orgdbDataSource"; Context ctx = new InitialContext(); ds = (DataSource) ctx.lookup(dsJNDIName); When I print these variables they look exactly as I want them to look, just like they did when everything worked (the top of the mail "What I have managed to do"). They look like this: JLP =null OH =/appl/oracle/product/9.2.0/ JLP2 =/opt/sun-jdk-1.4.2/jre/lib/i386/client:/opt/sun-jdk-1.4.2/jre/lib/i386:/opt/sun-jdk-1.4.2/jre/../lib/i386:/appl/mqm/java/lib/:/opt/mqm/java/lib OH2 =/appl/oracle/product/9.2.0/lib/:/opt/sun-jdk-1.4.2/jre/lib/i386/client:/opt/sun-jdk-1.4.2/jre/lib/i386:/opt/sun-jdk-1.4.2/jre/../lib/i386:/appl/mqm/java/lib/:/opt/mqm/java/lib (Notice the change with /opt/sun-jdk-1.4.2/jre/lib/i386/client in the start of the path) My thinking is this (based on what I have read about the ClassLoader): http://jakarta.apache.org/tomcat/tomcat-5.0-doc/class-loader-howto.html Since the ojdbc14.jar is placed in /common/lib, the jar doesn't include my webapplication-spcific java.library.path since it is supposed to be shared by all webapplications. However, if this is the case, it is kind of strange since it is my webapplication that uses and loads ojdbc14 and NOT ojdbc14 that uses my webapplication. Therefore I think that ojdbc14 should use my java.library.path. This is the error I get by the way: java.lang.UnsatisfiedLinkError: no ocijdbc9 in java.library.path java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491) java.lang.Runtime.loadLibrary0(Runtime.java:788) java.lang.System.loadLibrary(System.java:834) oracle.jdbc.oci8.OCIDBAccess.logon(OCIDBAccess.java:262) oracle.jdbc.driver.OracleConnection.(OracleConnection.java:346) oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468) oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:82) org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:300) org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:838) org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:821) org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:518) gu.orgdb.orgobj.Database.getConnection(Database.java:148) gu.orgdb.orgobj.UserSession.getConnection(UserSession.java:245) gu.orgdb.orgobj.Database.loadOrgUnitsByType(Database.java:2243) gu.orgdb.orgobj.OrgObjectManager.viewOrgUnitsByType(OrgObjectManager.java:218) gu.orgdb.orgobj.OrgUnit.getUniversity(OrgUnit.java:264) gu.orgdb.util.ImportOrganization.doImport(ImportOrganization.java:46) gu.orgdb.web.OrgDBServlet.init(OrgDBServlet.java:72) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164) org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:805) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696) org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677) java.lang.Thread.run(Thread.java:534) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]