Package com.microsoft.sqlserver.jdbc

# Class SQLServerXAResource

java.lang.Object
com.microsoft.sqlserver.jdbc.SQLServerXAResource

All Implemented Interfaces:
  `javax.transaction.xa.XAResource`

    public final class SQLServerXAResource
    extends java.lang.Object
    implements javax.transaction.xa.XAResource

Provides an XAResource for XA distributed transaction management. XA transactions are implemented over SQL Server using Microsoft Distributed Transaction Manager (DTC). SQLServerXAResource makes calls to a SQL Server extended dll called SQLServer_XA.dll which interfaces with DTC. XA calls received by SQLServerXAResource (XA_START, XA_END, XA_PREPARE etc) are mapped to the corresponding calls to DTC functions. SQLServerXAResource may also be configured not to use DTC. In this case distributed transactions are simply implemented as local transactions.

## Field Summary

Fields
Modifier and Type | Field | Description
--- | --- | ---
`static int` | `SSTRANSTIGHTLYCPLD` |

### Fields inherited from interface javax.transaction.xa.XAResource

`TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY`

## Method Summary

Modifier and Type | Method | Description
--- | --- | ---
`void` | `commit​(javax.transaction.xa.Xid xid, boolean onePhase)` |
`void` | `end​(javax.transaction.xa.Xid xid, int flags)` |
`void` | `forget​(javax.transaction.xa.Xid xid)` |
`int` | `getTransactionTimeout()` |
`boolean` | `isSameRM​(javax.transaction.xa.XAResource xares)` |
`int` | `prepare​(javax.transaction.xa.Xid xid)` |
`javax.transaction.xa.Xid[]` | `recover​(int flags)` |
`void` | `rollback​(javax.transaction.xa.Xid xid)` |
`boolean` | `setTransactionTimeout​(int seconds)` |
`void` | `start​(javax.transaction.xa.Xid xid, int flags)` |
`java.lang.String` | `toString()` |

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### SSTRANSTIGHTLYCPLD

public static final int SSTRANSTIGHTLYCPLD

See Also:
  Constant Field Values

## Method Details

### toString

public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

### start

public void start​(javax.transaction.xa.Xid xid, int flags) throws javax.transaction.xa.XAException

Specified by:
  `start` in interface `javax.transaction.xa.XAResource`
Throws:
  `javax.transaction.xa.XAException`

### end

public void end​(javax.transaction.xa.Xid xid, int flags) throws javax.transaction.xa.XAException

Specified by:
  `end` in interface `javax.transaction.xa.XAResource`
Throws:
  `javax.transaction.xa.XAException`

### prepare

public int prepare​(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException

Specified by:
  `prepare` in interface `javax.transaction.xa.XAResource`
Throws:
  `javax.transaction.xa.XAException`

### commit

public void commit​(javax.transaction.xa.Xid xid, boolean onePhase) throws javax.transaction.xa.XAException

Specified by:
  `commit` in interface `javax.transaction.xa.XAResource`
Throws:
  `javax.transaction.xa.XAException`

### rollback

public void rollback​(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException

Specified by:
  `rollback` in interface `javax.transaction.xa.XAResource`
Throws:
  `javax.transaction.xa.XAException`

### forget

public void forget​(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException

Specified by:
  `forget` in interface `javax.transaction.xa.XAResource`
Throws:
  `javax.transaction.xa.XAException`

### recover

public javax.transaction.xa.Xid[] recover​(int flags) throws javax.transaction.xa.XAException

Specified by:
  `recover` in interface `javax.transaction.xa.XAResource`
Throws:
  `javax.transaction.xa.XAException`

### isSameRM

public boolean isSameRM​(javax.transaction.xa.XAResource xares) throws javax.transaction.xa.XAException

Specified by:
  `isSameRM` in interface `javax.transaction.xa.XAResource`
Throws:
  `javax.transaction.xa.XAException`

### setTransactionTimeout

public boolean setTransactionTimeout​(int seconds) throws javax.transaction.xa.XAException

Specified by:
  `setTransactionTimeout` in interface `javax.transaction.xa.XAResource`
Throws:
  `javax.transaction.xa.XAException`

### getTransactionTimeout

public int getTransactionTimeout() throws javax.transaction.xa.XAException

Specified by:
  `getTransactionTimeout` in interface `javax.transaction.xa.XAResource`
Throws:
  `javax.transaction.xa.XAException`