This feature will allow EAP supported transaction services to react to suspend and resume requests. The supported services are JTA, JTS, WS-AT, and WS-BA.
After suspend, all the services remain functional (as per Stuart’s statement on wildfly-dev ). All external requests bound to the existing transactions are allowed in. All external requests requiring new transaction are blocked. All remote transaction management requests, except begin, are allowed in.
After resume, all requests are allowed in.
After suspend timeout, all services must shutdown.
- EAP issue: https://issues.jboss.org/browse/EAP7-459.
- Dev contacts: Gytis Trikleris (primary).
- QE contacts: Ondra Chaloupka.
- Related EAP components: Transactions, XTS, Web Services, IIOP, EJB, Undertow.
- Related projects: Narayana.
- Related links:
- Wildfly suspend and resume (aka graceful shutdown): https://developer.jboss.org/wiki/WildflySuspendAndResumeakaGracefulShutdown
- [wildfly-dev] Transactions requirement during the graceful shutdown: http://lists.jboss.org/pipermail/wildfly-dev/2016-July/005227.html
- XTS behaviour when a server is suspending:
- [wildfly-dev] Graceful shutdown: http://wildfly-development.1055759.n5.nabble.com/Graceful-shutdown-tt5714814.html#none
- [wildfly-dev] Design Proposal: Server suspend/resume (AKA Graceful Shutdown): http://wildfly-development.1055759.n5.nabble.com/Design-Proposal-Server-suspend-resume-AKA-Graceful-Shutdown-tc5714243.html
- XTS impact on suspend/resume: https://drive.google.com/open?id=0B8_uQwkz6Ey5Vk5xY2VpbUhCQzQ
- Mike’s changes for Narayana: https://github.com/mmusgrov/narayana/commits/JBTM-2245
- Mike’s changes to WildFly: https://github.com/mmusgrov/jboss-as/commits/JBTM-2245
- After suspend, all transaction services except recovery manager (JTA, JTS, WS-AT, WS-BA, reaper, TSM) function as normal.
- After suspend request, recovery manager completes an active recovery cycle and suspends.
- EJB subsystem consults transactions subsystem, if an incoming request should be blocked, and then either blocks it or not.
- All requests belonging to an existing JTA transaction are allowed.
- All requests not belonging to an existing JTA transaction are blocked.
- All requests belonging to an existing JTS transaction are allowed.
- All JTS transaction management requests are allowed, except a request to begin a transaction.
- All requests not belonging to an existing JTS transaction are blocked.
- Web Services subsystem consults XTS subsystem, if an incoming request should be blocked, and then either blocks it or not.
- All requests belonging to an existing WS-AT or WS-BA transaction are allowed.
- All transaction management requests are allowed, except a request to begin a transaction.
- All requests not belonging to an existing WS-AT or WS-BA transaction are blocked.
- After resume, all requests are allowed.
- After resume, recovery manager resumes.
- After suspend timeout, all outstanding transactions are aborted and all services are shutdown.