blob: c0c85829de6368f039413ae807e3a839518dc437 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.18">
<link rel="icon" type="image/png" href="images/favicon.png">
<title>Resource Manager Configuration</title>
<link rel="stylesheet" href="css/asciidoctor.css">
<link rel="stylesheet" href="css/font-awesome.css">
</head>
<body class="book">
<div id="header">
<h1>Resource Manager Configuration</h1>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Apache ActiveMQ Artemis has its own Resource Manager for handling the lifespan of JTA transactions.
When a transaction is started the resource manager is notified and keeps a record of the transaction and its current state.
It is possible in some cases for a transaction to be started but then forgotten about.
Maybe the client died and never came back.
If this happens then the transaction will just sit there indefinitely.</p>
</div>
<div class="paragraph">
<p>To cope with this Apache ActiveMQ Artemis can, if configured, scan for old transactions and rollback any it finds.
The default for this is 3000000 milliseconds (5 minutes), i.e. any transactions older than 5 minutes are removed.
This timeout can be changed by editing the <code>transaction-timeout</code> property in <code>broker.xml</code> (value must be in milliseconds).
The property <code>transaction-timeout-scan-period</code> configures how often, in milliseconds, to scan for old transactions.</p>
</div>
<div class="paragraph">
<p>Please note that Apache ActiveMQ Artemis will not unilaterally rollback any XA transactions in a prepared state - this must be heuristically rolled back via the management API if you are sure they will never be resolved by the transaction manager.</p>
</div>
</div>
</div>
</div>
</body>
</html>