Top Banner
© JBoss Inc. 2006 JBoss Transactions Transactions Everywhere!
28

JBoss · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

Mar 15, 2018

Download

Documents

phamdang
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

© JBoss Inc. 2006

JBoss Transactions

Transactions Everywhere!

Page 2: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

2 The Professional Open Source™ Company

What this talk will cover

• Background

• ArjunaCore

� Transaction engine

• JTA

� JDBC driver

• JTS

• WS-T

• Summary

Page 3: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

3 The Professional Open Source™ Company

What this talk won’t cover

• Transaction processing basics

� Maybe the subject of another webinar

� There are enough good books out there to do the job

Page 4: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

4 The Professional Open Source™ Company

What is JBoss Transactions

• JBoss Transactions 4.2

� Next generation of JBoss transaction service

� Based on

• JTA 1.0.1

• JTS 1.0 (OTS 1.4)

• WS-Coordination, WS-Atomic Transaction, WS-Business Activity� Demonstrated interoperability with IBM and MSFT

� Used at HP World for Web Services seminars

� Licensed to Tibco, webMethods and others

• Does not require an application server to run

� I18N and L10N

Page 5: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

5 The Professional Open Source™ Company

JBossTS Components

Object Request Broker (ORB)

ORB Portability Layer

Object Transaction Service (OTS)

JTA JDBC

Sample DemosOther Java Applications

A-TS Package Interact with each other

Transactional Objects

Arjuna Core

WS-T

SOAPPortability

Page 6: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

6 The Professional Open Source™ Company

ArjunaCore

• Stand-alone transaction engine

• Full failure recovery

• ACID properties can be relaxed

� Gray’s matrix of transaction models

� Does not restrict to XA

• Designed to be used stand-alone

� Own set of APIs

• Similar to what MSFT are doing with Indigo

Page 7: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

7 The Professional Open Source™ Company

ArjunaCore

• Knows nothing about distribution

� Does not require an ORB or an application server

� Has hooks to allow distribution to occur in a system specific manner, e.g., IIOP or XML/SOAP

• 100% pure Java

• Small footprint (290 KB jar)

� E.g., runs on an HP Jornada 720!

• Highly adaptable, e.g., used in Arjuna’smessaging product as well as our Web Services component

Page 8: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

8 The Professional Open Source™ Company

Failure recovery

•Automatic failure recovery daemon

�Runs periodically

�Can be driven directly

•Recover inflight transactions

•Recover resources

�different recovery mechanisms required for each resource type

�different mechanisms can be easily added

Page 9: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

9 The Professional Open Source™ Company

Further features

•Many configuration options

�Transaction nesting

•Checked transactions

�Per transaction basis

•Last resource commit optimization

•Asynchronous commit protocol

�Prepare and commit

•Transaction management tools

�Heuristic resolution

Page 10: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

10 The Professional Open Source™ Company

JEE Component

•Compliant with OMG OTS specification

�Supports all optional features

�Superset with flexible implementations

•JTA 1.0.1 compliant

•Supports JDBC 2.0

�E.g., Oracle 8/9, Sequelink, Cloudscape

•In use for nearly a decade

�Longer if you consider C++

Page 11: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

11 The Professional Open Source™ Company

JEE support

•Local and remote JTA implementations

•World’s first JTS implementation

�Used to push the OTS specification

�Completely multi-thread aware

•Portable to a number of ORBs

�E.g., Orbix 2k, JacORB, JDK ORB, …

•Distributed failure recovery

•Sub-transaction aware resources

Page 12: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

12 The Professional Open Source™ Company

JTA component

• Two variants of JTA� Distributed version

• Layered on JTS� Requires ORB

� Non-distributed version• Does not require ORB

� Faster

• Transactional JDBC driver� Automatically enlists resources with JTA

• Works with Oracle 8/9, Cloudscape/Derby, …

Page 13: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

13 The Professional Open Source™ Company

JTS component

• Supports distributed two-phase commit

� One-phase commit optimisation

• Failure recovery automatically completes transactions

� Driven from resource side as well as from transaction manager

• Fast, in-process transaction management

� Separate transaction server possible

Page 14: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

14 The Professional Open Source™ Company

OTS architecture

transaction

context

transaction

context

(associated with thread)

Transaction Service

transaction

contexttransaction originator recoverable server

Factory

Control

TerminatorCurrent

Control

Coordinator

Recovery

CoordinatorCurrentResource

SubtransactionAwareResource

Synchronization

(associated with thread)

Page 15: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

15 The Professional Open Source™ Company

Nested transactions

• Optional part of JTS specification

� few sub-transaction-aware resources

• Registered resources are only informed of transaction termination

• No two-phase commit for sub-transactions

� can result in heuristic-like outcomes

� Implementation specific extensions

Page 16: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

16 The Professional Open Source™ Company

