[keycloak-user] Trying to use JTA transactions for JPA causes errors

Bill Burke bburke at redhat.com
Fri Mar 14 09:11:22 EDT 2014


And, there is no container to manage the transactions anyways!  Nothing 
runs in an EJB container.  I thought you could use a JTA datasource 
without a container to manage them.  That the datasource would just be a 
regular datasource if there was no active transaction., guess I was wrong...

FYI, you don't need a TM anyways as there is only one "transactional" 
resource and we manage the sessions via a filter.

On 3/14/2014 4:53 AM, Stian Thorgersen wrote:
> Keycloak has been designed to work in multiple environments, not just JavaEE. That's why container managed transactions are not used. JTA transactions are not required either as there's a single database, hence no need for distributed transactions.
>
> Can you provide me with some more information about the errors you are seeing? Including the server log, persistence.xml, etc. It should work perfectly well with resource local transactions.
>
> If you have a real requirement for using JTA a data-source we can certainly look into supporting that.
>
> ----- Original Message -----
>> From: "Dean Peterson" <peterson.dean at gmail.com>
>> To: keycloak-user at lists.jboss.org
>> Sent: Thursday, 13 March, 2014 6:40:23 PM
>> Subject: [keycloak-user] Trying to use JTA transactions for JPA causes errors
>>
>> I get transaction rollback errors frequently. Every time I leave the
>> application idle for a few minutes and come back, the system has transaction
>> errors. I have to refresh multiple times for the keycloak admun-ui to start
>> responding again. I realized my settings were using local database
>> transactions and that does not work well. I am using JBOSS and J2EE so I
>> definitely want to use the container managed transactions. I switched the
>> settings in my management console and changed my persistence.xml to this:
>>
>> <persistence 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_1_0.xsd "
>> version="1.0">
>> <persistence-unit name="jpa-keycloak-identity-store" transaction-type="JTA">
>> <jta-data-source>java:jboss/datasources/ui_users</jta-data-source>
>> <class>org.keycloak.models.jpa.entities.ApplicationEntity</class>
>> <class>org.keycloak.models.jpa.entities.CredentialEntity</class>
>> <class>org.keycloak.models.jpa.entities.OAuthClientEntity</class>
>> <class>org.keycloak.models.jpa.entities.RealmEntity</class>
>> <class>org.keycloak.models.jpa.entities.RequiredCredentialEntity</class>
>> <class>org.keycloak.models.jpa.entities.ApplicationRoleEntity</class>
>> <class>org.keycloak.models.jpa.entities.RealmRoleEntity</class>
>> <class>org.keycloak.models.jpa.entities.SocialLinkEntity</class>
>> <class>org.keycloak.models.jpa.entities.UserEntity</class>
>> <class>org.keycloak.models.jpa.entities.UserRoleMappingEntity</class>
>> <class>org.keycloak.models.jpa.entities.ScopeMappingEntity</class>
>>
>> <exclude-unlisted-classes>true</exclude-unlisted-classes>
>>
>> <properties>
>> <property name="hibernate.dialect"
>> value="org.hibernate.dialect.SQLServer2008Dialect"/>
>> <property name="hibernate.hbm2ddl.auto" value="update"/>
>> </properties>
>> </persistence-unit>
>> </persistence>
>>
>>
>>
>>
>>
>> Now when I start the server I get the following error:
>>
>> java.lang.NullPointerException
>> at
>> org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.getStatus(JtaStatusHelper.java:76)
>> at
>> .
>> .
>> .
>> org.keycloak.models.jpa.JpaKeycloakSessionFactory.createSession(JpaKeycloakSessionFactory.java:21)
>> at
>> .
>> .
>> .
>> jboss.undertow.deployment.default-server.default-host./auth: Failed to start
>> service
>> Caused by: java.lang.RuntimeException: Failed to construct public
>> org.keycloak.server.KeycloakServerApplication(javax.servlet.ServletContext)
>> throws java.io.FileNotFoundException
>>
>> Any ideas why this is happening?
>>
>> Thanks,
>>
>> Dean Peterson
>>
>> _______________________________________________
>> keycloak-user mailing list
>> keycloak-user at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/keycloak-user
> _______________________________________________
> keycloak-user mailing list
> keycloak-user at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user
>

-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com


More information about the keycloak-user mailing list