Identifying Various Services Running on Application Node

No comments
The services running application nodes can be find by fnd_nodes tables as mentioned in my previous blog about the FND_NODES table.
But Here I will explain how to determine the services running by checking the context file. Context file is a best place from which one can learn about the Apps.
We can check the following context file parameter from context file and determine the services which are running.


s_isDB
If parameter value is yes the Database is running on that particular node.
s_isAdmin
If parameter value is yes the Admin services running on that particular node.
s_isWeb
If parameter value is yes the Web services running on that particular node. like Apache ,HTTP
s_isForms
If parameter value is yes the Form services running on that particular node.
s_isConc
If parameter value is yes the Concurrent services running on that particular node.
s_isAdadmin
If parameter value is yes the APPL_TOP is used for Oracle Application.
s_isAdWeb
If parameter value is yes the APPL_TOP is used for Web services.
s_isAdForms
If parameter value is yes the APPL_TOP is used for Form Services.
s_isAdConc
If parameter value is yes the APPL_TOP is used for Concurrent Services.


Note:
The parameter s_isDB will be No if we are checking the on application node. And will be yes on the Database Node.

In the shared APPL_TOP architecture we can find all the parameters to be yes in all nodes except  s_isDB.

Example:
If we grep the parameters from Context file .

In Application Node 
grep s_is  TEST_test0123.xml

 Output:
         <TIER_DB oa_var="s_isDB">NO</TIER_DB>
         <TIER_ADMIN oa_var="s_isAdmin">YES</TIER_ADMIN>
         <TIER_WEB oa_var="s_isWeb">YES</TIER_WEB>
         <TIER_FORMS oa_var="s_isForms">YES</TIER_FORMS>
         <TIER_NODE oa_var="s_isConc">YES</TIER_NODE>
         <TIER_ADADMIN oa_var="s_isAdAdmin">YES</TIER_ADADMIN>
         <TIER_ADWEB oa_var="s_isAdWeb">YES</TIER_ADWEB>
         <TIER_ADFORMS oa_var="s_isAdForms">YES</TIER_ADFORMS>
         <TIER_ADNODE oa_var="s_isAdConc">YES</TIER_ADNODE>
 
In Database Node
grep s_is TEST_test0123.xml
  
  Output:
         <TIER_DB oa_var="s_isDB">YES</TIER_DB>
         <TIER_ADMIN oa_var="s_isAdmin">NO</TIER_ADMIN>
         <TIER_WEB oa_var="s_isWeb">NO</TIER_WEB>
         <TIER_FORMS oa_var="s_isForms">NO</TIER_FORMS>
         <TIER_NODE oa_var="s_isConc">NO</TIER_NODE>







No comments :

Post a Comment

Locating and Creating the Context File

1 comment
Context file contains all the global configuration settings for E- Business Suite.
The Context file is in the XML format.The name of the Context file will be $CONTEXT_NAME.xml.
The Context variable is set as the $ORACLE_SID or $ORACLE_SID_[hostname].

Example :
If the  $ORACLE_SID is DEV and the host name is dev0123 then the context file name will be DEV_dev0123.xml

Context file for RDBMS/Oracle

In 11i
cd $ORACLE_HOME/appsutil

In R12
cd $ORACLE_HOME/appsutil

Context File for APPLICATION

In 11i
cd $APPL_TOP/admin

In R12
cd $INST_TOP/appl/admin


If the context file is not present then it can be generated manually. But the environment for which the context file needs to be created should be properly set.(either database or application).

Context file creation for RDBMS/Oracle
Go to:
cd $ORACLE_HOME/appsutil /bin 

perl adbldxml.pl


Context file for APPLICATION
Go to:
cd $AD_TOP/bin

perl  adbldxml.pl


Explaination of ADBLDXML.PL

Syntax:
adbldxml.pl <tier=<tiertype>> [appsuser=<appsusername>] [appspass=<appspassword>]        [template=<contexttemplatepath>] [log=<logfilepath>] [out=<contextfilepath>] [servername=<hostname>] [jtop=<jre/jdk location>]

Parameters

