27.01.2014 Views

AMQP Specification Transport

AMQP Specification Transport

AMQP Specification Transport

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>AMQP</strong> <strong>Specification</strong>.<br />

Session<br />

4.12.6 Command: 0x0204 (executes an extended command)<br />

Signature: execute( options: map, spec: str8, name: str8, arguments: map )<br />

Executes a command from an extended specification.<br />

Field Details:<br />

options: map<br />

options map (optional)<br />

spec: str8<br />

name: str8<br />

an extended specification (optional)<br />

Identifies the specification that defines the behavior for the command. This is typically a URI<br />

identifying a document that contains the formal definition for all the commands in the<br />

extended specification.<br />

the command name (optional)<br />

Identifies the name of the command within the given specification.<br />

arguments: map<br />

the command arguments (optional)<br />

Carries the command arguments as defined by the identified specification.<br />

4.13 Transactional Sessions<br />

A Transactional Session is one in which one of the two Applications using the Session behaves as a<br />

Transactional Resource, and the other behaves as a Transaction Controller. A Transactional Session must be<br />

in one of two modes: "local" or "distributed". In both modes, the Transaction Controller defines transactional<br />

units of work, and indicates whether each unit of work is a success or failure. On a Session with a txn-mode<br />

of "local", each successful unit of work is immediately committed as a complete transaction, and failed units<br />

of work are immediately rolled back. On a Session with a txn-mode of "distributed", each unit of work is<br />

given an xid and becomes part of a distributed transaction that is externally coordinated.<br />

Applications capable of behaving as a Transactional Resource may advertise this when establishing a<br />

Session by setting the txn-support field of the attach control to "local" or "distributed". Applications that<br />

wish to behave as a Transaction Controller may indicate this and choose the mode for the Transactional<br />

Session by setting the txn-mode field of the attach control when establishing a Session. Only one end of a<br />

Session can be the Transaction Controller. It is an error for both Session endpoints to set the txn-mode field<br />

when when establishing a Session.<br />

The transactional implications of each Command are determined by the semantics of the Transactional<br />

Resource. Some Commands sent from the Transaction Controller to the Transactional Resource may modify<br />

transactional state, while others may not. Likewise, some Commands sent from the Resource to the<br />

Controller may carry information about the transactional state of the Resource, while others may not. The<br />

state of the Command <strong>Transport</strong> itself is not transactional. A Commit or Rollback may negate or confirm the<br />

effects of a Command carried by the <strong>Transport</strong>, but it has no effect on the command-ids, replay-buffers, or<br />

other <strong>Transport</strong> related state that falls within the scope of the transaction.<br />

<strong>AMQP</strong> <strong>Transport</strong> v. 1-0 Page 35 of 83

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!