APAR status
Closed as suggestion for future release.
Error description
Profiling shows there is a outstanding hot spot related to EL resolver difference between the two versions of WebSphere. The difference comes down to class AstIdentifier. To be EL 3.0 spec. section 1.5.1 Evaluating Identifiers. compliant, this class needed to be modified in order to support Lamba expressions, variables, ELResolvers, and statically imported fields. This set of new checks is generating the behavior reported in the PMR. After evaluating the issue the particular ELResolver causing the biggest performance difference is ScopedAttributeELResolver (javax.servlet.jsp.el). This class is included in WAS from the JSP API classes provided by Oracle. It was modified for JSP 2.3 to support EL 3.0 static fields for imported classes.
Local fix
We can recommend a workaround that, depending on your application, could improve the performance when resolving EL expressions. The workaround is to set a value for each EL variables that you're using in a page. If a variable is null, a check in the classloader will be made and here is where we start seeing the performance difference. To set the value for a variable you can use any of the following scopes: page, request, session, and application (the most efficient would be the page scope, but you need to evaluate if that makes sense for the application).
Problem summary
Problem conclusion
Temporary fix
Comments
APAR PI92335 is being closed SUG because the JavaServer Pages (JSP) 2.3 specification has a dependency on EL 3.0. This dependency has the potential to cause a performance degradation between JSP 2.2 and JSP 2.3 due to the EL 3.0 static variable resolution feature. A new action has been added to JSP 2.3 when resolving EL expression; if an EL expression variable is not fou on any of the scopes (page, request, session, or application), then the JSP engine will need to verify if the variable is a statically imported field in order to be compliant with the EL 3 specification. This new check might have a performance differenc when compared to just checking the scopes (as in JSP 2.2) as classloading operations will happen. A JSP 2.3 issue is open in the Java Enterprise Edition issue tracker. The title of the issue is "JSP spec. needs to define a mechanism to support EL 3.0 static fields for imported classes". Update: We can now recommend the fix for APAR PH31416, which improves the performance of resolving EL 3.0 expressions of the type described here.
APAR Information
APAR number
PI92335
Reported component name
WEBSPHERE APP S
Reported component ID
5724J0800
Reported release
900
Status
CLOSED SUG
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2018-01-11
Closed date
2018-03-05
Last modified date
2021-07-21
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Applicable component levels
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
01 November 2021