Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Are you <strong>very</strong>, <strong>very</strong> sure that you've set the TX to serializable? Because that should never happen on a serializable transaction. </p> <p>If two TX read and modify the same row in a serializable transaction, then oracle throws an <a href="http://ora-08177.ora-code.com/" rel="nofollow">ORA-08177</a>.</p> <p>Please check that hibernate is actually setting the TX as serializable.</p> <h3>Edit</h3> <p>You can do what Jonas suggested or you can also check it from you application by getting the underlying connection and invoking Connection.getIsolationLevel(). For example</p> <pre><code>Connection c = session.connection() int level = c.getIsolationLevel() </code></pre> <h3>Edit 2</h3> <p>Ok, since you confirmed that the isolation level on the Connection is SERIALILIZABLE, could you check:</p> <ul> <li>That the tables are using the innoDB engine.</li> <li>As Jonas suggested, run <code>SELECT @@tx_isolation;</code> from your code while it is in the transaction. It should return <em>SERIALIZABLE</em>. This is to check that the Connection is actually propagating the isolation level. It's a bit paranoid, but what to do...</li> <li>Check that your code only opens one transaction, and runs everything in that TX. I just tested the SERIALIZABLE isolation level manually and it works as expected (it blocks any TX trying to read the same row).</li> <li>Last resort: check that the isolation level SERIALIZABLE works on your MySQL installation.</li> </ul> <p><strong>NOTE</strong>: As I mentioned before, MySQL will block any queries trying to read from the same row. That means that if you have some "common tables" such as country, company, user, etc. that many TXs read concurrently, it might make your app run almost sequencially rather than parallelly.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload