Search This Blog

Friday, April 27, 2012

“REP-0004: Warning: Unable to open user preference file” while running reports.

=*=*=*=*=* Error: REP-0004
Text: Warning - "Unable to open user preference file". while running reports.

=======================================================================
Cause:

Your local (customized) Oracle Reports preference file could not be opened.
This is just a warning, so the product will continue to run even if this occurs.
The possible causes of this error include the following:

Case 1: The file was not found under the specified name in the specified location.

Case 2: You lacked the necessary privileges to open the file.

Case 3: A system error made it impossible to open the file.

Action:

You can take the following actions to rectify this error:

Case 1: Make sure the file prefs.ora is located in your "home" directory.

Case 2: Make sure that you have the privileges necessary to access the file. If you don't, change your privileges accordingly.

Case 3: Consult your operating system documentation or contact your system administrator.

======================================================================

The preferences file referred to above is:

Windows
ORACLE_HOME\CAUPREFS.ORA (user preferences)
ORACLE_HOME\CAGPREFS.ORA (global preferences)

UNIX
your_home_directory/prefs.ora (user preferences)
$ORACLE_HOME/tools/admin/prefs.ora (global preferences)

=====================================================================
Simple Way:

Check whether u have prefs.ora file in your application user's home

eg: prefs file should be in /home/applmg/prefs.ora

if not please copy prefs.ora file from  $ORACLE_HOME/tools/admin/prefs.ora  to /home/applmg/prefs.ora location.

Run your concurrent request/program.

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* =*=*=*=*=* =*=*=*=*=* =*=*=*=*=* =*=*=*=*=* =*=*

Tuesday, February 21, 2012

Applying OPATCH

OPATCH:


OPatch is a Database Patch.
OPatch is applied at the database level.


OPatch is the Oracle database's Interim (one-off) Patch Installer.
If OPatch is not installed into your Oracle Home ($ORACLE_HOME/OPatch), you may need to download it from Metalink and install it yourself.


To check whether the OPatch is already installed or no.

cd $ORACLE_HOME/OPatch

Please download latest OPatch Tool and extract the RDBMS Oracle home.

Eg: $opatch -lsinventory

This is command will show existing patch

Check opatch version using

Eg: $opatch -v

$opatch -help
Invoking OPatch 10.2.0.4.2

Oracle Interim Patch Installer version 10.2.0.4.2
Copyright (c) 2007, Oracle Corporation.  All rights reserved.


Usage: opatch [ -help ] [ -r[eport] ] [ command ]

   command := apply
                       lsinventory
                       napply
                       nrollback
                       rollback
                       query
                       version
                       prereq
                       util

<global_arguments> := -help       Displays the help message for the command.
                       -report     Print the actions without executing.

 example:
   'opatch -help'
   'opatch apply -help'
   'opatch lsinventory -help'
   'opatch napply -help'
   'opatch nrollback -help'
   'opatch rollback -help'
   'opatch prereq -help'
   'opatch util -help'

OPatch succeeded.




Pre-checks before apply opatch:

CHEK1: DB and Listener both must be down as opatch will update your current ORACLE_HOME with patches.
In single instance its not possible.but for RAC instance its possible. In RAC there will be two separate oracle home and two separate instances running once

instance on each oracle_home

use this command:

opatch napply -skip_subset -skip_duplicate -local -oh $ORACLE_HOME


using -local parameter and -oh $ORACLE_HOME --> means this patch session will only apply patch  to current sourced ORACLE_HOME.

Export the following environmental file:

$ export ORACLE_HOME=/UAT/app/oracle
$ export PATH=$PATH:$ORACLE_HOME/OPatch:$ORACLE_HOME/bin
$ export OBJECT_MODE=32_64

$cd patch/

Extract the Following OPatch.
p1234567_10203_LINUX.zip
p2345678_10203_LINUX.zip

1234567
2345678

Then Go to patch Directory and apply the Opatch.
$ cd 1234567/


$ opatch apply



Steps for applying opatch:

STEP1: check the database status.


select name,open_mode,database_name,created,log_mode,platform_name from v$database;


-------------------------------

STEP2: Check the object's invalid.

SELECT owner,COUNT(*) FROM dba_objects WHERE status = 'INVALID' GROUP BY owner;