<tiertype>                         : { apps(default) | db }, tier for which context file is to be generated.
<appsusername>            : Apps user name, defaults to "apps".
<appspassword>            : Apps password, prompts if not passed.
<contexttemplatepath>   : Complete path to context template. If not specified, default template 
                                            will be
                                            For apps tier : $AD_TOP>/admin/template/adxmlctx.tmp
                                            For db tier   : $ORACLE_HOME>/appsutil/template/adxdbctx.tmp
<logfilepath>                    : Complete path of log file. If not specified, the file will be automatically 
                                            created in
                                            For apps tier : $APPL_TOP>/admin/<s_contextname>/log
                                            For db tier   : $ORACLE_HOME>/appsutil/log/<s_contextname>
<contextfilepath>             : Complete path of output context file. If not specified, the file will be
                                            For apps tier : $APPL_TOP>/admin/<s_contextname>.xml
                                            For db tier   : $ORACLE_HOME>/appsutil/<s_contextname>.xml
<hostname>                     : Server for which applications context File is to be generated.
<jtop>                                : Complete path to JRE_TOP or JDK_TOP, depending on the the 
                                             RDBMS  version(db tier only)




 

1 comment :

Post a Comment

Internal Concurrent Manager status could not be determined.

No comments
There can a scenario where while running

adcmctl status apps/apps_password

The output is:

$ adcmctl.sh status apps/apps_password

You are running adcmctl.sh version 115.28

Internal Concurrent Manager status could not be determined.

adcmctl.sh: exiting with status 0



Solution:

1. We can run cmclean.sql script.
    As suggested by (Oracle Note: 134007.1 - CMCLEAN.SQL - Non Destructive Script to 
    Clean Concurrent Manager Tables). Shutdown the CM, run the script (make sure you issue 
    commit once the script is  done), start the CM and check for the issue.

2. If after running the the cmclean.sql the issue still persists then take down the application tier
    services and run autoconfig. This will relink the binaries of the adcmctl.sh. After autoconfig is 
    successful then take up  the application services and and check the issue.

  
 
There may be another senario where ,if the Oracle Application version is R12.1 and higher, then there might be case that managers are running fine but when we try to check the status for the ICM through adcmctl.sh then it will return as status could not be determined.
 
adcmctl.sh status apps/apps_passwd
You are running adcmctl.sh version 120.17.12010000.5
Internal Concurrent Manager status could not be determined.
adcmctl.sh: exiting with status 0
This is a bug As per Oracle Note(Adcmctl.Sh Script Is Unable To Determine The ICM Status (Doc ID 1320217.1)).
Oracle suggest to apply one patch to resolve the issue.( Patch 12410716: FNDSVCRG STATUS COULD NOT BE DETERMINED AFTER RHEL5 SECURITY PATCH UPDATES)
 
 

No comments :

Post a Comment

Getting Source for Objects in Oracle Database

1 comment
The source\syntax for any objects(like table,package,synonyms etc..) in the database can be found by 

 
Syntax:

SELECT DBMS_METADATA.GET_DDL('Object_Type','Object_Name','Object_Owner') FROM dual;

Example: 
set pagesize 0
set long 90000
SELECT DBMS_METADATA.GET_DDL('TABLE','EMP','SYS') FROM dual;


Object Types:

Object types can be any of the following :


ASSOCIATION
AUDIT
AUDIT_OBJ
CLUSTER
COMMENT
CONSTRAINT
CONTEXT
DB_LINK
DEFAULT_ROLE
DIMENSION
DIRECTORY
FUNCTION
INDEX
INDEXTYPE
JAVA_SOURCE
LIBRARY
MATERIALIZED_VIEW
MATERIALIZED_VIEW_LOG
OBJECT_GRANT
OPERATOR
OUTLINE
PACKAGE
PACKAGE_SPEC
PACKAGE_BODY
PROCEDURE
PROFILE
PROXY
REF_CONSTRAINT
ROLE
ROLE_GRANT
ROLLBACK_SEGMENT
SEQUENCE
SYNONYM
SYSTEM_GRANT
TABLE
TABLESPACE
TABLESPACE_QUOTA
TRIGGER
TRUSTED_DB_LINK
TYPE
TYPE_SPEC
TYPE_BODY
USER
VIEW

