We are still using JBoss 3.2.5 and MVCSoft PM with a Oracle 8 classes12.zip driver (patched up to work with Oracle 9 servers). Now we need to upgrade to a newer Oracle JDBC driver because we have to connect to a database cluster and the Oracle8 driver doesn't understand the syntax of the connection URL needed. But with the new driver (we've tried classes12.zip and ojdbc14.jar from Oracle 9 and 10) we are experiencing strange errors and data corruption.
Changing an entitiy's attribute value results in "~-" being written to a NUMBER column and reading from that table throws exceptions like "not a number" (or similar). Also when updating or deleting entities the application is unable to find the rows and we get errors like "target of remove not found".
I've modified the MVCSoft PM code to get some debugging output and could verify that executeUpdate() frequently returns 0 rows affected even though the relevant rows are there and can be seen inside the transaction. It seems like the parameters passed to the preparedStatement get corrupted when transferred to the database.
We had a similar data corruption problem a few years back when accessing a Oracle9 database with the Orcale8 driver (that was when we patched up the Oracle8 driver). But this time the version of the driver matches the version of the database server. We can reproduce this with Oracle9 and Oracle10 (with a single database server, no cluster). With the older driver the same code runs fine.
As far as I can tell, there is only one driver in the JBoss classpath. At least, one doesn't show up in boot.log.
Has anybody else experienced such incompatibilities? I don't know where else to look.
The best thing would probably be to upgrade to a newer JBoss version and different persistence layer, but as is always the case, the project deadline has already been reached :( So any help would be greatly appreciated.