Current product documentation:
Community docs:
https://github.com/jbosstm/documentation
Table of contents
- Quick overview of transaction concepts
- http://narayana.io/docs/product/index.html#d0e363
- Links to the specs used in Narayana:
- https://jcp.org/en/jsr/detail?id=907
- http://download.oracle.com/otndocs/jcp/7309-jts-1.0-spec-oth-JSpec/
- http://docs.oasis-open.org/ws-tx/wstx-wscoor-1.1-spec-errata-os/wstx-wscoor-1.1-spec-errata-os.html.
- http://docs.oasis-open.org/ws-tx/wstx-wscoor-1.2-spec-os/wstx-wscoor-1.2-spec-os.html.
- http://docs.oasis-open.org/ws-tx/wstx-wsat-1.1-spec-errata-os/wstx-wsat-1.1-spec-errata-os.html.
- http://docs.oasis-open.org/ws-tx/wstx-wsat-1.2-spec-os/wstx-wsat-1.2-spec-os.html.
- http://docs.oasis-open.org/ws-tx/wstx-wsba-1.1-spec-errata-os/wstx-wsba-1.1-spec-errata-os.html.
- http://docs.oasis-open.org/ws-tx/wstx-wsba-1.2-spec-os/wstx-wsba-1.2-spec-os.html.
- Transaction bridging between XTS and JTA
- limitations: http://narayana.io/docs/product/index.html#d0e6777
- An overview of the 2PC process and the various outcomes
- This would be a diagram pseudo code of https://github.com/jbosstm/narayana/blob/master/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/BasicAction.java and https://github.com/jbosstm/narayana/blob/master/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java
- More practical differentiating of what heuristic outcome types means. Narayana doc guide talks about it a bit abstractly (http://narayana.io/docs/product/index.html#d0e636) I think. It would be good to say when what outcome normally occurs (e.g. example from Atomikos where some fail cases are explained http://www.atomikos.com/Documentation/HeuristicExceptions)
- An overview of how transaction log works - log is created at time of prepare phase ends (but e.g. for JTS there could be logged some participants meanwhile). Each participant has it’s own record. When transaction is committed then log record is completely erased from Narayana log store. Maybe some word on presumed abort optimization.
- How recovery works (basis). Two phases up-to-down and bottom-up. The first uses only data from Narayana log, the second checks state of each participant.
- An overview of the different kinds of participants in a transaction indicating what can go wrong (read only, LRCO, commit markable, XA aware, extended XA resources (JTS))
- JCA inflow = single branch shared by multiple servers
- Common steps when transaction issues happen
- How to enable TRACE and why it’s important
- Web Console
- https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.4/html/Administration_and_Configuration_Guide/chap-Transaction_Subsystem.html#Configure_Logging_for_the_Transaction_Subsystem1
- Management CLI command
- How to enable TXBridge trace logs (org.jboss.jbossts.txbridge category)
- Understanding Narayana log files
- standalone/logs/server.log
- locating the ID (Uid) of a transaction
- Finding all details related to the transaction
- locating Xid of XAResources for that transaction
- For any transaction find its status and list of resources
- This may be other EAP servers or resources managers
- Where possible, the maximum information should be provided in order for a resource manager admin to investigate
- Show the history of a transaction
- Current status of the transaction
- Are we in a heuristic situation
- How long time before recovering the transaction
- a list of the more interesting WARN/ERROR and for each an indication of:
- which log messages indicate which problems
- resolution strategies
- https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.4/html/Administration_and_Configuration_Guide/chap-Transaction_Subsystem.html#About_Transaction_Log_Messages
- http://narayana.io/docs/product/index.html#d0e3638
- TxBridge messages
- The importance of setting unique node ID and what happens when it is not unique
- What is orphan detection
- Understanding why resources fail to recover (db permissions, unresponsive resources, etc ...)
- How to enable TRACE and why it’s important
- Frequently Asked Questions:
- How do a I debug a timed out transaction?
- What solutions and actions (if it applies) are possible for indoubt/heuristic transactions:
- Suggest options for the resource managers iin the transaction
- What do I do if I get a heuristic result?
- Am I allowed to migrate logs to a new server and if so how ?
- Why is my JTS transaction not propagated?
- EJBHome
- Why is performance slower for JTS
- WS-BA Participant-Completion Race Condition:
- How other threads can complete my XAResource/Synchronization
- Reference spec
- Distributed JTA _and_ JTS
- How to toggle JTS in EAP/wildfly
- How to enable XTS on EAP:
- What does xaAssumeRecoveryComplete mean
- Relates to No xaresourcerecovery and none-JBTM-860 compatible resources
- How do I select an appropriate object store:- db, file versus journal (tradeoffs, tuning, difference in failure scenarios
- What is the difference between BusinessAgreementWithParticipantCompletion and BusinessAgreementWithCoordinatorCompletion.
- How does WS-AT usage differ between EAP 6 and EAP 7:
- On EAP 6 WS-AT and TXBridge handlers have to be configured manually.
- On EAP 7 this is done automatically by WSTXFeature and JTAOverWSATFeature.
- What is an expired transactions and can I clean them up automatically?
- How do I find what transactions and the resource managers within them are running in Narayana
- jboss-cli commands
- What should I provide when reporting issues:
- Providing the necessary information
- EAP version
- JAVA version
- OS
- Processor
- Virtualized?
- Storage medium
- Reproducible test case
- Configuration
- Log files
- Others
Comments