In older version of Oracle 

We can get the source by dba_source\all_source table.

Syntax:

set pagesize 0
set long 90000
SELECT text FROM dba_source WHERE NAME='Object_Name' AND OWNER='Object_Owner' and TYPE='Object_Type;

1 comment :

Post a Comment

Log Files Location In Oracle Apps

No comments
The various log files and its location:

Database Tier Logs
Alert Log File location:$ORACLE_HOME/admin/$CONTEXT_NAME/bdump/alert_$SID.log

Trace file location:$ORACLE_HOME/admin/SID_Hostname/udump

Network Logs :$ORACLE_HOME/network/admin/$SID.log

OUI Inventory Logs :$ORACLE_HOME/admin/oui/$CONTEXT_NAME/oraInventory/logs

Application Tier Logs

For Oracle Apps 11i

Start/Stop script log files location:$COMMON_TOP/admin/log/CONTEXT_NAME/

OPMN log file location$ORACLE_HOME/opmn/logs/ipm.log

Apache, Jserv, JVM log files locations:$IAS_ORACLE_HOME/Apache/Apache/logs/ssl_engine_log
$IAS_ORACLE_HOME/Apache/Apache/logs/ssl_request_log
$IAS_ORACLE_HOME/Apache/Apache/logs/access_log
$IAS_ORACLE_HOME/Apache/Apache/logs/error_log
$IAS_ORACLE_HOME/Apache/JServ/logs
$LOG_HOME/ora/10.1.3/Apache

Concurrent log file location:$APPL_TOP/admin/PROD/log or $APPLLOG/$APPLCSF

Patch log file location:$APPL_TOP/admin/PROD/log

Developer (Developer/Forms & Reports 10.1.2) Patch
$ORACLE_HOME/.patch_storage

 Web Server (Apache) patch
 $IAS_ORACLE_HOME/.patch_storage

 Database Tier opatch log
 $RDBMS_ORACLE_HOME/.patch_storage

Worker Log file location:$APPL_TOP/admin/PROD/log

AutoConfig log files location:Application Tier:$APPL_TOP/admin/SID_Hostname/log//DDMMTime/adconfig.log

Database Tier:$ORACLE_HOME/appsutil/log/SID_Hostname/DDMMTime/adconfig.log

Error log file location:Application Tier:$APPL_TOP/admin/SID/log

Database Tier :$ORACLE_HOME/appsutil/log/SID_Hostname


Oracle Apps R12

Log file location

$LOG_HOME =$INST_TOP/logs
Concurrent Reqeust related logs$LOG_HOME/appl/conc - > location for concurrent requests log and out files
$LOG_HOME/appl/admin - > location for mid tier startup scripts log files

Apache Logs
$LOG_HOME/ora/10.1.3/Apache - > Location for Apache Error and Access log files
$LOG_HOME/ora/10.1.3/j2ee - > location for j2ee related log files
$LOG_HOME/ora/10.1.3/opmn - > location for opmn related log files

Forms & Reports related logs
$LOG_HOME/ora/10.1.2/forms
$LOG_HOME/ora/10.1.2/reports

Startup/Shutdown Log files location:$INST_TOP/apps/$CONTEXT_NAME/logs/appl/admin/log

Patch log files location:$APPL_TOP/admin/$SID/log/

Clone and AutoConfig log files location
 in Oracle E-Business Suite Release 12

Logs for the adpreclone.pl:
On the database tier:

RDBMS $ORACLE_HOME/appsutil/log/< context >/StageDBTier_< timestamp >.log

On the application tier:
$INST_TOP/admin/log/StageAppsTier_< timestamp >.log

Logs for the admkappsutil.pl

On the application tier: $INST_TOP/admin/log/MakeAppsUtil_< timestamp >.log

Logs for the adcfgclone.pl are located:

On the database tier:
RDBMS $ORACLE_HOME/appsutil/log/< context >/ApplyDBTier_< timestamp >.log

