STATUS: DRAFT, not ready for review.
This document describes the short-term plan for the transaction profiler tool.
The focus is to provide a release of the profiler for the community to use.
We now have an initial version of the tool, contributed by Alex Creasy. It is now open sourced and available here: https://github.com/jbosstm/transaction-profiler. The focus of the short-term plan is to make make some small changes required to make the profiler usable by the comunity. In particular:
- Add Copyright headers (DONE)
- Format code (DONE)
- Jira component under JBTM (DONE)
- Check tool still works in JTA-only mode. Alex has only tested it recently in JTS mode. I don't think we will get much community interest if we enforce JTS (although it should still be an option).
- Update for Wildfly 8.0.0.Beta1-SNAPSHOT
- Update README.md. Needs review and check getting started instructions work
- Create the release
- Write a blog post covering:
- Thanks to Alex
- Motivation for the tool
- Very quick overview
- Getting started docs, or link to them.
The focus is to provide a release of the profiler for GSS to use on real customer cases.
- Support EAP 6.1. We need to support an existing EAP version in order to get some real cases. EAP 6.1 is a good choice as it provides enough cases to get started and is also a growing community,
- Support multiple target servers. This is needed so that it can work with Wildfly and EAP 6.1 with the same release.
- Analyze existing log files. Essential for obtaining data from customers.
- Create a simple tool for simulating different transaction scenarios. E.g. timeouts, heuristics, failure to prepare, etc. This is useful for debugging and for getting the community to play with the tool.
- Consider moving to JAX-RS+AngularJS. This should make the tool easier to develop and maintain as well as extend. It's also an easy switch to make now, as there is very little to change. Making this switch later could be hard.
- Remove dependency on MySQL. Still have this as a configurable option as it's handy for debugging and currently essential for profiling the distributed (JTS) case.
- Blog post
General Unscheduled Tasks
This is just a place to keep track of minor tasks that may or may not make it into the above releases. There are also many larger tasks that are undocumented here and would into a medium-term plan.
- Replace 'TXVis' with "TxProf" or "Transaction Profiler" as applicable.
- Create Jenkins jobs to test PRs and CI
- Improve the tests so that they don't need to use Thread.sleep().
- Use a commons-io release. Currently using a SNAPSHOT to take advantage of an un-released bug fix.See here for issue: https://issues.apache.org/jira/browse/IO-279
- Remove un-used artifacts from the original prototype (Byteman scripts, log-file examples, etc)
- The .ear seems to contain unexpected libs (Arquillian, Shrinkwrap, etc). Remove these and check for other unexpected things in there and the .war too.