Why use subtransactions?

•Fault isolation

�subtransaction work can be rolled back independently of enclosing transaction

• can try alternate work

•Modularity

�objects can be responsible for their own transactionality irrespective of client

Page 17: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

17 The Professional Open Source™ Company

Transaction propagation

•Explicit propagation

�Context passed as parameter

�Object implementation responsible for using it when required

•Implicit propagation

�Transaction context is implicitly passed from client to object

�All operations are assumed transactional

Page 18: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

18 The Professional Open Source™ Company

Interposition

•Allows a subordinate coordinator to be created

•Interposed coordinator registers with transaction originator

�Form tree with parent coordinator

�Application resources register locally

•JBossTS supports interposition for implicit and explicit propagation

Page 19: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

19 The Professional Open Source™ Company

Interposition

Root coordinator

Resource

Subordinate

coordinator

Page 20: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

20 The Professional Open Source™ Company

Web Services transactions

• Traditional ACID transactions are not appropriate for Web Services

� No longer strongly coupled and trusted environments

� Potentially long duration processes

• WS-AtomicTransaction/WS-BusinessActivity

• OASIS WS-Transaction Management

Page 21: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

21 The Professional Open Source™ Company

End-to-end transactions

•Most Web Services will use existing transaction aware resources

�Relational databases (Oracle; DB2; SQLServer)

�Message queuing systems

�Interoperability with XA specification is required

•Many Web Services will use JEE

�JTA/JTS transactions are similar but not identical to Web Services transactions

�Bi-directional interoperability between JTA/S and WS-T

�Seamless flowing of transaction context from Web Services client, through EJB to backend database

Page 22: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

22 The Professional Open Source™ Company

JBossTS provides the glue

•Therefore, WS transactions are not sufficient by themselves

•Require integration with back-end (e.g., JTS) solutions�Provide end-to-end solution for customers

• It is critical to the take-up of transactions in Web Services

Page 23: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

23 The Professional Open Source™ Company

Multi-modal transactions

App server

Data

JTA Trans

Bean

Web ServicesClient application

XARes

App server

JTA Trans

Bean XARes

WS-T participation

SOAP/HTTP

XARes

Data

App server

JTA Trans

Bean XARes

IIOP

Page 24: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

24 The Professional Open Source™ Company

JBoss WS-T component

• Support for general coordination framework

� WS-Coordination

• Similar to JSR 95/OMG Activity Service

• Support for Web services transactions

� Atomic Transaction

• Traditional two-phase commit

� Business Activity

• Similar to OASIS WS-TXM Long Running Action

Page 25: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

25 The Professional Open Source™ Company

Implementation overview

• Separate transaction and coordination core from messaging� Provide SOAP portability infrastructure

• Transaction services plugged in� Allows us to leverage existing implementations

• E.g., ArjunaCore, Tuxedo, CICS, Encina

� Customers trust pedigree

• Especially where their money is concerned

Page 26: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

26 The Professional Open Source™ Company

JBoss 3/WebLogic/JBoss 4*

√√

(via Arjuna, IBM, MSFT, Oracle specs.)

(not just XA participa-nts)

(via JTS)

√√√

(can run out of application server)

√√√√

(JTA and JTS)

JBoss 4*

XXX

(XA specific)

X√√√

(can run out of application server)

√√√√

(JTA)

WebLogic

XXX

(XA specific)

XXXX

(tied to application server)

X√X√

(JTA)

JBoss 3

WS-tx to J2EE txbridge

Web Services transactions

Flexible particip-ants

Interop

Mgmt tools

Distributed transactions

Flexible deployment

Failure recovery

2PCIndustry proven

Standards compliant

Application server versus transaction capabilities

Page 27: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

27 The Professional Open Source™ Company

Roadmap

• Rebrand and open source ArjunaTS as JBoss Transactions 4.2� Java Transaction Service� WS Transaction Service� This product appeals to Financials, Telco, and

Insurance verticals as well as SOA ISVs.

• JBoss AS 4.x� Current JTA will remain default� Open source ArjunaJTA will be made available as

separate download� Support for open source ArjunaJTA included in JBoss

AS subscription

• JBoss AS 5� Open source ArjunaJTA will be default JTA� Current JBoss JTA will be phased out

• When will this be available?� Targeting Q1 2006 for JBoss AS 4 support

Page 28: JBoss  · PDF fileWhat is JBoss Transactions ... JBoss 3/WebLogic/JBoss 4* ... • Rebrand and open source ArjunaTS as JBoss Transactions 4.2 Java Transaction Service

28 The Professional Open Source™ Company

Summary

• Product features

� High performance and reliability

� Manageability and configurability

� Standards compliance

� Modular architecture to optimise footprint

� Pure Java implementation

• Deployment options

� Application server agnostic

� Deployable in or outside a J2EE application server