Sunday, September 28, 2014

Oracle EBS-Blank Page Appslogin/AppsLocal Login Page in R12


There were quite a few times that I have encountered this blank front-end issue. The root cause was not the same every time it was investigated. There are many reasons for this issue to occur which I have compiled to make it easier for Apps DBA’s. Listed below are some of them.
Here is the error page while logging into Oracle E-Business Suite front end.
ebsblog2_1ss
These are some of the main reasons for the APPS blank login page in R12:
  • JSP pages not compiled properly after the clone
  • Data block corruption on Cloned environment with bulk synchronization issues
  • Database Listeners are down
  • Archive log space is full
  • DB or APPS file system is Full including /tmp location
  • Java Cache issues between the multiple middle-tiers
Here are different scenarios and work around/Fixes:
Scenario 1:  After the clone if any of the users experience user login issues other than super user with the below error message then please follow the steps in scenario 1.
The login in page may show Http-500 Internal server error (or) Http-404
1.       http 500 internal server error:
500 Internal Server Error
java.lang.NoClassDefFoundError
at oracle.apps.fnd.sso.AppsLoginRedirect.doGet(AppsLoginRedirect.java:623)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26)
Solution: (from Application Tier)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$cd $ADMIN_SCRIPTS_HOME
 
$adopmnctl.sh stopall — to shutdown opmn managed services viz., opmn, forms, oacore & oc4j
 
 $ cd $COMMON_TOP/_pages
 
$ mv _pages _pages_old
 
$mkdir _pages
 
 $ cd $FND_TOP/patch/115/bin or export PATH=$FND_TOP/patch/115/bin:$PATH
 
Compile all jsps.
$perl ojspCompile.pl –compile –flush -p 2 (or) ojspCompile.pl --compile --fast --quiet
(-p represents parallel threads, if you have enough horse power on your server, you can increase it to 8 or 10)
 
$cd $ADMIN_SCRIPTS_HOME
 
adopmnctl.sh startall
OR:
ORA-01578: ORACLE data block corrupted (file # 23, block # 221085)
ORA-01110: data file 23: ‘/RDBMS ORACLE_HOME/app/a_txn_data02.dbf’
ORA-26040: Data block was loaded using the NOLOGGING option
Solution: Login as apps user
Sqlplus apps/apps_password
1
2
3
4
5
6
7
8
9
10
11
12
13
set serveroutput on size 100000;
 declare
 begin
 WF_LOCAL_SYNCH.BULKSYNCHRONIZATION(
 P_ORIG_SYSTEM => 'ALL',
 P_PARALLEL_PROCESSES => null,
 P_LOGGING => null,
 P_RAISEERRORS => TRUE);
 exception
 when others then
 dbms_output.put_line('sqlerrm = ' || sqlerrm);
 end;
 /
Scenario 2: Database Listener is down
ebsblog2_2ss
Solution:  Start the database listener.
Scenario 3: Database Archive Locaion is 100% full or any mount point or tmp location is full(including concurrent log and output storage mount point)
Solution: Either temporarily move the files/archivelogs to another location or delete older files/archives (provided you had taken a cold backup sometime).
Scenario 4: IAS Cache initialization failed
This issue occurs only if you have more than one middle-tier and you had enabled Distributed Java Caching.
Error Message in log file(logfile resides in $LOG_HOME)
Exception in static block of jtf.cache.CacheManager. Stack trace is: oracle.apps.jtf.base.resources.FrameworkException:
IAS Cache initialization failed.
The Distributed Caching System failed to initialize on port: 12357.
The list of hosts in the distributed caching system is: [node 1] [node 2].
The port [port no] should be free on each host running the JVMs.
at oracle.apps.jtf.cache.IASCacheProvider.init(IASCacheProvider.java:214)
at oracle.apps.jtf.cache.CacheManager.activateCache(CacheManager.java:1451)
In this scenario, s_java_object_cache_port value was listening on node 2 but not on node 1. So whichever connection went to node 1 it returned a blank page and occasionally it displayed 500 Internal Server error.
Solution:
Autoconfig
1)      Bring down opmn services on both the boxes.
1
2
3
$cd $ADMIN_SCRIPTS_HOME
 
$adopmnctl.sh stopall — to shutdown opmn managed services viz., opmn, forms, oacore & oc4j
2)       Verify no process is listening for s_java_object_cache_port value.
(To check the s_java_object_cache_port processes:
1
netstat -an | grep | grep LISTEN
Command to identify the OS process associated with a port
lsof -i tcp: )
3)       Change s_java_object_cache_port on all the nodes in the context file
4)      Run autoconfig
Non-Autoconfig
s_java_object_cache_port value is referrenced in two places
1) $INST_TOP/ora/10.1.3/javacache/admin/javacache.xml
2) Profile option name JTF_DIST_CACHE_PORT
Change the port value to a new number and bounce opmnctl services. Dont forget to change it in $CONTEXT_FILE. (To take effect during next autoconfig)
Verification:
Use commands listed in step 2 of autoconfig option.
If the new port mentioned still doesnt listen on the boxes you can use below workaround. This workaround will resolve the “IAS Cache initialization failed” even if the port is not listening.
Workaround
Set LONG_RUNNING_JVM=false in $INST_TOP/ora/10.1.3/j2ee/oacore/config/oc4j.properties
Bounce opmn services.
In 11i, if the database listener is down or if the archive location is full, atleast we get the internal server page while trying to access the login page, but in R12 nothing happens except for the blank page and apache error log will have an entry “oc4j_socket_recvfull timed out” with additional error message mod_oc4j: request to OC4J [mid-tier servername:ajp port] failed: Connect failed

No comments: