[keycloak-user] IJ031070: Transaction cannot proceed: STATUS_MARKED_ROLLBACK during Custom User Federation

Sachin Rastogi sr.misc at gmail.com
Fri Apr 13 09:35:51 EDT 2018


Thanks Marek for your pointer.

I found that I have use xa-data-source. Also, it would be helpful if we can
pure JPA example (without EJB). I'm struggling to populate EntityManager in
the UserStorageProvider Impl. It says,

Caused by: javax.persistence.PersistenceException: No Persistence provider
for EntityManager named user-storage-jpa-example1
        at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
        at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
        at
org.keycloak.examples.storage.user.EjbExampleUserStorageProvider.<init>(EjbExampleUserStorageProvider.java:67)
        at
org.keycloak.examples.storage.user.EjbExampleUserStorageProviderFactory.create(EjbExampleUserStorageProviderFactory.java:23)

We do have META-INF/persistence.xml and

<?xml version="1.0" encoding="UTF-8" ?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="user-storage-jpa-example1" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>java:jboss/datasources/ExampleXADS</jta-data-source>
<class>org.keycloak.examples.storage.user.UserEntity</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.dialect"
value="org.hibernate.dialect.PostgreSQL92Dialect"/>
<property name="hibernate.connection.driver_class"
value="org.postgresql.Driver"/>
<property name="hibernate.connection.username" value="xxxxx"/>
<property name="hibernate.connection.password" value="xxxxx"/>
</properties>
</persistence-unit>
</persistence>

We are looking for EntityManagerFactory using
Persistence.createEntityManagerFactory("user-storage-jpa-example1");

Please advise.

Best regards,
Sachin


On Mon, Apr 9, 2018 at 9:20 PM, Marek Posolda <mposolda at redhat.com> wrote:

> We have an example for JPA user Provider and also quickstart. I suggest to
> take a look at quickstart or example and compare why it works and yours
> doesn't .
>
> Marek
>
> Dne 5.4.2018 v 18:18 Sachin Rastogi napsal(a):
>
>> Hi all,
>>
>> We are using Keycloak 3.4.3 and loading users via Custom User Federation
>> from the database. We are using Postgres 9.4.12
>>
>> When we are loading users from the database during
>> CustomUserStorageProviderFactory.create(..),
>> we are getting the following exception:-
>>
>> It is throwing the following exception during con.createStatement();
>>
>> 13:46:43,385 ERROR [stderr] (default task-8) java.sql.SQLException:
>> IJ031070: Transaction cannot proceed: STATUS_MARKED_ROLLBACK
>> 13:46:43,385 ERROR [stderr] (default task-8)    at
>> org.jboss.jca.adapters.jdbc.WrapperDataSource.checkTransacti
>> onActive(WrapperDataSource.java:245)
>> 13:46:43,386 ERROR [stderr] (default task-8)    at
>> org.jboss.jca.adapters.jdbc.WrappedConnection.checkTransacti
>> onActive(WrappedConnection.java:1928)
>> 13:46:43,386 ERROR [stderr] (default task-8)    at
>> org.jboss.jca.adapters.jdbc.WrappedConnection.checkStatus(Wr
>> appedConnection.java:1943)
>> 13:46:43,386 ERROR [stderr] (default task-8)    at
>> org.jboss.jca.adapters.jdbc.WrappedConnection.checkTransacti
>> on(WrappedConnection.java:1917)
>> 13:46:43,387 ERROR [stderr] (default task-8)    at
>> org.jboss.jca.adapters.jdbc.WrappedConnection.createStatemen
>> t(WrappedConnection.java:340)
>> 13:46:43,387 ERROR [stderr] (default task-8)    at
>> com.test.service.UserServiceImpl.loadExistingUsers(UserServi
>> ceImpl.java:98)
>> 13:46:43,387 ERROR [stderr] (default task-8)    at com.test.Custom
>> UserStorageProviderFactory.create(CustomUserStorageProviderF
>> actory.java:43)
>>
>> But if we call loadExistingUsers in init method of
>> CustomUserStorageProviderFactory,
>> it works fine. Please advise, what are we doing wrong? what is the ideal
>> way of loading existing users in Custom User Federation?
>>
>> Regards,
>> SR
>> _______________________________________________
>> keycloak-user mailing list
>> keycloak-user at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/keycloak-user
>>
>
>
>


More information about the keycloak-user mailing list