<html><head></head><body><div>Hi,</div><div><br></div><div>In my custom RealmResourceProviderFactory, I do roughly the following:</div><div><br></div><pre>&nbsp; &nbsp; @Override</pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;public void postInit(KeycloakSessionFactory factory) {</pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KeycloakModelUtils.runJobInTransaction(factory, (KeycloakSession session) -&gt; {</pre><pre>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List&lt;RealmModel&gt; realms = session.realms().getRealms();</pre><pre>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...</pre><pre><span class="Apple-tab-span" style="white-space:pre">        </span>});</pre><pre>&nbsp; &nbsp; });</pre><pre><br></pre><div>Full code here:&nbsp;<a href="https://github.com/dteleguin/custom-admin-roles">https://github.com/dteleguin/custom-admin-roles</a></div><div><br></div><div>Everything worked fine with 2.1.x, but after upgrade to 2.2.x startup fails in roughly about 50% cases:</div><div><br></div><pre>Caused by: java.sql.SQLException: IJ031017: You cannot set autocommit during a managed transaction</pre><pre><span class="Apple-tab-span" style="white-space:pre">        </span>at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.setJdbcAutoCommit(BaseWrapperManagedConnection.java:994)</pre><pre><span class="Apple-tab-span" style="white-space:pre">        </span>at org.jboss.jca.adapters.jdbc.WrappedConnection.setAutoCommit(WrappedConnection.java:787)</pre><pre><span class="Apple-tab-span" style="white-space:pre">        </span>at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.begin(AbstractLogicalConnectionImplementor.java:67)</pre><pre><span class="Apple-tab-span" style="white-space:pre">        </span>at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:238)</pre><pre><span class="Apple-tab-span" style="white-space:pre">        </span>at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:214)</pre><pre><span class="Apple-tab-span" style="white-space:pre">        </span>at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:52)</pre><pre><span class="Apple-tab-span" style="white-space:pre">        </span>at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1512)</pre><pre><span class="Apple-tab-span" style="white-space:pre">        </span>at org.hibernate.jpa.internal.TransactionImpl.begin(TransactionImpl.java:45)</pre><pre><br></pre><div>Full stacktrace here:&nbsp;<a href="http://pastebin.com/ETtPqXQk">http://pastebin.com/ETtPqXQk</a></div><div><br></div><div>In the other half of cases, everything goes fine just like before, so it's a kind of heisenbug. Any ideas? Could it be some concurrency issue when my code is executed in parallel with some other DB-related code? could it be JTA related?</div><div><br></div><div>Dmitry</div></body></html>