mkalen 2005/03/17 15:45:05
Modified: src/java/org/apache/ojb/broker/platforms Tag:
OJB_1_0_RELEASE PlatformOracle9iImpl.java
Log:
After user-report from Don Lyon: add JBoss wrapper class as known "no-no" for
tweaking Oracle-extensions.
Revision Changes Path
No revision
No revision
1.13.2.7 +28 -3
db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformOracle9iImpl.java
Index: PlatformOracle9iImpl.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformOracle9iImpl.java,v
retrieving revision 1.13.2.6
retrieving revision 1.13.2.7
diff -u -r1.13.2.6 -r1.13.2.7
--- PlatformOracle9iImpl.java 17 Mar 2005 09:40:07 -0000 1.13.2.6
+++ PlatformOracle9iImpl.java 17 Mar 2005 23:45:05 -0000 1.13.2.7
@@ -99,6 +99,10 @@
protected static final Object[] PARAM_STATEMENT_BATCH_SIZE = new
Object[]{new Integer(STATEMENTS_PER_BATCH)};
protected static final Object[] PARAM_BOOLEAN_TRUE = new
Object[]{Boolean.TRUE};
+ protected static final String JBOSS_CONN_NAME =
+ "org.jboss.resource.adapter.jdbc.WrappedConnection";
+ protected static Class JBOSS_CONN_CLASS = null;
+
protected static Class ORA_CONN_CLASS;
protected static Class ORA_PS_CLASS;
protected static Class ORA_CLOB_CLASS;
@@ -185,6 +189,18 @@
// Do all the generic initialization in PlatformDefaultImpl first
super.initializeJdbcConnection(jcd, conn);
+ // Check for managed environments known to reject Oracle extension
at this level
+ // (saves us from trying to unwrap just to catch exceptions next)
+ final Class connClass = conn.getClass();
+ if (JBOSS_CONN_CLASS != null &&
JBOSS_CONN_CLASS.isAssignableFrom(connClass))
+ {
+ if (logger.isDebugEnabled())
+ {
+ logger.debug("JBoss detected, Oracle Connection tuning left
to J2EE container.");
+ }
+ return;
+ }
+
// Check if this is a wrapped connection and if so unwrap it
final Connection oraConn = unwrapConnection(conn);
if (oraConn == null)
@@ -208,7 +224,7 @@
{
logger.debug("PlatformOracle9iImpl could not enable
Oracle statement caching."
+ " Original/unwrapped connection classes="
- + conn.getClass().getName() + "/" +
oraConn.getClass().getName());
+ + connClass.getName() + "/" +
oraConn.getClass().getName());
}
}
}
@@ -226,7 +242,7 @@
{
logger.debug("PlatformOracle9iImpl could not enable
Oracle row pre-fetching."
+ "Original/unwrapped connection classes="
- + conn.getClass().getName() + "/" +
oraConn.getClass().getName());
+ + connClass.getName() + "/" +
oraConn.getClass().getName());
}
}
}
@@ -564,6 +580,15 @@
{
// ignore (we tried...)
}
+ // Isolated checks for other connection classes (OK when not found)
+ try
+ {
+ JBOSS_CONN_CLASS = ClassHelper.getClass(JBOSS_CONN_NAME, false);
+ }
+ catch (ClassNotFoundException e)
+ {
+ // ignore (no problem)
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]