Hi Take,
Take Ringena wrote:
Hello,
we are just migrating our application from OJB 0.7 to OJB 1.0.1. We are using DB2 7.2 on an OS/2 system under JDK 1.3.1. Our JDBC driver is restricted to JDBC 1.0 API. Therefore, we have configured JDBC 1.0 access in our repository_database.xml:
<jdbc-connection-descriptor jcd-alias ="test" default-connection="true" platform="Db2" jdbc-level="1.0" driver="COM.ibm.db2.jdbc.app.DB2Driver" protocol="jdbc" subprotocol="db2" dbalias="test" username="test" password="test" useAutoCommit="1" ignoreAutoCommitExceptions="false"> </jdbc-connection-descriptor>
When accessing the DB, we observe that OJB uses the getBigDecimal(String)-method on the ResultSet interface, which is JDBC 2.0 (JDK 1.2) API. The result is an AbstractMethodError, see the stack trace below. How can we avoid this problem?
OJB use a code-switcher for JDK 1.2/1.3 and JDBC3.0, but AFAIK we (no longer?) don't take care for JDBC1.0 driver (we support 1.0 behavior for JDBC2.0 driver if they don't support 2.0 features).
Think you have to patch class
org.apache.ojb.broker.util.JdbcTypesHelper
This class encapsulates the read operations on ResultSet/CallableStatement.
In the org.apache.ojb.broker.platforms.PlatformXYZImpl you can find the write operations on JDBC Statement, maybe you have to patch default implementation class and DB2 class too.
regards, Armin
Thanks, Take
java.lang.AbstractMethodError:
COM.ibm.db2.jdbc.app.DB2ResultSet.getBigDecimal(Ljava/lang/String;)Ljava/math/BigDecimal;
at
org.apache.ojb.broker.util.JdbcTypesHelper$T_Decimal.readValueFromResultSet(JdbcTypesHelper.java:477)
at
org.apache.ojb.broker.util.JdbcTypesHelper$BaseType.getObjectFromColumn(JdbcTypesHelper.java:302)
at
org.apache.ojb.broker.util.JdbcTypesHelper$BaseType.getObjectFromColumn(JdbcTypesHelper.java:281)
at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readValuesFrom(RowReaderDefaultImpl.java:201)
at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readPkValuesFrom(RowReaderDefaultImpl.java:186)
at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterator.java:421)
at
org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:265)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(PersistenceBrokerImpl.java:1462)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(DelegatingPersistenceBroker.java:307)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
