Apache Geronimo > Discussion Forums  User List | Dev List | Wiki | Issue Tracker  

Bad JDBC Connection with Oracle

View: New views
2 Messages — Rating Filter:   Alert me  

Bad JDBC Connection with Oracle

by Xavier Naud :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

We are having an issue with the Oracle JDBC Connection pool (Oracle 10g RAC) used with the tranql oracle adaptor 1.3 on WAS 2.0.0.2. (Geronimo 2.0.0.2-20080401)
The App server and DB server are 2 different boxes, ports 1521 (jdbc) and 6200 (ONS) are opened between those 2 servers.

The URL we use is:
>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=yes)(ADDRESS=(PROTOCOL=TCP)(HOST=165365-ora1-vip.optaros.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=165373-ora2-vip.optaros.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=AHPROD1)))

the ONS Settings:
<config-property-setting name="ONSConfiguration">nodes=165365-ora1-vip.optaros.com:6200,165373-ora2-vip.optaros.com:6200</config-property-setting>

We get the connection, we tested the fail over it works.

The rest of the tranql connector is setup as follows:
 
 ...
 <connectionmanager>
                        <local-transaction/>
                        <single-pool>
                            <max-size>100</max-size>
                            <min-size>5</min-size>
                            <blocking-timeout-milliseconds>10000</blocking-timeout-milliseconds>
                            <idle-timeout-minutes>60</idle-timeout-minutes>
                            <match-one/>
                        </single-pool>
                    </connectionmanager>

However, after a while, the pool gives us a connection but as soon as we try to use it, we get the following exception.

2008-06-23 16:46:47.733 WARN  [GeronimoConnectionEventListener] connectionErrorOccurred called with null
java.sql.SQLException: Closed Connection
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
        at oracle.jdbc.driver.PhysicalConnection.createStatement(PhysicalConnection.java:755)
        at oracle.jdbc.driver.PhysicalConnection.createStatement(PhysicalConnection.java:731)
        at oracle.jdbc.OracleConnectionWrapper.createStatement(OracleConnectionWrapper.java:87)
        at org.tranql.connector.jdbc.ConnectionHandle.createStatement(ConnectionHandle.java:201)
        at com.mckesson.accesshealth.beans.StoreClaimBean.retrieveControlValues(StoreClaimBean.java:821)
        at com.mckesson.accesshealth.payment.CheckRunAction.execute(CheckRunAction.java:154)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)


We have no clue how to reproduce the error or what the problem is.
It seems that we are getting a "bad" connection from the pool. Not sure why

Help appreciated.

Xavier


Re: Bad JDBC Connection with Oracle

by mad7777 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Sorry if this is the wrong forum, but this sounds a lot like the same issue we are having, i.e., sporadic "SQLException: Closed connection" on connections coming right out of the pool.

We are using:
Oracle 10.2.0.1.0
Tomcat 5.5.17
AIX 5.3

Impossible to reproduce, but it happens often.

Did you ever figure this out?  Could it be an issue with the Oracle driver?

Regards,
Marc

Xavier Naud wrote:
Hi,

We are having an issue with the Oracle JDBC Connection pool (Oracle 10g RAC) used with the tranql oracle adaptor 1.3 on WAS 2.0.0.2. (Geronimo 2.0.0.2-20080401)
The App server and DB server are 2 different boxes, ports 1521 (jdbc) and 6200 (ONS) are opened between those 2 servers.

The URL we use is:
>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=yes)(ADDRESS=(PROTOCOL=TCP)(HOST=165365-ora1-vip.optaros.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=165373-ora2-vip.optaros.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=AHPROD1)))

the ONS Settings:
<config-property-setting name="ONSConfiguration">nodes=165365-ora1-vip.optaros.com:6200,165373-ora2-vip.optaros.com:6200</config-property-setting>

We get the connection, we tested the fail over it works.

The rest of the tranql connector is setup as follows:
 
 ...
 <connectionmanager>
                        <local-transaction/>
                        <single-pool>
                            <max-size>100</max-size>
                            <min-size>5</min-size>
                            <blocking-timeout-milliseconds>10000</blocking-timeout-milliseconds>
                            <idle-timeout-minutes>60</idle-timeout-minutes>
                            <match-one/>
                        </single-pool>
                    </connectionmanager>

However, after a while, the pool gives us a connection but as soon as we try to use it, we get the following exception.

2008-06-23 16:46:47.733 WARN  [GeronimoConnectionEventListener] connectionErrorOccurred called with null
java.sql.SQLException: Closed Connection
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
        at oracle.jdbc.driver.PhysicalConnection.createStatement(PhysicalConnection.java:755)
        at oracle.jdbc.driver.PhysicalConnection.createStatement(PhysicalConnection.java:731)
        at oracle.jdbc.OracleConnectionWrapper.createStatement(OracleConnectionWrapper.java:87)
        at org.tranql.connector.jdbc.ConnectionHandle.createStatement(ConnectionHandle.java:201)
        at com.mckesson.accesshealth.beans.StoreClaimBean.retrieveControlValues(StoreClaimBean.java:821)
        at com.mckesson.accesshealth.payment.CheckRunAction.execute(CheckRunAction.java:154)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)


We have no clue how to reproduce the error or what the problem is.
It seems that we are getting a "bad" connection from the pool. Not sure why

Help appreciated.

Xavier
LightInTheBox - Buy quality products at wholesale price