-------------------------------

STEP3: count the invalid object's.

select count(*) from dba_objects WHERE status ='INVALID';

-------------------------------

STEP4: Take backup of invalid's


create table bk_inv_ as select * from dba_objects where status='INVALID';
-------------------------------


STEP5: check opatch version using


$opatch -v

if opatch version is not compatible check the read-me file and download the latest version and uncompress in $ORACLE_HOME.
--------------------------------


STEP6: check oraInst.loc file pointing to your current $ORACLE_HOME or not.



$cat /etc/oraInst.loc

inventory_loc=/u01/app/oracle/10.2.0/GlobalOraInv
inst_group=dba

if your server have more then one $ORACLE_HOME then comment the other $ORACLE_HOME and uncomment the current $ORACLE_HOME inventory must point to the current

$ORACLE_HOME which is getting patched.
----------------------------------


STEP7: check free space on $ORACLE_HOME

df -h $ORACLE_HOME

---------------------------------


STEP8: chek the utilities like

which ld
which ar
which make
etc as per readme file.

--------------------------------

STEP9: unzip the patch

unzip -d /loc_unzip p.zip

---------------------------------

STEP10: Go the patch directory

cd /loc_2_unzip/patch_number

----------------------------------

STEP11: Bring down the listner.
sql> shut immediate
LSNRCTL stop LISTNER

----------------------------------


STEP12
: Bring down the database
Shutdown immediate.

-----------------------------------

STEP13: export opatch
export PATH=$PATH:$HOME:$ORACLE_HOME/OPatch:/bin

-----------------------------------

STEP14: Start the patch
opatch napply -skip_subset -skip_duplicate

for RAC database then database can be up as it may be having more then one instance
so you can bring down one instance and listener and apply the patch and open it and then do the same on another node.
like this db will be up and no user will face issue in outage also.

to apply opatch in RAC instance
opatch napply -skip_subset -skip_duplicate -local -oh $ORACLE_HOME

when using -local parameter and
-oh $ORACLE_HOME this means this patch session will only apply patch to current ORACLE_HOME only.

--------------------------------------------------------
. All-Node Patch

. Shutdown all Oracle instances on all nodes
. Apply the patch to all nodes
. Bring all nodes up

. Minimum downtime

. Shutdown the Oracle instance on node 1
. Apply the patch to the Oracle instance on node 1
. Shutdown the Oracle instance on node 2
. Apply the patch to the Oracle instance on node 2
. Shutdown the Oracle instance on node 3
. At this point, instances on nodes 1 and 2 can be brought up
. Apply the patch to the Oracle instance on node 3
. Startup the Oracle instance on node 3

. (no downtime)

. Shutdown the Oracle instance on node 1
. Apply the patch to the Oracle instance on node 1
. Start the Oracle instance on node 1
. Shutdown the Oracle instance on node 2
. Apply the patch to the Oracle instance on node 2
. Start the Oracle instance on node 2
. Shutdown the Oracle instance on node 3
. Apply the patch to the Oracle instance on node 3
. Start the Oracle instance on node 3
---------------------------------------

STEP15: Once patch installation is completed need to do post patching steps.

a) starup the instance
startup

b) Loading modified sqlfiles into the database.
@$ORACLE_HOME/rdbms/admin/catbundle.sql cpu apply

to check the logs generated
catbundle_CPU__APPLY_.log
catbundle_CPU__GENERATE_.log

c) Recompiling Views in the Database
shutdown immediate
startup upgrade
@$ORACLE_HOME/cpu/view_recompile/view_recompile_jan2008cpu.sql
shutdown immediate
startup

If it is a RAC instance.
shutdown
startup nomount
alter database set cluster database=false scope=spfile;
shutdown
startup upgrade
@?/cpu/view_recompile/view_recompile_jan2008cpu.sql
shutdown
startup
alter database set cluster database=true scope=spfile;

restart the database.
cd $CRS_HOME/bin
srvctl start database -d

--------------------------------------


STEP16: If any invalid objects were reported, run the utlrp.sql script as follows


SELECT owner,COUNT(*) FROM dba_objects WHERE status = 'INVALID' GROUP BY owner;


select count(*) from dba_objects WHERE status ='INVALID';

if any new invalids seen then again take backup of invalid objects and compile it.

