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]



Reply via email to