JSP Pages Hanging in R12 After Removing Cached Class Files in _pages (Doc ID 433386.1)

Applies to:

Oracle Applications Technology Stack – Version 12.0.6 to 12.1.3 [Release 12.0 to 12.1]
Information in this document applies to any platform.
***Checked for relevance on 03-April-2013***

Symptoms

In Release 12 after removing a compiled class files from the JSP pages in the directory $COMMON_TOP/_pages and then bouncing the 10GiAS server, calling JSP pages results in a hanging ‘blank’ screen.

In Release 11i when performing the same steps, new class files are created automatically when the JSP page is called from a browser session and JSP was rendered fine.

In Release 12 it’s observed that when calling the JSP no class file is created in the directory $COMMON_TOP/_pages

Changes

Removing a class files from $COMMON_TOP/_pages

Cause

The root-cause of the hang is the fact that the JSP is not ‘translated’ into the associated class file in the _pages directory. This is a mandatory step for processing the JSP page.

The reason this is not happening in R12 is because of the following setting the $INST_TOP/ora/10.1.3/j2ee/oacore/application-deployments/oacore/html/orion-web.xml

<init-param>
<param-name>main_mode</param-name>
<param-value>justrun</param-value>
</init-param>
</servlet>

When main_mode = justrun the OC4J container running the OACoreGroup is told that no compilation on the fly is allowed and only (pre)compiled classes are picked up. Since these have been removed, the processing of the JSP page is blocked.

Solution

Use the ojspcompile.pl perl script to perform a manual pre-compilation of the JSP pages. The following command will compile all the JSP pages and build up the JSP cache again.

Unix: # perl $FND_TOP/patch/115/bin/ojspCompile.pl –compile –flush -p 2

Windows: C:> perl -x <FND_TOP>\patch\115\bin\ojspCompile.pl -compile -flush

This utility is also used by the AD utilities to perform this action such as when patches are applied that replace one or more JSP pages.  See Note:215268.1 for other command line options and examples.

An alternative is to change the value for the main_mode parameter to recompile (instead of justrun)

This can be achieved with the following steps

  • Use the Context editor to change the value for “s_jsp_main_mode” in the <SID>_<hostname>.xml file used by autoconfig and change value from justrun to recompile
  • Run Autoconfig to propagate the changes to the configuration files
  • Verify that now the $INST_TOP/ora/10.1.3/j2ee/oacore/application-deployments/oacore/html/orion-web.xml  has

    <init-param>
    <param-name>main_mode</param-name>
    <param-value>recompile</param-value>
    </init-param>

  • Test the scenario failing before.
  • See that now a new _<jspname>.class is created when the JSP page is called.
For production environment the manual ‘ojspcompile.pl’ method is recommended for the following reasons

  • With ‘justrun’ a fixed set of JSPs are used which will not automatically change. With ‘recompile’ the JSP pages replacing existing ones will recompile automatically while the environment is up and running.  This may lead to errors for the users when compilation fails or in having different versions of the JSP being used within a single session.
  • Using ‘justrun’ improves performance by skipping the check for compilation being needed.
Advertisements