Rechercher dans le manuel MySQL
13.3.8.1 XA Transaction SQL Syntax
To perform XA transactions in MySQL, use the following statements:
- XA PREPARE xid
- XA ROLLBACK xid
For XA
START, the JOIN and
RESUME clauses are not supported.
For XA
END the SUSPEND [FOR MIGRATE]
clause is not supported.
Each XA statement begins with the XA keyword,
and most of them require an xid
value. An xid is an XA transaction
identifier. It indicates which transaction the statement applies
to. xid values are supplied by the
client, or generated by the MySQL server. An
xid value has from one to three
parts:
xid: gtrid [, bqual [, formatID ]]
gtrid is a global transaction
identifier, bqual is a branch
qualifier, and formatID is a number
that identifies the format used by the
gtrid and
bqual values. As indicated by the
syntax, bqual and
formatID are optional. The default
bqual value is ''
if not given. The default formatID
value is 1 if not given.
gtrid and
bqual must be string literals, each
up to 64 bytes (not characters) long.
gtrid and
bqual can be specified in several
ways. You can use a quoted string ('ab'), hex
string (X'6162', 0x6162),
or bit value
(b').
nnnn'
formatID is an unsigned integer.
The gtrid and
bqual values are interpreted in bytes
by the MySQL server's underlying XA support routines. However,
while an SQL statement containing an XA statement is being
parsed, the server works with some specific character set. To be
safe, write gtrid and
bqual as hex strings.
xid values typically are generated by
the Transaction Manager. Values generated by one TM must be
different from values generated by other TMs. A given TM must be
able to recognize its own xid values
in a list of values returned by the
XA
RECOVER statement.
XA START
starts an XA
transaction with the given xidxid value.
Each XA transaction must have a unique
xid value, so the value must not
currently be used by another XA transaction. Uniqueness is
assessed using the gtrid and
bqual values. All following XA
statements for the XA transaction must be specified using the
same xid value as that given in the
XA
START statement. If you use any of those statements
but specify an xid value that does
not correspond to some existing XA transaction, an error occurs.
One or more XA transactions can be part of the same global
transaction. All XA transactions within a given global
transaction must use the same gtrid
value in the xid value. For this
reason, gtrid values must be globally
unique so that there is no ambiguity about which global
transaction a given XA transaction is part of. The
bqual part of the
xid value must be different for each
XA transaction within a global transaction. (The requirement
that bqual values be different is a
limitation of the current MySQL XA implementation. It is not
part of the XA specification.)
The XA
RECOVER statement returns information for those XA
transactions on the MySQL server that are in the
PREPARED state. (See
Section 13.3.8.2, “XA Transaction States”.) The output includes a row for each
such XA transaction on the server, regardless of which client
started it.
XA
RECOVER requires the
XA_RECOVER_ADMIN privilege. This
privilege requirement prevents users from discovering the XID
values for outstanding prepared XA transactions other than their
own. It does not affect normal commit or rollback of an XA
transaction because the user who started it knows its XID.
XA
RECOVER output rows look like this (for an example
xid value consisting of the parts
'abc', 'def', and
7):
- mysql> XA RECOVER;
- +----------+--------------+--------------+--------+
- +----------+--------------+--------------+--------+
- | 7 | 3 | 3 | abcdef |
- +----------+--------------+--------------+--------+
The output columns have the following meanings:
formatIDis theformatIDpart of the transactionxidgtrid_lengthis the length in bytes of thegtridpart of thexidbqual_lengthis the length in bytes of thebqualpart of thexiddatais the concatenation of thegtridandbqualparts of thexid
XID values may contain nonprintable characters.
XA
RECOVER permits an optional CONVERT
XID clause so that clients can request XID values in
hexadecimal.
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 26/06/2006, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/mysql-rf-xa-statements.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor dieser Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.