Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps

Thursday, February 7, 2008

oracle.apps.fnd.sso.AppsLogin was not found

In an instance, when I clicked on the Oracle Applications Manager link: http://www.justanexample.com:8000/servlets/weboam/oam/oamLogin

The following error appeared:

HTTP 404 Not Found
The requested URL /oracle.apps.fnd.sso.AppsLogin was not found on this server.

The browser showed this in the site address field:

http://www.justanexample.com:8000/oracle.apps.fnd.sso.AppsLogin?requestUrl=/oa_servlets/weboam/oam/oamLogin&cancelUrl=http://11ioltp.justanexample.com:8069/oracle.apps.fnd.sso.AppsLogin

I compared this with a working instance where the address filed shows this:

http://www.anotherexample.com:8001/OA_HTML/AppsLocalLogin.jsp?requestUrl=
http%3A%2F%2Fwww.anotherexample.com%3A8068%2Foa_servlets%2Fweboam
%2Foam%2FoamLogin&cancelUrl=http%3A%2F%2Fwww.anotherexample.com
%3A8068%2Foa_servlets%2Foracle.apps.fnd.sso.AppsLogin&s2=
498FD27D425A66475CD8CD04DEE6BE5659B6DA334C5F84414D175249D8DFEB4C

Examining the Apache logs revealed this error:

[Thu Feb 7 23:25:54 2008] [error] [client 192.168.10.38] File does not exist: $COMMON_TOP/portal/$CONTEXT_NAME/oracle.apps.fnd.sso.AppsLogin

Why is it not giving the oa_servlets by default. Why is it going to portal ? It should go to http://justanexample.com:8000/oa_servlets/oracle.apps.fnd.sso.AppsLogin, but instead it is going to http://justanexample.com:8000/oracle.apps.fnd.sso.AppsLogin. This is resulting in apps looking for this class in $COMMON_TOP/portal instead of looking for it in $COMMON_TOP/java.

I logged an SR with Oracle for this and they suggested :

1. Please change the profile option "Apps Servlet Agent" at server level to have the same value a
s at Site level, i.e. it should be:
http://justanexample.com:8000/oa_servlets

2. Bounce Apache.

3. Retest the issue and advice the results.

Even without bouncing Apache, it started working. However the error still came when we try to logout of OAM or Self Service:

HTTP-404 Not Found
The requested URL /oracle.apps.fnd.sso.AppsLogout was not found on this server.

Oracle asked me to do this:

ACTION PLAN
============
1. Please review Note 364439.1 - "Tips and Queries for Troubleshooting Advanced Topologies", section "The Profile Options Query".

After I ran this query in the instance where everything was fine and the instance where it was failing, I realized that all the 130 profile values under the profile (D)-Apps Servlet Agent was missing /oa_servlets

Boiling it down to this query:

Instance where this error was occuring:

select profile_option_value
from fnd_profile_option_values
where profile_option_id=3804
and profile_option_value='http://justanexample.com:8000';

PROFILE_OPTION_VALUE
--------------------------------------
http://justanexample.com:8000
http://justanexample.com:8000
http://justanexample.com:8000
.
.
.
34 rows selected

Instance which was showing OAM page ok the result of query was:

PROFILE_OPTION_VALUE
----------------------------------------------------
http://www.anotherexample.com:8001/oa_servlets
http://www.anotherexample.com:8001/oa_servlets
http://www.anotherexample.com:8001/oa_servlets
http://www.anotherexample.com:8001/oa_servlets
http://www.anotherexample.com:8001/oa_servlets

5 rows selected

So the simple solution is to run an update command:

update fnd_profile_option_values
set profile_option_value='http://justanexample.com:8000/oa_servlets'
where profile_option_id=3804
and profile_option_value='http://justanexample.com:8000'

Bounce Apache after this and it works.

6 comments:

Atul Kumar said...

Did someone tried integrating this server with SSO Server ?


Atul Kumar
http://onlineappsdba.com

Vikram Das said...

Hi Atul,

No one has tried integrating this with SSO server as we do not have one in our environment. The class oracle.apps.fnd.sso.AppsLogin is the standard class used for login. The problem here is that instead of forming the URL as http://justanexample.com:8000/oa_servlets/oracle.apps.fnd
.sso.AppsLogin it is forming it without /oa_servlets
http://justanexample.com:8000/oracle.apps.fnd
.sso.AppsLogin
which is forcing Apache to look for the class in $COMMON_TOP/portal directory instead of $COMMON_TOP/java directory.

- Vikram

Anonymous said...

Any problem with "Apps Servlet Agent" profile option?

Vikram Das said...

Hi Periyaswamy,

The Apps Servlet Agent is set at site level as http://justanexample.com:8000/oa_servlets

Nothing wrong with this as it is the same as other working instances.

- Vikram

Sundeep Dubey said...

Vikram , this is with Apps Servlet Agent profile only. Is it a refresh instance, if yes check orphan profiles if you have any. This may cause this issue.

Sundeep Dubey

Vikram Das said...

Hi Sundeep,

You are right. The problem was with the APPS Servlet Agent. But since production is extranet enabled and the current instance with the problem is a clone of that, if I query for this profile option instead of returning 1 row, it returns 42 rows. So I did not know which ones to update. However I figured out a way which works. I have given the update query in the post now.

- Vikram