Jump To Close Expand all Collapse all Table of contents Apache Karaf Transaction Guide Preface 1. Introduction to transactions Expand section "1. Introduction to transactions" Collapse section "1. Introduction to transactions" 1.1. What is a transaction? 1.2. ACID properties of a transaction 1.3. About transaction clients 1.4. Descriptions of transaction terms 1.5. Managing transactions that modify multiple resources 1.6. Relationship between transactions and threads 1.7. About transaction service qualities Expand section "1.7. About transaction service qualities" Collapse section "1.7. About transaction service qualities" 1.7.1. Qualities of service provided by resources Expand section "1.7.1. Qualities of service provided by resources" Collapse section "1.7.1. Qualities of service provided by resources" 1.7.1.1. Transaction isolation levels 1.7.1.2. Support for the XA standard 1.7.2. Qualities of service provided by transaction managers Expand section "1.7.2. Qualities of service provided by transaction managers" Collapse section "1.7.2. Qualities of service provided by transaction managers" 1.7.2.1. Support for suspend/resume and attach/detach 1.7.2.2. Support for multiple resources 1.7.2.3. Distributed transactions 1.7.2.4. Transaction monitoring 1.7.2.5. Recovery from failure 2. Getting started with transactions on Karaf (OSGi) Expand section "2. Getting started with transactions on Karaf (OSGi)" Collapse section "2. Getting started with transactions on Karaf (OSGi)" 2.1. Prerequisites 2.2. Building the camel-jms project 2.3. Explanation of the camel-jms project 3. Interfaces for configuring and referencing transaction managers Expand section "3. Interfaces for configuring and referencing transaction managers" Collapse section "3. Interfaces for configuring and referencing transaction managers" 3.1. What transaction managers do 3.2. About local, global, and distributed transaction managers Expand section "3.2. About local, global, and distributed transaction managers" Collapse section "3.2. About local, global, and distributed transaction managers" 3.2.1. About local transaction managers 3.2.2. About global transaction managers 3.2.3. About distributed transaction managers 3.3. Using a JavaEE transaction client 3.4. Using a Spring Boot transaction client Expand section "3.4. Using a Spring Boot transaction client" Collapse section "3.4. Using a Spring Boot transaction client" 3.4.1. Using the Spring PlatformTransactionManager interface Expand section "3.4.1. Using the Spring PlatformTransactionManager interface" Collapse section "3.4.1. Using the Spring PlatformTransactionManager interface" 3.4.1.1. Definition of the PlatformTransactionManager interface 3.4.1.2. About the TransactionDefinition interface 3.4.1.3. Definition of the TransactionStatus interface 3.4.1.4. Methods defined by the PlatformTransactionManager interface 3.4.2. Steps for using the transaction manager 3.4.3. About Spring PlatformTransactionManager implementations Expand section "3.4.3. About Spring PlatformTransactionManager implementations" Collapse section "3.4.3. About Spring PlatformTransactionManager implementations" 3.4.3.1. Local PlatformTransactionManager implementations 3.4.3.2. Global PlatformTransactionManager implementation 3.5. OSGi interfaces between transaction clients and the transaction manager 4. Configuring the Narayana transaction manager Expand section "4. Configuring the Narayana transaction manager" Collapse section "4. Configuring the Narayana transaction manager" 4.1. About Narayana installation 4.2. Transaction protocols supported 4.3. About Narayana configuration 4.4. Configuring log storage 5. Using the Narayana transaction manager Expand section "5. Using the Narayana transaction manager" Collapse section "5. Using the Narayana transaction manager" 5.1. Using UserTransaction objects Expand section "5.1. Using UserTransaction objects" Collapse section "5.1. Using UserTransaction objects" 5.1.1. Definition of the UserTransaction interface 5.1.2. Description of UserTransaction methods 5.2. Using TransactionManager objects Expand section "5.2. Using TransactionManager objects" Collapse section "5.2. Using TransactionManager objects" 5.2.1. Definition of the TransactionManager interface 5.2.2. Description of TransactionManager methods 5.3. Using Transaction objects Expand section "5.3. Using Transaction objects" Collapse section "5.3. Using Transaction objects" 5.3.1. Definition of the Transaction interface 5.3.2. Description of Transaction methods 5.4. Resolving the XA enlistment problem Expand section "5.4. Resolving the XA enlistment problem" Collapse section "5.4. Resolving the XA enlistment problem" 5.4.1. How to enlist an XA resource 5.4.2. About auto-enlistment 6. Using JDBC data sources Expand section "6. Using JDBC data sources" Collapse section "6. Using JDBC data sources" 6.1. About the Connection interface 6.2. Overview of JDBC data sources Expand section "6.2. Overview of JDBC data sources" Collapse section "6.2. Overview of JDBC data sources" 6.2.1. Database specific and generic data sources 6.2.2. Some generic data sources 6.2.3. Pattern to use 6.3. Configuring JDBC data sources 6.4. Using the OSGi JDBC service Expand section "6.4. Using the OSGi JDBC service" Collapse section "6.4. Using the OSGi JDBC service" 6.4.1. PAX-JDBC configuration service 6.4.2. Summary of handled properties 6.4.3. How the pax-jdb-config bundle handles properties 6.5. Using JDBC console commands 6.6. Using encrypted configuration values 6.7. Using JDBC connection pools Expand section "6.7. Using JDBC connection pools" Collapse section "6.7. Using JDBC connection pools" 6.7.1. Introduction to using JDBC connection pools 6.7.2. Using the dbcp2 connection pool module Expand section "6.7.2. Using the dbcp2 connection pool module" Collapse section "6.7.2. Using the dbcp2 connection pool module" 6.7.2.1. Configuration properties for BasicDataSource 6.7.2.2. Example of how to configure DBCP2 pool 6.7.3. Using the narayana connection pool module 6.7.4. Using the transx connection pool module 6.8. Deploying data sources as artifacts Expand section "6.8. Deploying data sources as artifacts" Collapse section "6.8. Deploying data sources as artifacts" 6.8.1. Manual deployment of data sources 6.8.2. Factory deployment of data sources 6.8.3. Mixed deployment of data sources 6.9. Using data sources with the Java™ persistence API Expand section "6.9. Using data sources with the Java™ persistence API" Collapse section "6.9. Using data sources with the Java™ persistence API" 6.9.1. About data source references 6.9.2. Referring to JNDI names 7. Using JMS connection factories Expand section "7. Using JMS connection factories" Collapse section "7. Using JMS connection factories" 7.1. About the OSGi JMS service 7.2. About the PAX-JMS configuration service Expand section "7.2. About the PAX-JMS configuration service" Collapse section "7.2. About the PAX-JMS configuration service" 7.2.1. Creating a connection factory for AMQ 7.1 7.2.2. Creating a connection factory for IBM MQ 8 or IBM MQ 9 7.2.3. Using JBoss A-MQ 6.3 Client in Fuse on Apache Karaf Expand section "7.2.3. Using JBoss A-MQ 6.3 Client in Fuse on Apache Karaf" Collapse section "7.2.3. Using JBoss A-MQ 6.3 Client in Fuse on Apache Karaf" 7.2.3.1. Prerequisites 7.2.3.2. Procedure 7.2.4. Summary of handled properties 7.3. Using JMS console commands 7.4. Using encrypted configuration values 7.5. Using JMS connection pools Expand section "7.5. Using JMS connection pools" Collapse section "7.5. Using JMS connection pools" 7.5.1. Introduction to using JMS connection pools 7.5.2. Using the pax-jms-pool-pooledjms connection pool module 7.5.3. Using the pax-jms-pool-narayana connection pool module 7.5.4. Using the pax-jms-pool-transx connection pool module 7.6. Deploying connection factories as artifacts Expand section "7.6. Deploying connection factories as artifacts" Collapse section "7.6. Deploying connection factories as artifacts" 7.6.1. Manual deployment of connection factories 7.6.2. Factory deployment of connection factories 7.6.3. Mixed deployment of connection factories 8. About Java connector architecture Expand section "8. About Java connector architecture" Collapse section "8. About Java connector architecture" 8.1. Simple JDBC analogy 8.2. Overview of using JCA 8.3. About the pax-transx project 9. Writing a Camel application that uses transactions Expand section "9. Writing a Camel application that uses transactions" Collapse section "9. Writing a Camel application that uses transactions" 9.1. Transaction demarcation by marking the route Expand section "9.1. Transaction demarcation by marking the route" Collapse section "9.1. Transaction demarcation by marking the route" 9.1.1. Sample route with JDBC resource 9.1.2. Route definition in Java DSL 9.1.3. Route definition in Blueprint XML 9.1.4. Default transaction manager and transacted policy 9.1.5. Transaction scope 9.1.6. No thread pools in a transactional route 9.1.7. Breaking a route into fragments 9.1.8. Resource endpoints 9.1.9. Sample route with resource endpoints 9.2. Demarcation by transactional endpoints Expand section "9.2. Demarcation by transactional endpoints" Collapse section "9.2. Demarcation by transactional endpoints" 9.2.1. Sample route with a JMS endpoint 9.2.2. Route definition in Java DSL 9.2.3. Route definition in Blueprint XML 9.2.4. DSL transacted() command not required 9.2.5. Transactional endpoints at start of route 9.3. Demarcation by declarative transactions Expand section "9.3. Demarcation by declarative transactions" Collapse section "9.3. Demarcation by declarative transactions" 9.3.1. Bean-level declaration 9.3.2. Top-level declaration 9.3.3. Description of tx:transaction attributes 9.4. Transaction propagation policies Expand section "9.4. Transaction propagation policies" Collapse section "9.4. Transaction propagation policies" 9.4.1. About Spring transaction policies 9.4.2. Descriptions of propagation behaviors 9.4.3. Defining policy beans in Blueprint XML 9.4.4. Sample route with PROPAGATION_NEVER policy in Java DSL 9.4.5. Sample route with PROPAGATION_NEVER policy in Blueprint XML 9.5. Error handling and rollbacks Expand section "9.5. Error handling and rollbacks" Collapse section "9.5. Error handling and rollbacks" 9.5.1. How to roll back a transaction Expand section "9.5.1. How to roll back a transaction" Collapse section "9.5.1. How to roll back a transaction" 9.5.1.1. Using runtime exceptions to trigger rollbacks 9.5.1.2. Using the rollback() DSL command 9.5.1.3. Using the markRollbackOnly() DSL command 9.5.2. How to define a dead letter queue 9.5.3. Catching exceptions around a transaction Legal Notice Settings Close Language: 简体中文 한국어 日本語 English Language: 简体中文 한국어 日本語 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Language and Page Formatting Options Language: 简体中文 한국어 日本語 English Language: 简体中文 한국어 日本語 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Apache Karaf Transaction Guide Red Hat Fuse 7.7Writing transactional applications for the Apache Karaf container Red Hat Fuse Documentation Team Legal NoticeAbstract Developing transaction-aware applications for Fuse Next