I'm porting an application consisting entirely of JMX Mbeans and MDB from Mysql to Oracle. Stuff works fine in MySql. When I move it to Oracle, I run into major delays in portions of the code. I appears that some Message Driven bean invocation appear to hang onto locks for anywhere from 30s to 2mn. AFter that the locks are released and everything is fine. There are no errors and no data problem, just that the locks where there. Of course, these locks sometime caused other MDB to hang while the lock is released. I assume the fact that the database still shows the locks means the transactions were not commited. But why would the commit be delayed between 30s-120s? Why only 10-20% of the MDB even have a delay.
Happens with Oracle 9i and 9iR2, with the 9i and 9iR2 JDBC drivers. I'm using JBoss 3.0.0 Of course, I know the MySql version I was using has no transaction support in the first place (basically as if autocommit is true) so the problems may have existed from before.
Currently the MDB are set with container managed transactions.
The JDBC access is coded basically directly (no use of CMP or anything else). I just open and close transaction obtained through a DataSource.
Anyone seen this? Any recommendations? Any clue as to why the commit would not happen just after my MDB onMessage() method returns.