create table bk_inv_ as select * from dba_objects where status='INVALID';

@?/rdbms/admin/utlrp.sql --- to compile the invalid objects.

--------------------------------------

STEP17: Confirm that patch has been applied successfully or not at db level also.


post_patch.sql
--------------
col action_time for a40
col action for a15
col namespace for a15
col version for a15
col comments for a40
set pages 1000
set lines 170
select * from registry$history;
-----------------------------------


Reference:
------------

OPatch documentation list
Meta-link ID: 293369.1

Tuesday, February 14, 2012

Adrelink is exiting with status 1:

Issue:

adrelink is exiting with status 1: In 11i/R12  & RHEL 5.4 while patching
 
Fix:
 
STEP1:  cd $AD_TOP/bin

STEP2:  Take backup of the existing adrelinknew.sh

cp -rp  adrelinknew.sh  adrelinknew.sh_orig

STEP3: Edit the adrelinknew.sh

 vi adrelinknew.sh

Change CPP_LDFLAGS  as below
 
From:

CPP_LDFLAGS=' -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/lib/stubs -lclntsh'

 To:  

#CPP_LDFLAGS=' -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/lib/stubs -lclntsh'
CPP_LDFLAGS=' -L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/lib/stubs -lclntsh -Wl,--noinhibit-exec'

:wq! --> save & exit

  
STEP4: Reapply the patch, now the patch will complete successfully.
 
--noinhibit-exec

    Retain the executable output file whenever it is still usable. Normally, the linker will not produce an output file if it encounters errors during the link process; it exits without writing an output file when it issues any error whatsoever.

    -w --words print the word counts
    -l --max-line-length print the length of the longest line

Tuesday, February 7, 2012

R12 Applications shows a blank page.

R12 Ebiz shows you a blank screen.

To change this behavior in R12, we can follow these steps:
For each AppsTier server perform the following:

Step1: Bring down the application services.

Step2: Change the value for the entry "s_jsp_main_mode" in context_file from justrun to recompile

Example:

[appldev@123 ~]$ echo $CONTEXT_FILE
/u01/app/oracle/inst/apps/DEV_123/appl/admin/DEV_123.xml


[appldev@123 ~]$ ps -ef |grep main_mode $CONTEXT_FILE
justrun

Confirm the Action and save.

Step3: Run AutoConfig to push the changes to $INST_TOP/ora/10.1.3/j2ee/oacor/application-deployments/oacore/html/orion-web.xml

Step4: Verify that the changes have been made to orion-web.xml

main_mode recompile

Step5: Restart the apps services.

Step6: Clear your browser cache

Step7: Launch the new .jsp as http://www.myhost.mydomain.com:myport/

AutoPatch error: ERROR [code=11] Running adjcopy.class

Issue:

Running adjcopy.class:

adjava -mx1024m -nojit oracle.apps.ad.jri.adjcopy @/u01/oracle/DEV/apps/apps_st/appl/admin/DEV/out/apps.cmd
stat_low = B
stat_high = 0
emsg:was terminated by signal 11

AutoPatch error:
ERROR [code=11] Running adjcopy.class


AutoPatch error:
Error updating master archive


An error occurred while Updating Oracle Applications Java files if necessary.
Continue as if it were successful [No] :

FIX

Solution: Run the adrelink

$ adrelink.sh force=y ranlib=y "ad adjava"

Check the log file.

view /u01/oracle/DEV/apps/apps_st/appl/admin/log/adrelink.log

Once the adrelink completes successfully rerun the patch. This will resolve the issue.

Thursday, January 19, 2012

Disaster Recover (DR) Tips

Query to check the current Log generated.

SQL> select max(fhrba_seq) from x$kcvfh;

MAX(FHRBA_SEQ)
--------------
25640

Where

FHSTA file-header status of the datafile

The table X$KCVFH is a fixed table in Oracle. It stores the file headers along with their statuses. The name is derived from:

K – Kernel layer
C – Cache layer
V – RecoVery component
FH - File Header





Manual Standby Database under Oracle Standard Edition

Oracle's Standby technology has been rebranded as DataGuard in recent versions of Oracle. Oracle has added a layer of technology automation on top of the standby technology, making automatic Standby technology seamless. But what about the folks on Standard Edition Oracle? Are they left out in the cold?

