@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/
|
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 formatand @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 requestetc
public 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 © 2013. All rights reserved.