Promote idle time-based eviction for distributable HttpSessions, SFSBs, and Timers to default stability
Overview
WildFly added support for idle time-based eviction configuration for distributable HttpSessions, Stateful Session Beans (SFSBs), and EJB Timers in version 39.0.0.Final at the community stability level. This proposal seeks to promote this feature to the default stability level.
The promotion is necessary because test cases fail when running on containers that do not support the community stability level (WFLY-21369), making the feature inaccessible in certain deployment scenarios. Additionally, promoting this feature to default stability will make it available to a broader audience and better align with WildFly’s resource management capabilities.
User Stories
As a WildFly administrator, I want to configure eviction based on idle time rather than just cache size at the default stability level, so that I can better manage memory usage when my sessions and beans have highly variable sizes without requiring community stability support.
Issue Metadata
Related Issues
-
WFLY-21526 Promote 'WFLY-20918 Add idle time-based eviction configuration for distributable HttpSessions, SFSBs, Timers' to DEFAULT stability
-
WFLY-21369 Idle time-based eviction configuration test cases fail when running on a container that does not support 'community' stability (testing issue for downstream) – will be reverted with promotion
Original issues that added this feature to the community stability:
-
WFLY-20918 Add idle time-based eviction configuration for distributable HttpSessions, SFSBs, Timers
-
WFLY-20839 Remove max-active-timers from default configuration
Affected Projects or Components
Other Interested Projects
N/A
Relevant Installation Types
See the original proposal.
Requirements
See the Requirements section of the original proposal.
Changed Requirements
No changed requirements other than availability in the default stability level.
Non-Requirements
See the Non-Requirements section of the original proposal.
Future Work
See the Future Work section of the original proposal.
Backwards Compatibility
This enhancement maintains full backwards compatibility. The promotion to default stability does not change the behavior of the feature. Existing configurations using this feature at community stability will continue to work identically at default stability.
See the Backwards Compatibility section of the original proposal for additional details.
Implementation Plan
The implementation involves updating the schema and model stability levels for the affected subsystems:
-
Update
distributable-websubsystem schema and model to exposeidle-thresholdattributes at default stability -
Update
distributable-ejbsubsystem schema and model to exposeidle-thresholdattributes at default stability -
Update integration tests to run at default stability
-
Update documentation to reflect default stability availability
All underlying functionality is already implemented and tested at the community stability level.
Admin Clients
See the Admin Clients section of the original proposal.
Security Considerations
See the Security Considerations section of the original proposal.
Test Plan
-
Default - This stability level is reserved and requires approval by a professional Quality Engineer with subject matter expertise.
The existing test suite from the community stability implementation will be executed at the default stability level, with additional verification that the feature works correctly on containers that do not support community stability.
Community Documentation
Documentation will be updated to remove references to community stability and indicate that this feature is available at the default stability level. The documentation PR will be part of the implementation PR to WildFly main.
Release Note Content
Idle time-based eviction for distributable HttpSessions, Stateful EJBs, and EJB Timers has been promoted to default stability.
This feature, previously available at community stability, allows administrators to configure eviction based on how long a state object has been idle using the idle-threshold attribute.
This provides more flexible resource management options, particularly useful when distributed state objects have highly variable sizes, and complements the existing count-based eviction mechanism.