Well, it turns out that it is still possible to create a *manual* standby database on Oracle SE. Here's how you do it.

1. First you need to create the initial standby database. Here are the steps to do that:

a. Put the primary database in archivelog mode, if it is not already, and add at least LOG_ARCHIVE_DEST and LOG_ARCHIVE_START to your init.ora.

SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP MOUNT
SQL> ALTER SYSTEM ARCHIVE LOG START;

b. Next, create a hotbackup of the primary database. Although you can do this with RMAN, it is probably easiest to just do it manually so you know what is going on. For each tablespace do:

SQL> alter tablespace EXAMPLE begin backup;
SQL> !cp example01.dbf /my/db/backup/
SQL> !cp example02.dbf /my/db/backup/
SQL> !cp example03.dbf /my/db/backup/
SQL> alter tablespace EXAMPLE end backup;

In the above example, the '!' symbol tells sqlplus to run the command from the shell, so we're using the Unix 'cp' command to make copies of those files (which are now frozen in backup mode) in another location.

c. Now, create a standby controlfile from primary database:

ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/oracle/dbs/stbycf.ctl';

d. At this point, you want to copy everything over to the standby server including datafiles, standby controlfile & config files:

$ scp /my/db/backup/*.dbf oracle@192.168.0.10:/export/home/oracle/

e. From the standby machine, edit the standby init.ora file. Use this parameter to tell Oracle where files on the primary database will be located on the standby. For example if you had files in /ora/oracle on primary, and they are moved to /export/home/oracle on standby, this would work for you:

DB_FILE_NAME_CONVERT='/ora/oracle','/export/home/oracle'

Note that you can use MULTIPLE pairs of values here, if you have files in different locations. Alternatively, you can startup and mount the standby database then issue:

SQL> alter database rename file '/ora/oracle/myfile.dbf' to /export/home/oracle/myfile.dbf' as an example.

Now you're also likely to have a new location for your archived redo log files, and that's where the parameter LOG_FILE_NAME_CONVERT comes into play.

Important note, neither of these two parameters work for the ONLINE redolog files. Those you will have to rename yourself. If you do not do so, you will get an error at the time you try to SWITCHOVER your standby database. Such errors are easily remedied by running that command.

f. Now, it's time to start the standby instance and mount it.

SQL> startup nomount pfile=/export/home/oracle/admin/SEAN/pfile/initSEAN.standby
SQL> atler database mount standby database;

g. Almost there. Lastly, we need to recover the standby database using the AUTO option. Note that you should build a simple shell script to startup sqlplus and run these commands. A name like manual_standby.sh would work well. You can then run this periodically, say every half hour, from cron to apply any new archived redolog files that have showed up via move_standby.sh below.

SQL> recover standby database;
AUTO

h. Now, of course, you'll want to test your standby database. You do this by starting up in read-only mode.

SQL> alter database open read only;

i. Don't forget to put it back in standby mode so that when your manual_standby.sh script runs from cron, it won't return errors.

SQL> shutdown immediate;
SQL> startup nomount pfile=/export/home/oracle/admin/SEAN/pfile/initSEAN.standby
SQL> atler database mount standby database;

2. What scripts should run via cron on the primary and standby database?

As we mentioned earlier, a script called manual_standby.sh would work well on the standby database. This script applies new archived redologs that have arrived from the production system. Run it every half hour and see how that works for you. The database must be mounted in standby mode (not read-only) or this script will fail.

You'll also want a script on the production server. Name it move_standby.sh, and run it every thirty minutes to start with. This can use rsync to move redolog files from production to standby. A command like this would work:

$ rsync -e ssh -Pazv /ora/oracle/arch/ oracle@remote:/export/home/oracle/arch/

Note that you may want to adjust options to ssh to your needs. In addition, this presumes you have ssh autologin configured. Read up on the ssh-keygen command. The .ssh directory contains a public key, which is shipped over to the standby machine, and put in the "authorized_keys" file. ssh will then login without a password. Rsync uses ssh as the transport mechanism, so it also executes without a password. Rsync is very smart and only copies blocks and pieces of files that are different, so it is very fast, and also does checksums to guarantee consistency.

3. Is the standby database behind the production database?

Yes, keep in mind we are creating a manual standby database. The standby database will tend to be behind production by about half the size of a redolog file. So if those files are 100M, and you generate 100M of transactions in 30 minutes, then on average standby will be fifteen minutes behind.

4. What types of changes and statements on production will not be automatically applied to standby?

In database parlance, any PHYSICAL changes to the db, plus any commands, issues with the NOLOGGING option. Physical changes include creation of new tablespaces, adding new datafiles, renaming datafiles, autosizing of datafiles, altering redolog files, altering controlfiles and so on. In addition, primary database processes or commands using the UNRECOVERABLE option will not be propagated to the standby database.

There are specific and detailed instructions for making some of these physical changes on the standby db manually, however in many cases recreating the entire standby database per the instructions above, might be the best option.

5. How can we verify that the standby database is up to date?

If you already have the manual_standby.sh script running from cron, disable it.

Then login with sqlplus and issue:

SQL> alter database open read only;

Now that you have the database open read-only, run whatever SQL commands you want to in order to verify some change which you know about on production. When you are done, shutdown, and startup in standby mode again. Don't forget to reenable manual_standby.sh in the crontab.

6. What happens if the standby system restarts?

You could have it automatically start the standby database. In that case, be sure to just check the logfiles. If you want to do it manually in those instances, fire up sqlplus and then issue:

SQL> startup nomount pfile=/export/home/oracle/admin/SEAN/pfile/initSEAN.standby
SQL> alter database mount standby database;

7. What kind of messages can I expect to see in the standby alert.log?

The alert.log is going to have a lot of extra messages since we are repeatedly trying to RECOVER when there may or may not be new transaction logs. When it does this it will say, "looking for archived logfile 1_356.dbf, not found". On the other hand, if it finds it, it will say that it is applying it. You can use unix commands "grep" and "less" to scan through the alert.log file quickly.

8. What other scripts should be put in place?

a. a script to cleanup old archived redo logs on primary.

b. a script to cleanup old archived redo logs on standby

c. a script to rotate and archive the alert.log file when it gets large

d. a script to watch the alert.log file for ORA-xxxxx errors and report them to nagios if it finds any (on both primary and standby)

e. a script to login (via ssh autologin) and check what the latest archived redolog file is, and then also login to the standby and check the alert.log file to verify that those transactions have been applied.

9. How do we switchover in the event of a failure of the primary?

Switchover *can* be done with a script, however I recommend with our manual standby database that you (a) monitor for emergencies on production and (b) manually perform the failover if necessary. This will avoid false positives. Also, it allows you to ship additional redolog data if you have it available from production.

The switchover is a two-step process.

a. Apply remaining redo as we have done before with commands in manual_standby.sh.

b. Startup the database normally, in a read-write mode.

10. What network changes need to happen to failover?

The listener.ora file should be already configured. You can use the same config as primary with a different IP, or you can give this db a different tnsname. For instance, you could call primary SEANA and standby SEANB. Then in your application server configs, when you failover, your database connection configurations need to be updated to point to SEANB. The app servers will probably also need to be restarted at this point.

11. Why can't the primary ship redologs and synchronous changes?

Basically they call it a *manual* standby database for a reason. DataGuard supports options that look like the following:

LOG_ARCHIVE_DEST_3='SERVICE=stby1 LGWR SYNC AFFIRM'
LOG_ARCHIVE_DEST_STATE_3=ENABLE

Again, these are not available in Oracle SE.

12. Once we've failed over, how do we switch back to the primary?

Switching back to the primary database involves these steps:

a. Follow the steps in item 1 above to create a standby database on what was the primary system.

b. If you want to be perfectly clean syncing, do the following:

SQL> shutdown immediate
SQL> startup restrict
SQL> alter system switch logfile
SQL> shutdown immediate

c. Copy over the last archived redolog files

d. Apply them and switchover as described in item 8 above.

13. Are there special init.ora parameters? What makes our standby database special?

The main two things that make it a standby database are:

a. The standby control file (created from primary)

- alter database create standby controlfile as '/my/path/to/standby.ctl

b. The process of mounting as a standby database

- startup nomount pfile=standby.ora

- alter database mount standby database;

There are of course some init.ora parameters which are special for the standby database as well:

DB_FILE_NAME_CONVERT
LOG_FILE_NAME_CONVERT

So if you do a "shutdown immediate" on the standby, you would start again with:

SQL> startup nomount pfile=/export/home/oracle/admin/SEAN/pfile/initSEAN.standby
SQL> alter database mount standby database;   

Conclusion:

Standby database technology in Oracle is a powerful high availability solution. Even if you're using Oracle SE, you can still take advantage of these features built into Oracle, with just a little scripting, hand holding, and ample monitoring. Do your research, test, test, and test again on a development server. And don't forget to monitor all your logfiles for errors. Following these guidelines, you should be in very good shape, at a much lower cost.

Tuesday, November 8, 2011

Role of APPLSYSPUB, GUEST, APPLSYS, APPS users:

Role of APPLSYSPUB user/schema in Oracle Applications:

When we login to applications,initially oracle applications connect to public schema, APPLSYSPUB. This schema has sufficient privileges to perform the authentication of an Applications User (FND user), which includes running PL/SQL packages to verify the username/password combination and the privilege to record the success or failure of a login attempt.

  • The public ORACLE username and password that grants access to the Oracle E-Business Suite initial sign-on form. The default is APPLSYSPUB/PUB.
  • Once we change the APPLSYSPUB password must propagate the change to application tier configuration files. If the instance is Autoconfig enabled, must edit the CONTEXT file on each tier prior to running Autoconfig.
  • In the CONTEXT file, locate the autoconfig variable “s_gwyuid_pass” and set it to the new password, then run AutoConfig in each applications nodes.

When Autoconfig is not being used:

If you are not using Autoconfig you must manually edit the following configuration files :

1) FND_TOP/resource/appsweb.cfg
2) OA_HTML/bin/appsweb.cfg
3) FND_TOP/secure/HOSTNAME_DBNAME.dbc


To change password of APPLSYSPUB with FNDCPASS:

$FNDCPASS APPS/[apps_pass] 0 Y SYSTEM/[system_pass] ORACLE APPLSYSPUB [new_passs].


0 & Y are flags for FNDCPASS
0 is request id (request ID 0 is assigned to request ID's which are not submitted via Submit Concurrent Request Form)
'Y' indicates that this method is directly invoked from the command-line and not from the Submit Request Form.

  • All application tier processes (Apaches) must be restarted following the password change.


Role of GUEST user/schema in Oracle Applications:

  • GUEST is a dummy schema.
  • By default it has ORACLE as password.
  • GUEST/ORACLE password is present in DBC file at $FND_TOP/secure directory as well as at $FND_TOP/secure/SID_hostname directory.
  • If a user logs in without any role mappings, the user will get the Guest role, which has a default permission of "R".
  • GUEST user is used by JDBC Drivers and Oracle Self Service Web Applications like istore, irecruitment, iprocurement, ipayables, ireceivables etc to make initial Connection.

Role of APPLSYS & apps user/schema in Oracle Applications:

  • APPLSYS user is same as other oracle users like AP, AR, GL etc which hold their set of tables, views etc. In the same manner APPLSYS Account holds its set of tables like FND_USER and FND_APPLICATION, AD_APPLIED_PATCHES etc.
  • Applsys schema has applications technology layer products like FND and AD etc.
  • Apps is a universal schema, it has synonyms to all base product tables and sequences. This also has code objects for all products (triggers, views, packages, synonyms etc).
  • APPS is central Schema which holds synonyms for all other Users Database Objects.

Note: APPLSYS and APPS should have same password.

Reason why these contains same password.

Both apps & applsys need to have same password because when you sign on to apps, initially it connects to a public schema called APPLSYSPUB. This validates AOL name and password that we enter (operations/welcome). Once this is verified we select responsibility, this is validated by APPLSYS schema and then it connects to apps schema.

During signon process it uses both applsys and apps, hence this expects both the password to be identical. If the password for applsys & apps are not identical (Different) Try changing apps password to something else and try to login, the validation at the last stage would fail. This would result in failure of application login.

Difference B/W APPLSYSPUB & GUEST:

  • APPLSYSPUB/PUB - is DB user which is used by any utility to retrieve APPS schema password for further logins.
  • GUEST/ORACLE - is EBS user with no or max limited privileges to execute authorization function.