0

I have a problem in my application post moving to tomcat7. I am seeing the below issue when my app tries to connect to the "Oracle 11.2 DB".

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-12541: TNS:no listener
)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:458)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:466)

The connection details in the server.xml and context.xml looks like below.

  • context.xml

ResourceLink global="jdbc/ctb" name="jdbc/ctb" type="oracle.jdbc.pool.OracleDataSource"/>

  • server.xml

           <Resource name="jdbc/XXXX"
            auth="Container"
            scope="Shareable"
            type="javax.sql.DataSource"
            driverClassName="oracle.jdbc.OracleDriver"
            url="jdbc:oracle:oci8:@database"
            username="username" password="pwd"
            maxActive="30" maxIdle="3"
            removeAbandoned="true" removeAbandonedTimeout="60"
            testOnBorrow="true"
            validationQuery="select 1 from dual"
            logAbandoned="true" />
    

One observation i see is below:

The tomcat7 comes with a default jdbc driver in the "lib" folder called "tomcat-jdbc.jar". But in my app we are using spring-jdbc.jar from quite long.

Tried to remove each of them to make sure there wont be any conflict in the classes, but it never helped me.

tomcat6 workes fine with the same "context.xml" and "server.xml" and spring-jdbc.jar.

your help will be highly appreciated as this has become a blocker for our tomcat7 migration. Let me know if you need any further details.

==Benki

Sirko
  • 72,589
  • 19
  • 149
  • 183

1 Answers1

0

Oh Ghosh, pinned down the issue.

The setenv.sh script created never had the "ORACLE_HOME" path set for it which created in the above error. Also as i was using the init script was starting and stopping the tomcat, which loaded only the basic ENV variable required and set by setenv.sh script.

Everything is working fine now.