Paul Robinson [
https://community.jboss.org/people/paul.robinson] modified the document:
"TransactionMonitoringAndVisualization"
To view the document, visit:
https://community.jboss.org/docs/DOC-48255
--------------------------------------------------------------
h1. Transaction Monitoring and Visualization
The purpose of this project is to create a tool for monitoring the status of in-flight and
complete transactions. The main aims of the tool are to help debug transaction related
issues and also to educate the developer of transactional applications. Essentially, the
tool monitors a running system and produces a list of all transactions. A user may then
select a particular transaction to see in more detail the participants involved in the
transaction, the outcome of the transaction and the participants that influenced the
outcome. Ideally the tool would be visual, showing a diagramatic view of a transaction.
However, early versions may be tabular to allow more time to be spent improving
functionality.
A few diagrams should give you an idea of what the tooling could produce:
https://community.jboss.org/servlet/JiveServlet/showImage/20113/TXVisualC...
https://community.jboss.org/servlet/JiveServlet/downloadImage/20113/TXVis...
Here we can see that a transaction was begun on Server1. It enlisted a DB and JMS queue
locally and invoked a remote service on Server2. A second resource (DB2) was enlisted on
Server2.
https://community.jboss.org/servlet/JiveServlet/showImage/20114/TXVisualR...
https://community.jboss.org/servlet/JiveServlet/downloadImage/20114/TXVis...
In this example we can see that the transaction rolled back because DB2 voted rollback.
Other possible features:
* *List Transactions*. List all logged transactions with a summary of the outcome
(Committed, rolled back, heuristic).
* *Multiple Transaction Types.* Somehow depict the type of transaction (JTS, WS-AT,
REST-AT, etc)
* *Display Bridges*. Display when a transaction is bridged from one type to another
* *In flight Transactions*. More useful for long running transactions; display the current
status of each participant and update the display in real-time as the status changes.
* *Heuristics*. Display any resources that made a heuristic decsion and what that decision
was.
* *Recovery Status*. Show which resources crashed and the status of those resources
already committed or recovered.
h4. Potential Solution
Use Byteman rules to log the required information on each server. The log can then be
parsed by the visualization tool. The benefit of this approach is that you should be able
to hook into any code in the TM. Also it it easy to turn on and off the tool so that it
doesn't add overhead in production.
--------------------------------------------------------------
Comment by going to Community
[
https://community.jboss.org/docs/DOC-48255]
Create a new document in JBoss Transactions Development at Community
[
https://community.jboss.org/choose-container!input.jspa?contentType=102&a...]