@Path(value="/tx/") public class Coordinator extends Object
| Modifier and Type | Field and Description |
|---|---|
protected static org.jboss.logging.Logger |
log |
| Constructor and Description |
|---|
Coordinator() |
| Modifier and Type | Method and Description |
|---|---|
javax.ws.rs.core.Response |
beginTransaction(javax.ws.rs.core.UriInfo info,
javax.ws.rs.core.HttpHeaders headers,
String content)
Performing a POST on Transaction Manager URL @see TxSupport.TX_SEGMENT with no content
as shown below will start a new transaction with a default timeout.
|
javax.ws.rs.core.Response |
deleteParticipant(String enlistmentId)
Performing DELETE on participant's recovery URL removes participant from the transaction.
|
javax.ws.rs.core.Response |
deleteTransaction(String id)
Performing a DELETE on the transaction-coordinator URL will return a 403.
|
javax.ws.rs.core.Response |
enlistParticipant(String linkHeader,
javax.ws.rs.core.UriInfo info,
String txId,
String content)
Register a participant in a tx
|
javax.ws.rs.core.Response |
enlistVolatileParticipant(String linkHeader,
javax.ws.rs.core.UriInfo info,
String txId)
Register a volatile participant in a tx
|
javax.ws.rs.core.Response |
getAllTransactions(javax.ws.rs.core.UriInfo info)
Performing a GET on the transaction-manager returns a list of all transaction URIs
known to the coordinator (active and in recovery) separated by
the @see TxSupport.URI_SEPARATOR character
|
javax.ws.rs.core.Response |
getTransactionExtStatus(javax.ws.rs.core.UriInfo info,
String id)
Performing a GET on the transaction URL with media type application/txstatusext+xml
returns extended information about the transaction, such as its status,
number of participants, and their individual URIs.
|
org.jboss.jbossts.star.util.media.txstatusext.TransactionManagerElement |
getTransactionManagerInfo(javax.ws.rs.core.UriInfo info)
Performing a GET on the transaction-manager URI with media type application/txstatusext+xml
returns extended information about the transaction-manager resource such as how long it has
been up and all transaction-coordinator URIs.
|
org.jboss.jbossts.star.util.media.txstatusext.TransactionStatisticsElement |
getTransactionStatistics()
Performing a GET on the transaction-manager URI sufficed with /statistics
returns statistics of the transaction manager.
|
javax.ws.rs.core.Response |
getTransactionStatus(javax.ws.rs.core.UriInfo info,
String id)
Performing a GET on the transaction url returns its status
|
javax.ws.rs.core.Response |
getTransactionURIs(javax.ws.rs.core.UriInfo info,
String id)
Obtain the transaction terminator and participant enlistment URIs for the
specified transaction id.
|
javax.ws.rs.core.Response |
lookupParticipant(String txId,
String enlistmentId)
Get the participant url (registered during enlistParticipant) corresponding to a resource reference
if the coordinator crashes - the participant list will be empty but this is ok if commit hasn't been
called since the TM uses presumed abort semantics.
|
javax.ws.rs.core.Response |
postParticipant(String enlistmentId) |
void |
removeTxState(int status,
Transaction tx,
Collection<String> enlistmentIds) |
javax.ws.rs.core.Response |
replaceParticipant(String linkHeader,
String txId,
String enlistmentId)
PUT /recovery-coordinator/_RecCoordId_/_new participant URL_ -
overwrite the old participant URL with new participant URL
(as with JTS, this will also trigger off a recovery attempt on the associated transaction)
A participant may use this url to notifiy the coordinator that he has moved to a new location.
|
javax.ws.rs.core.Response |
terminateTransaction(String txId,
String fault,
String content)
The client can control the outcome of the transaction by by PUTing to the terminator
URL returned as a response to the original transaction create request.
|
javax.ws.rs.core.Response |
tt1(String txId) |
javax.ws.rs.core.Response |
tt2(String txId) |
javax.ws.rs.core.Response |
tt3(String txId) |
javax.ws.rs.core.Response |
tt4(String txId) |
javax.ws.rs.core.Response |
tt5(String txId) |
@GET
@Path(value="transaction-manager/")
@Produces(value="application/txlist")
public javax.ws.rs.core.Response getAllTransactions(@Context
javax.ws.rs.core.UriInfo info)
info - http context of the request@GET
@Path(value="transaction-manager/")
@Produces(value="application/txstatusext+xml")
public org.jboss.jbossts.star.util.media.txstatusext.TransactionManagerElement getTransactionManagerInfo(@Context
javax.ws.rs.core.UriInfo info)
info - Request context@GET @Path(value="transaction-manager/statistics") @Produces(value="application/txstatusext+xml") public org.jboss.jbossts.star.util.media.txstatusext.TransactionStatisticsElement getTransactionStatistics()
@HEAD
@Path(value="transaction-manager/{id}")
@Produces(value="application/txlist")
public javax.ws.rs.core.Response getTransactionURIs(@Context
javax.ws.rs.core.UriInfo info,
@PathParam(value="id")
String id)
info - request contextid - URL template parameter for the transaction id@GET
@Path(value="transaction-manager/{id}")
@Produces(value="application/txstatus")
public javax.ws.rs.core.Response getTransactionStatus(@Context
javax.ws.rs.core.UriInfo info,
@PathParam(value="id")
String id)
info - request contextid - URL template parameter for the id of the transactionetc for the format of the returned content@GET
@Path(value="transaction-manager/{id}")
@Produces(value="application/txstatusext+xml")
public javax.ws.rs.core.Response getTransactionExtStatus(@Context
javax.ws.rs.core.UriInfo info,
@PathParam(value="id")
String id)
info - Request contextid - URL template parameter for the id of the transaction@DELETE
@Path(value="transaction-manager/{id}")
public javax.ws.rs.core.Response deleteTransaction(@PathParam(value="id")
String id)
id - transaction id@HEAD
@Path(value="transaction-manager/{TxId}/terminator")
public javax.ws.rs.core.Response tt1(@PathParam(value="TxId")
String txId)
@GET
@Path(value="transaction-manager/{TxId}/terminator")
public javax.ws.rs.core.Response tt2(@PathParam(value="TxId")
String txId)
@POST
@Path(value="transaction-manager/{TxId}/terminator")
public javax.ws.rs.core.Response tt3(@PathParam(value="TxId")
String txId)
@DELETE
@Path(value="transaction-manager/{TxId}/terminator")
public javax.ws.rs.core.Response tt4(@PathParam(value="TxId")
String txId)
@OPTIONS
@Path(value="transaction-manager/{TxId}/terminator")
public javax.ws.rs.core.Response tt5(@PathParam(value="TxId")
String txId)
@POST
@Path(value="transaction-manager/")
@Consumes(value="application/x-www-form-urlencoded")
public javax.ws.rs.core.Response beginTransaction(@Context
javax.ws.rs.core.UriInfo info,
@Context
javax.ws.rs.core.HttpHeaders headers,
@DefaultValue(value="")
String content)
info - uri contextheaders - http headerscontent - empty if no transaction timeout is required otherwise the number of milliseconds
after which the transaction is eligible for being timed out. The content should have the format
TxSupport#TIMEOUT_PROPERTY millisecondsand @see TxLinkNames#PARTICIPANT@PUT
@Path(value="transaction-manager/{TxId}/terminator")
public javax.ws.rs.core.Response terminateTransaction(@PathParam(value="TxId")
String txId,
@QueryParam(value="fault") @DefaultValue(value="")
String fault,
String content)
txId - URL template component containing the transaction identifierfault - mechanism for injecting faults TODO use byteman insteadcontent - body of the request indicating a commit or abort requestetcpublic void removeTxState(int status,
Transaction tx,
Collection<String> enlistmentIds)
@POST
@Path(value="transaction-manager/{TxId}")
public javax.ws.rs.core.Response enlistParticipant(@HeaderParam(value="Link")
String linkHeader,
@Context
javax.ws.rs.core.UriInfo info,
@PathParam(value="TxId")
String txId,
String content)
linkHeader - link headerinfo - URI infotxId - id of transactioncontent - body of request containing URI for driving the participant through completion
(the URI should be unique within the scope of txId)@PUT
@Path(value="transaction-manager/{TxId}/volatile-participant")
public javax.ws.rs.core.Response enlistVolatileParticipant(@HeaderParam(value="Link")
String linkHeader,
@Context
javax.ws.rs.core.UriInfo info,
@PathParam(value="TxId")
String txId)
linkHeader - link headerinfo - URI infotxId - id of transaction@GET
@Path(value="recovery-coordinator/{TxId}/{RecCoordId}")
public javax.ws.rs.core.Response lookupParticipant(@PathParam(value="TxId")
String txId,
@PathParam(value="RecCoordId")
String enlistmentId)
txId - transaction id that this recovery url belongs toenlistmentId - the resource reference@PUT
@Path(value="recovery-coordinator/{TxId}/{RecCoordId}")
public javax.ws.rs.core.Response replaceParticipant(@HeaderParam(value="Link")
String linkHeader,
@PathParam(value="TxId")
String txId,
@PathParam(value="RecCoordId")
String enlistmentId)
linkHeader - link header containing participant linkstxId - transaction id that this recovery url belongs toenlistmentId - id by the participant is known@POST
@Path(value="recovery-coordinator/{RecCoordId}")
public javax.ws.rs.core.Response postParticipant(@PathParam(value="RecCoordId")
String enlistmentId)
@DELETE
@Path(value="recovery-coordinator/{RecCoordId}")
public javax.ws.rs.core.Response deleteParticipant(@PathParam(value="RecCoordId")
String enlistmentId)
enlistmentId - The resource referenceCopyright © 2018 JBoss by Red Hat. All rights reserved.