We were able to push the max parallel user to 50 without having the problem of findByUserName not returning results.
We achieved this by increasing the max number of connections for the pool of the datasource we are using.
This is somewhat odd to me. I understand, that you can not have more than one active transaction per connection. But on the other hand, the CMP Engine should isolate this if running in optimistic locking mode, because then it is not necessary to obtain a row lock, would mean it is not necessary to associate a (java side)transaction to a connection until the (java side)transaction is committed. After that, if the container finds out, that data has changed, it would get a connection and a (db side)transaction to verify that it didn't have stale data in an optimistic locking sense and write back the changes.
Btw. we have <sync-on-commit-only>true</>
So what could be a reason for that behaviour? Any guess?
Thanks in advance, Mika