I am using VJDBC 1.6.5 with an Oracle 10g database and I have some « broken pipe » exceptions when the parameter connection pooling is enabled.
VJDBC is running as a RMI server on RedHat 5 and JDK 1.6. The database is Oracle 10g on another server.
The configuration file is:
<vjdbc-configuration>
<rmi objectName="VJdbc" port="2000" createRegistry="true"/>
<occt checkingPeriod="120s" timeout="5m"/>
<connection
id="dev-dev"
driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@//dbmsserver:1639/DEV"
user="USER1"
password="user1"
rowPacketSize="100"
compressionMode="bestcompression"
compressionThreshold="2000"
connectionPooling="on">
</connection>
</vjdbc-configuration>
And the error message is:
WARNING: Unexpected invocation target exception: java.sql.SQLException: Io exception: Broken pipe
java.sql.SQLException: Io exception: Broken pipe
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:255)
at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:578)
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1189)
at org.apache.commons.dbcp.DelegatingConnection.rollback(DelegatingConnection.java:265)
at org.apache.commons.dbcp.PoolingDriver$PoolGuardConnectionWrapper.rollback(PoolingDriver.java:348)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at de.simplicit.vjdbc.command.ReflectiveCommand.execute(ReflectiveCommand.java:66)
at de.simplicit.vjdbc.server.command.ConnectionEntry.executeCommand(ConnectionEntry.java:161)
at de.simplicit.vjdbc.server.command.CommandProcessor.process(CommandProcessor.java:158)
at de.simplicit.vjdbc.server.rmi.CommandSinkRmiImpl.process(CommandSinkRmiImpl.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
When I disabled the connection pool, I don’t experience any exceptions.