On the application tier: $INST_TOP/admin/log/ApplyAppsTier_< timestamp >.log
.
Logs for the adconfig are located:

On the database tier: RDBMS $ORACLE_HOME/appsutil/log/< context >/< timestamp >/adconfig.log
RDBMS $ORACLE_HOME/appsutil/log/< context >/< timestamp >/NetServiceHandler.log

On the application tier: $INST_TOP/admin/log/< timestamp >/adconfig.log
$INST_TOP/admin/log/< timestamp >/NetServiceHandler.log

No comments :

Post a Comment

FNDLOAD

No comments
FNDLOAD utility downloads data from an application entity into an editable text file with the definition of the application object, which can be uploaded to another database.This is basically done during the releases to upload the application from the development instances to the production instance.

Syntax:
FNDLOAD logon 0 Y mode configfile datafile [ entity [ param ... ] ]

Logon:       Apps username/password.
Mode:         DOWNLOAD or UPLOAD.
Configfile: Configuration file that FNDLOAD requires to download or upload data.Data 
                     Loader.
Datafile:     Output file where the data is written.
Entity:        The entity which need to be downloaded.
Param:       String used for parameter substitution.


Config File Location

$FND_TOP/patch/115/import
The file name will be like *.lct. It is maintained by Oracle.

Entities
  1. Profile Options
  2. Forms
  3. Functions
  4. Menus
  5. Responsibilities
  6. Request Groups
  7. Request Sets
  8. Lookups
  9. Valuesets
  10. Descriptive Flexfields
  11. Key Flexfields
  12. Concurrent Programs
  13. Form Personalization
  14. Users
  15. Alerts

Example:
FNDLOAD apps/pwd O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct Dev_value_set.ldt VALUE_SET FLEX_VALUE_SET_NAME="Dev_Value". 


Note: 

  • Downloading a parent automatically downloads all children - (Example) Concurrent Program  download.
  • The data files (.ldt) have both entity definition and the data.
  • It also shows the version and the location of the config file (.lct) that was used.












 

No comments :

Post a Comment

MWA Mobile Web Appilcation

2 comments
MWA is known as mobile web application. It is used by the some hand held devices to use the Oracle Application.
Example: Through the mobile applications the PO orders are managed.

Check the services running by
ps -ef |grep mwa
 or
./ $INST_TOP/admin/scripts/mwactl.sh status


There must be a port number associated to the mwa services.

Starting MWA services
./ $INST_TOP/admin/scripts/mwactl.sh start

Starting Dispatcher Services 

cd $ADMIN_SCRIPTS_HOME
nohup mwactl.sh start_dispatcher &

Stopping the MWA services
./ $INST_TOP/admin/scripts/mwactl.sh stop

Stopping Dispatcher Services 
cd $ADMIN_SCRIPTS_HOME
mwactl.sh stop_dispatcher


If it takes time to stop the services then we need to kill the services manually.

ps -ef|grep mwa| xargs kill -9

or

