The AllegroGraph DBMS ( is a high-performance graph DBMS. As of release 6.5.0 it supports XA with Atomikos.

ExtremeTransactions 5.0 or higher supports JTA/XA operations in AllegoGraph in a way similar to JDBC or JMS: use our adapter so you don't have to bother about doing low-level XA enlist/delist operations. We do this for you, behind the scenes.

Configuring your AGRepository instance to work with Atomikos

Just like we have our own datasource bean (for JDBC) or connection factory (for JMS), we offer a "repository" class for JTA/XA with AllegroGraph.

import com.atomikos.allegrograph.AtomikosRepository;
import org.eclipse.rdf4j.repository.RepositoryConnection;
import com.atomikos.icatch.jta.UserTransactionManager;
AGRepository allegroGraphRepository = ... //your normal AllegroGraph setup
AtomikosRepository atomikosRepository = AtomikosRepository.createAtomikosRepository(allegroGraphRepository);

Any transactional methods of interface org.eclipse.rdf4j.repository.RepositoryConnection will now use XA:
UserTransactionManager utm = new UserTransactionManager();
RepositoryConnection connection = atomikosRepository.getConnection();
connection.add(...); //will trigger JTA/XA enlist in the current transaction

Using Spring's @Transactional annotation

Instead of calling begin() and commit() on the UserTransactionManager, you can also use Spring's @Transactional annotation. That also works.


  • Currently we only support standard API methods of the RDF4J API for the JTA/XA enlist.

Contact Us

Atomikos Corporate Headquarters
Hoveniersstraat, 39/1, 2800
Mechelen, Belgium

T +3215613055

Subscribe to our newsletter

Never miss an update

Copyright 2020 Atomikos BVBA | Our Privacy Policy
By using this site you agree to our cookies. More info. That's Fine