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.