kill -9 `ps -ef|grep mwa'

Validating the MWA services
Steps for Validation


1. Check for the services running through

ps -ef|grep mwa

2. Open command prompt and try or even use putty

telnet servername.domainname 10210

Here 10210 is the port no. on which the MWA services are running.

It should open up small screen with various option. Login with SYSADMIN user as  in R12 or 11i.

2 comments :

Post a Comment

JSP File Compilation

No comments
Compiling JSP in R12

$FND_TOP/patch/115/bin/ojspCompile.pl --compile -s  JSP_file_name  --flush -p 10

Compiling JSP in 11i

$JTF_TOP/admin/scripts/ojspCompile.pl --compile -s  JSP_file_name  --flush -p 10

if we dont give -s then we can compile all the jsp's.
COMMAND

--compile                update dependency, compile delta
--create                   rebuild entire dependency file
-delta.out <file>       update dependency, list delta to file
-dep.out <xmlfile>    update dependency, output heirarchy to file

ARGS  

-s <regex>      matching condition for JSPs filenames
-p <procs>      number of parallel compilations
-log <file>       to override logfile from ojspCompile.conf

Other  Options

-conf <file>    to override ojspCompile.conf
--retry            retry previously failed compilation attempts
--flush           forces recompilation of all parent JSPs.It will clean up the pervious compiled files.
--quiet           do not provide an actively running progress meter
--fast             instantly fail jsps that are *possibly* invalid

Compiling JSP's in Windows

cd %FND_TOP%\patch\115\bin

perl -x ojspCompile.pl –compile –flush

No comments :

Post a Comment

Terminating a Concurrent Requests

1 comment
Concurrent Requests can be terminated from front end. But we can also terminate the Concurrent Request from the back end.

update apps.fnd_concurrent_requests set phase_code='C' , status_code='X' where request_id=&REQUEST_ID;

Note: Please remember to kill the process for that request first before terminating the concurrent request .

The related process Id for the Concurrent Requests can be determined by

select ORACLE_PROCESS_ID from apps.fnd_concurrent_requests where REQUEST_ID=&REQUEST_ID;

1 comment :

Post a Comment

Check the Concurrent requests which are running

No comments
Use the below query for finding all the concurrent requests which are running.

Select /*+ RULE */ substr(Concurrent_Queue_Name,1,12) Manager Name,
       Request_Id Request, User_Name,
       fpro.OS_PROCESS_ID OSprocess,
      fcr.oracle_process_id LocalProcess,
       substr(Concurrent_Program_Name,1,35) Program, Status_code,
       To_Char(Actual_Start_Date, 'DD-MON-YY HH24:MI') Started
       from apps.Fnd_Concurrent_Queues fcq, apps.Fnd_Concurrent_Requests fcr,
      apps.Fnd_Concurrent_Programs fcp, apps.Fnd_User Fu, apps.Fnd_Concurrent_Processes fpro
       WHERE
       Phase_Code = 'R' And
       Status_Code <> 'W' And
       fcr.Controlling_Manager = Concurrent_Process_Id       And
      (fcq.Concurrent_Queue_Id = fpro.Concurrent_Queue_Id    And
       fcq.Application_Id      = fpro.Queue_Application_Id ) And
      (fcr.Concurrent_Program_Id = fcp.Concurrent_Program_Id And
       fcr.Program_Application_Id = fcp.Application_Id )     And
       fcr.Requested_By = User_Id
       order by Started







No comments :

Post a Comment

FND_NODES

4 comments
FND_NODES table is present in the APPS schema.
In a muti-tier environment if we want to check the Application services which are running on different node then we can check from fnd_nodes table.

select NODE_NAME,SUPPORT_CP,SUPPORT_FORMS,SUPPORT_WEB,SUPPORT_ADMIN from FND_NODES;

NODE_NAME       SUPPORT_CP           SUPPORT_FORMS        SUPPORT_WEB          SUPPORT_ADMIN
---------------              -------------------                  --------------------                  --------------------                   --------------------
DEV01                          N                                  N                                    N                                         N
DEV02                          Y                                  Y                                     Y                                         Y


SUPPORT_CP: Concurrent Server
SUPPORT_FORMS: Form Server
SUPPORT_WEB: Apache Server
SUPPORT_ADMIN : Admin Server

Cleaning Of FND_NODES table

In the FND_NODES table at certain times we can find there useless entry present which may be the result of the cloning from production which may be the entry other than our present host. So we to need to clean up the FND_NODES table.

Steps:

1.Stop the application services.
2.Run EXEC FND_CONC_CLONE.SETUP_CLEAN; and issue commit after successful completion.
3.Now there must not be any entry present in FND_NODES table.
    select * from fnd_nodes;
    no row selected
4. Run autoconfig on DB_node.
    cd $ORACLE_HOME/appsutil/scripts
    adautocfg.sh
    It will prompts for the apps password.
5.Run autoconfig on Apps_node.
   cd $INST_TOP/admin/scripts
   adautocfg.sh
   It will prompts for the apps password.

This will populate the FND_NODES tables with the correct entry for the application and database node. 


4 comments :

Post a Comment

Finding time required for Gather Stats

No comments
If we run gather schema stats and want to the progression then we can check by the below query. 

SELECT *
FROM v$session_longops 
WHERE opname LIKE '%Gather Schema Statistics%';


For gather table stats the opname will be like Table Scan.
 
We can get the unique session id and then also we can check the time required.

SELECT
SID,SERIAL#,OPNAME,TOTALWORK,START_TIME,TIME_REMAINING,ELAPSED_SECONDS,message FROM  v$session_longops
WHERE   SID=6844;





No comments :

Post a Comment

FNDCPASS

No comments
FNDCPASS used to change password for front end user, fnd_user and dba_users.


The syntax of FNDCPASS is


FNDCPASS apps/password 0 Y system/password mode USERNAME PASSWORD

Mode can be divided as

SYSTEM
ORACLE
USER
ALLORACLE


> MODE = SYSTEM

Syntax:

FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYS WELCOME

It is used for changing the password for apps and applsys.
APPS and APPLSYS are database schemas of Oracle Applications.
Alter user command should never be used to change the apps & applsys accounts.Using alter will  De-synchronize both schema and which will cost a lot to the Oracle Application and Database.
Oracle recommends using FNDCPASS only to change apps and applsys password.

The password for APPS and APPLSYS should be same so the above command also changes the password for both.

Internally the command performs these steps:

1.Validations of current applsys & system password

2.Re-encrypt all password in FND_USER & FND_ORACLE_USERID

3.Update apps & applsys password in FND_ORACLE_USERID table.

4. Update DBA_USERS table as well.






> MODE = ORACLE/ALLORACLE

Syntax:

FNDCPASS apps/apps 0 Y system/manager ALLORACLE password
FNDCPASS apps/apps 0 Y system/manager ORACLE GL GL1

ALLORACLE mode will change the password for all product schema at one go.
Apply Oracle Apps patch 4745998 for getting ALLORACLE mode.

But if need to change the password for a specific product schema like AP,AR,GL etc then use ORACLE mode.

Internally the command performs these steps:

1.Validations of current applsys & system password

2. Update GL new password in FND_ORACLE_USERID table

3. Update DBA_USERS table as well.





> MODE = USER

Syntax:
FNDCPASS apps/apps 0 Y system/manager USER VISION WELCOME

It is used for changing the application level passwords like sysadmin,Kevin etc. (Front End applications user password).

Internally the command performs these steps:

1.Validations of current applsys & system password

2.Update VISION NEW password in FND_USER table.



0 & Y are flags for FND Executable like FNDCPASS & FNDLOAD where

0 is request id (request ID 0 is assigned to request ID's which are not submitted via Submit Concurrent Request Form).
'Y' indicates the method of invocation. i.e. it is directly invoked from the command-line not from the Submit Request Form.



No comments :

Post a Comment

FNDFS and FNDSM

3 comments
FNDFS or the Report Review Agent (RRA) is the default text viewer within Oracle Applications, which allows users to view report output and log files. Report Review Agent is also referred to by the executable FNDFS. The default viewer must be configured correctly before external editors or browsers are used for viewing requests.

FNDSM is the Service manager. FNDSM is executable & core component in GSM ( Generic Service Management Framework ). You start FNDSM services via APPS listener on all Nodes in Application Tier.


There are certain scenario  where we can't see the output of Concurrent Requests. It  just gives an error.

Then check the fndwrr.exe size in production and compare it with  Test Instance.

fndwrr.exe is present in  $FND_TOP/bin



If there is any difference then relink the FNDFS executable.It might not be in sync with the binaries.


Command for relinking
adrelink.sh force=y "fnd FNDFS"

3 comments :

Post a Comment

Stopping Concurrent Manager

No comments
Concurrent manager can be stopped by running 

adcmctl.sh stop  <appsusername/password>

We can check if the Concurrent processes are still running by 

ps -ef |grep FNDLIBR 

If there are processes running the we can manually kill the processes.

kill -9 `ps -ef|grep FNDLIBR|awk '{print $2}'`

or

ps -ef|grep FNDLIBR|awk '{print $2}'|xargs kill -9

No comments :

Post a Comment