NullPointerException in oracle.jdbc.driver.T2CConnection.logon
225512May 24 2006 — edited May 25 2006Hiya,
I know little about Java, so I'm a bit lost when I get this error:
java.lang.NullPointerException
at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:325)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:347)
at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:139)
at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:79)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:549)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.somecorp.util.pool.DatabaseConnectionFactory.create(DatabaseConnectionFactory.java:62)
at com.somecorp.util.pool.Pool.create(Pool.java:348)
at com.somecorp.util.pool.Pool.retain(Pool.java:169)
at com.somecorp.util.pool.BoundedPool.retain(BoundedPool.java:137)
at com.somecorp.util.pool.DatabaseConnectionPool.retainConnection(DatabaseConnectionPool.java:68)
at com.somecorp.servlet.modservlet.db.DBModularServletContextFactory.loadContextBase(DBModularServletContextFactory.java:59)
at com.somecorp.servlet.modservlet.db.DBModularServletContextFactory.getServletContext(DBModularServletContextFactory.java:46)
at com.somecorp.servlet.modservlet.ModularServlet.init(ModularServlet.java:44)
at com.somecorp.transaction.admin.SomeSoftwareAdminServlet.init(SomeSoftwtareAdminServlet.java:33)
at javax.servlet.GenericServlet.init(GenericServlet.java:82)
at com.caucho.server.http.Application.createServlet(Application.java:3114)
at com.caucho.server.http.Application.loadServlet(Application.java:3065) at com.caucho.server.http.QServletConfig.loadServlet(QServletConfig.java:435)
at com.caucho.server.http.Application.getFilterChainServlet(Application.java:2809)
at com.caucho.server.http.Application.buildFilterChain(Application.java:2765)
at com.caucho.server.http.Invocation.service(Invocation.java:313)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:253)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:170)
at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
at java.lang.Thread.run(Thread.java:534)
This is a Java servlet, running in resin. We're using the OCI drivers, Java2 SDK 1.4.2_11, on Solaris 9 x86 -- thick client version 10.1.0.3. Our database server is a RAC cluster, which is two Sparc boxes running Solaris 9 and 10gR2. I've done this:
JAVA_SYSTEM="-J-hotspot -J-Xmx256M -J-Xss7m -J-Dfile.encoding=UTF-8 -J-Duser.language=en_US -J-Duser.country=US -J-Duser.region=US -J-Djava.library.path=$LD_LIBRARY_PATH -J-DGlobalProperties.filename=$INSTANCE_DIR/conf/global.properties.$HOSTNAME -J-DGatewayContext.host=secure.some.corp -J-DGatewayContext.port=4430 -J-DGatewayContext.merchantId=somesoftware-test -J-DGatewayContext.merchantKey=somesoftware-test-key -J-Dii.system.environment=test -J-Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol -J-Djava.library.path=${ORACLE_HOME}/lib"
JAVA_CLASSPATH=/usr/local/java/apps/resin/resin-ee-2.1.16/lib/dom.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:${ORACLE_HOME}/jdbc/lib/ojdbc14.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/ejb.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/jaxp.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/jdbc-mysql.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/jdbc2_0-stdext.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/jms.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/jmx.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/jndi.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/jta_101.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/resin-ejb.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/resin.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/sax.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/webutil.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/j2sdk1.4.2_11/lib/tools.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/j2sdk1.4.2_11/jre/lib/rt.jar
JAVA_CLASSPATH=${JAVA_CLASSPATH}:/usr/local/java/apps/resin/resin-ee-2.1.16/lib/jsdk23.jar
unset CLASSPATH
unset LD_LIBRARY_PATH
JAVA_HOME=/usr/local/java/j2sdk1.4.2_11
export JAVA_HOME
LD_LIBRARY_PATH=$JAVA_LD_LIBRARY_PATH
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib
export LD_LIBRARY_PATH
<start java>
Essentially, I set the LD_LIBRARY_PATH, make sure my user.country and user.language properties are set, include a known working version of ojdbc14.jar and everything should be happy, right? Except it's not.
Our oracle connection string is:
TDBConnectionPool.url=jdbc:oracle:oci:@someSID
TDBConnectionPool.username=someuser
TDBConnectionPool.password=somepassword
TDBConnectionPool.targetSize=8
TDBConnectionPool.maxSize=30
Has anyone else run into this issue? Is this an issue I can take up with Oracle support?