Performance Analysis of new Java EE Concurrency Utilities
Written by: Dewire Labs Team
November 10, 2016
Java EE 7 includes a new API (JSR 236) for using application server resource to improve application support for scheduling task execution. This feature has been long awaited by application developers as event and task scheduling has been impractical to implement in a Java EE compliant fashion.
As the Java EJB 3.1 (JSR 318) specification provided an API for executing asynchronous operations
this has so far been the only way to implement reactive events in the application server.
The ability to implement reactive events has been necessary when trying to execute tasks
with short lead-times. However, the asynchronous API does not provide any means for managing and
throttling the execution volume in the application server and overloading the implementation
in Red Hat EAP 6 causes the application server to forcefully cancel threads.
A more volume scalable alternative would be to use scheduled tasks but such an implementation would
inherently cause unwanted lead times in execution.
The scope of this thesis includes work for one student. The student should have
(academic) experience from development in a J2EE environment, preferably with
any of the Red Hat/JBoss application servers.
- Analyze a present implementation of a task queue implemented using the asynchronous API together with the event API.
- Locate implementation points that cause lead times, execution overhead and latency.
- Propose and implement improvements to the task scheduler using the JSR 236 implementation.