Hurriyet

27 Şubat 2015 Cuma

Oracle E-Business Suite: General Information - Concepts - Architecture - Mimari - Genel Bilgi ve Konseptler

General Information:

E-Business Suite is formed of 3 tiers These are database, application and client. Database tier holds the database services while Application tier holds the Fusion Middleware and Concurrent Processing part. Client has the java virutal machine which enables it to access and communicate with Application tier. Application tier acts like the middleman between Database and client.

In Fusion Middleware, Forms,Oacore,Oafm servers. The $WEBAPPS_TOP shows us the location of these servers.

Oracle Homes in EBS 12.2:

There are two homes under the run files system. For example under the run file system we have our Oracle home as /u01/install/APPS/fs1/EBSapps/10.1.2 other than that /u01/install/APPS/fs1/FMW_HOME is the other Oracle home for Fusion Middleware. Third home that is seen is $APPL_TOP which has the modules. It is beside the 10.1.2  under /u01/install/APPS/fs1/EBSapps/appl

Web Services:

Web services control the HTTP requests that are coming to the application.

Concurrent Processing Server:

As well as HTML applications and forms , there are also data reporting and data updating programs that need to be run randomly or in scheduled way. They run in the background. The requests that are needed to run are written to a table, then it is read by the concurrent managers and run accordingly.

Concurrent Managers spawn their own processes which is called as target processes.Every target process can run only one concurrent request at a time.

The frequency or the amount of work that is to be done can be arranged by the work shifts

Specialized Concurrent Managers:

Specailized concurrent managers dont exactly run concurrent requests but manages other stuff.

ICM(Internal Concurrent Manager) controls all the other concurrent managers. It administers the startup and shutdown of managers. ICM is important because it has lots of configuration settings that should not be modified but can be modified manually. ICM must be run before any other concurrent manager in order to start other concurrent managers. It creates log files (std.mgr and wnnn.mgr) in $APPLCSF/$APPLLOG.

These are sleep time (number of seconds the ICM waits between checking for new concurrent requests), PMON (process monitor) cycle time (number of sleep cycles the ICM waits between checking for failed workers), and queue size (duration between checks for number of active workers, measured in PMON cycles).

Standard Manager is the default concurrent manager that comes with the installation. However special concurrent managers can be created in order to form special environments for programs.

Concurrent Manager Architecture and Related Tables:

FNDLIBR is the Oracle application object library program which has the concurrent programs that can be called by a concurrent manager.

FND_CONCURRENT_REQUESTS :Details of user requests, including status, start date, and completion date

FND_CONCURRENT_PROGRAMS: Details of concurrent programs, including execution method, whether the program is constrained, and whether it must be run alone.

FND_CONCURRENT_PROCESSES: Cross-references between concurrent requests and queues, and a history of concurrent manager processes

FND_CONCURRENT_QUEUES: Information about each of the concurrent manager queues

How to see the Concurrent Manager Processes?

In order to see the processes we need to be searching for processes with the name of FNDLIBR

ps -ef | grep FNDLIBR


FNDLIBR runs for every concurrent manger and Internal Concurrent Manager.

applmgr  17100 17095  0 Feb19 ?        00:09:37 FNDLIBR               -- ICM                                                                                                                                            
applmgr  18326 18252  0 Feb19 ?        00:00:11 FNDLIBR                                                                                                                                                                                                                                          
applmgr  18329 18252  0 Feb19 ?        00:00:11 FNDLIBR                                                                                                                                                                                                                                          
applmgr  18330 18252  0 Feb19 ?        00:00:29 FNDLIBR                                                                                                                                                                                                                                          
applmgr  18331 18252  0 Feb19 ?        00:00:27 FNDLIBR                                                                                                                                                                                                                                          
applmgr  18332 18252  0 Feb19 ?        00:00:29 FNDLIBR                                                                                                                                                                                                                                          
applmgr  18333 18252  0 Feb19 ?        00:00:14 FNDLIBR                                                                                                      
In fact, ICM starts up a Service Manager that instructs the concurrent manager to startup. Therefore if we look at the mother process of all, we can search for

ps -ef  | grep FNDSM

For example FNDSM process is 18252

Managing Concurrent Processing:

To start ICM, we can start adcmctl.sh which is found under $ADMIN_SCRIPT_HOME to find the status of ICM or to either startup or shutdown the ICM in order to run it again so that other concurrent managers could start.

adcmctl.sh status| shutdown | startup


The EBS Technology Layers:

We have a number of utiliy that runs in between the application and the modules.

• Oracle Applications DBA (AD)
• Oracle Application Object Library (FND)
• Oracle Applications Utilities (AU)
• Oracle Common Modules (AK)
• Oracle Workflow (WF)
• Oracle Web Applications Desktop Integrator (BNE)
• Oracle Alert (ALR)
• Oracle Application Framework (FWK)
• Oracle BI Publisher (XDO)

Use application diagnostics to capture a problem that might exist.


Oracle Alert (ALR):

Oracle Alert allows us to email system notification when an exception occurs. The reason could be any event or database related.

File Structures




The APPL Directory:
Appl_top which is under the EBSapps/appl has the main context files, products and modules.



Admin directory under the common_top has the concurrent manager logs and output directiories. However the correct location is under non editioned file system which is
/u01/install/APPS/fs_ne/inst/SID_HOSTNAME/logs/appl/conc/log/


File Systems of EBS:

There are 2 file systems in EBS 12.2 in additon to non

References:

1-
Architecture and Common Applications
Oracle E-Business Suite ConceptsE22949-09

12 Şubat 2015 Perşembe

Oracle Fusion Middleware: OBIEE $ReadOverTheLimitException Error While Taking Out a Dashboard - Dashboard'u Rapor Olarak Çıkarma Hatası

Yesterday we solved a problem about extracting the dashboard as a PDF.

We had encountered the following error screen on OBI.


Solution:

This problem was not about increasing the row limit that can be downloaded from Enterprise Manager. It was about adding the following line to the instanceconfig.xml




Oracle E-Business Suite: Recommended SQL Scripts To Provide For Oracle Support and Environment Information 12.2.* - EBS 12.2.4 ile ilgili gerekli scriptler

Running the Diagnostic Patch:

The main thing that Oracle wants to analyze the system is the diagnostic pack run which comes with a patch. That is Patch 19045166. In it there are some sql's which needs to be run and that is applied by running a perl script which uses the contents of the Patch:

" perl adzddiagnostic.pl "

Determining Code Levels:

Ad and txk code levels are needed, because a lot of patch is associated with the code levels of ad and txk. There are lots of problems regarding these statuses.

SELECT codelevel FROM AD_TRACKABLE_ENTITIES WHERE abbreviation in ('txk','ad');



Collecting Fusion Middleware Log Files:

One of the most importan log files are the fusion middleware log files, since the application is run on the Weblogic Server. /Reference 1)

Therefore we need to collect them in case of a failure to both review and supply them to Oracle Support. The following 4 script should be run individually and created zip files can be added to Oracle.


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

1-Opmn OHS Log Files:


. /u01/install/APPS/EBSApps RUN

zip -r /home/applmgr/`uname -n`_`date +%m%d%y.%H%M`_OPMN_OHS.zip $IAS_ORACLE_HOME/instances/*/diagnostics/logs/OHS/*/*log* $IAS_ORACLE_HOME/instances/*/diagnostics/logs/OPMN/opmn/*

2-Weblogic Server:

zip -r /home/applmgr/`uname -n`_`date +%m%d%y.%H%M`_FMW.zip $IAS_ORACLE_HOME/../wlserver_10.3/common/nodemanager $EBS_DOMAIN_HOME/servers/oa*/logs/*out* $EBS_DOMAIN_HOME/servers/oa*/logs/*log* $EBS_DOMAIN_HOME/servers/forms*/logs/*out* $EBS_DOMAIN_HOME/servers/forms*/logs/*log* $EBS_DOMAIN_HOME/servers/AdminServer/logs/*out* $EBS_DOMAIN_HOME/servers/AdminServer/logs/*log* $EBS_DOMAIN_HOME/sysman/log/* $EBS_DOMAIN_HOME/servers/oac*/adr/diag/ofm/EBS_domain_*/oac*/incident/* $EBS_DOMAIN_HOME/servers/forms_s*/adr/diag/ofm/EBS_domain_*/forms_s*/incident/*



3-Apache WLS Log Files:

. /u01/install/APPS/EBSApps.env RUN

#####################################################################################

#### Start of script

#####################################################################################

(

# pick up files which have been modified in the last 1 day only

HowManyDaysOld=3

echo "Picking up files which have been modified in the last ${HowManyDaysOld} days"

set -x

find $LOG_HOME -type f -mtime -${HowManyDaysOld} > m.tmp

find $FMW_HOME/webtier/instances/*/diagnostics/logs -type f -mtime -${HowManyDaysOld} >> m.tmp

find $FMW_HOME/wlserver_10.3/common/nodemanager/nmHome*/*.log -type f -mtime -${HowManyDaysOld} >> m.tmp

## Get log files for only the WLS servers needed. Valid server names are one or more of:

## AdminServer forms-c4ws_server forms_server oacore_server oaea_server oafm_server

for SERVERNAME in AdminServer oacore_server forms_server oafm_server

do

find $EBS_DOMAIN_HOME/servers/${SERVERNAME}*/logs -type f -mtime -${HowManyDaysOld} >> m.tmp

find $EBS_DOMAIN_HOME/servers/${SERVERNAME}*/adr/diag/ofm/EBS_domain_*/${SERVERNAME}*/incident -type f -mtime -${HowManyDaysOld} >> m.tmp

done

zip -r mzAppsLogFiles_`hostname`_`date '+%m%d%y'`.zip -@ < m.tmp

rm m.tmp

) 2>&1 | tee mzLogZip.out

#####################################################################################


#### End of script



4- Inventory Related Logs and Reports

. /u01/install/APPS/EBSApps.env RUN

$ADPERLPRG $FND_TOP/patch/115/bin/TXKScript.pl -script=$FND_TOP/patch/115/bin/txkInventory.pl -txktop=$APPLTMP -contextfile=$CONTEXT_FILE -appspass= -outfile=/home/applmgr/Report_App_Inventory.html



zip -r /home/applmgr/node_info.rar /u01/install/APPS/fs1/FMW_Home/Oracle_EBS-app1/applications/oafm/APP-INF/node_info.txt /u01/install/APPS/fs1/FMW_Home/Oracle_EBS-app1/applications/oacore/APP-INF/node_info.txt /u01/install/APPS/fs1/FMW_Home/Oracle_EBS-app1/applications/forms-c4ws/APP-INF/node_info.txt /u01/install/APPS/fs1/FMW_Home/Oracle_EBS-app1/applications/forms/APP-INF/node_info.txt

zip -r /home/applmgr/EBS_DOMAIN_Config.rar

$EBS_DOMAIN_HOME/config/config.xml



zip -r /home/applmgr/Property.rar

$INST_TOP/appl/admin/*.properties

zip -r /home/applmgr/OHS_Logs.rar $IAS_ORACLE_HOME/instances/EBS_web_IKYSDEV_OHS1/config/OHS/EBS_web_IKYSDEV/*

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

Running SQL's :

What are the SQL's used below? They are providing us a lot of information regarding the configuration of the system, patching status, node information and lots of other stuff. These information can be used when patching is needed and to determine the status of the system or before applying a particular solution.


The code below can be put within a sql script and run.
---
set markup html on 
spool adop_sessions.html 
set timing on 
set linesize 120 
set pagesize 300 
show user 

select * from AD_NODES_CONFIG_STATUS; 

select NODENAME,CTX_FILE_CHANGED from AD_NODES_CONFIG_STATUS; 

select * from FND_OAM_CONTEXT_FILES; 

Select node_name from FND_OAM_CONTEXT_FILES 
where NAME not in ('TEMPLATE','METADATA','config.txt') and 
CTX_TYPE='A' and (status is null or upper(status) in ('S','F')) 
and EXTRACTVALUE(XMLType(TEXT),'//file_edition_type') = 'run' 
and EXTRACTVALUE(XMLType(TEXT),'//oa_service_group_status[@oa_var=''s_web_admin_status'']')='enabled' 
and EXTRACTVALUE(XMLType(TEXT),'//oa_service_list/oa_service[@type=''admin_server'']/oa_service_status')='enabled'; 

SELECT abbreviation, codelevel FROM AD_TRACKABLE_ENTITIES WHERE abbreviation in ('txk','ad'); 
SELECT codelevel FROM AD_TRACKABLE_ENTITIES WHERE abbreviation in ('txk','ad'); 
select bug_number from ad_bugs where bug_number in ('18288881','18283295','18886213','19259764'); 
select object_name, object_type, status 
from user_objects 
where status = 'INVALID' 
order by object_type; 

SELECT release_name FROM fnd_product_groups; 

select * from FND_NODES; 
select node_name, platform_code, node_mode, node_id, 
server_id, server_address, host, domain, webhost, 
support_cp, support_forms, support_web, support_admin 
from fnd_nodes 
order by node_name ; 
select node_name "Node Name", node_mode "Mode", support_cp "C", 
support_web "W", support_admin "A", support_forms "F" 
from FND_NODES; 



select bug_number from ad_bugs where bug_number in ('19782999', '19494816', '19807163'); 
select * from AD_APPL_TOPS; 
select APPL_TOP_ID, NAME,APPL_TOP_TYPE from AD_APPL_TOPS; 
select * from AD_ADOP_SESSIONS; 
select adop_session_id, APPLTOP_ID, NODE_NAME, NODE_TYPE from AD_ADOP_SESSIONS ;
 select ADOP_SESSION_ID,PREPARE_STATUS,APPLY_STATUS,FINALIZE_STATUS,CUTOVER_STATUS, 
CLEANUP_STATUS,ABORT_STATUS,STATUS,ABANDON_FLAG,NODE_NAME 
from AD_ADOP_SESSIONS 
order by ADOP_SESSION_ID; 
select ADOP_SESSION_ID, EDITION_NAME, NODE_TYPE, NODE_NAME, APPLTOP_ID, PREPARE_STATUS, APPLY_STATUS, CUTOVER_STATUS, CLEANUP_STATUS, ABORT_STATUS, STATUS from AD_ADOP_SESSIONS order by ADOP_SESSION_ID; 

select * from AD_ADOP_SESSION_PATCHES; 
select ADOP_SESSION_ID,BUG_NUMBER,CLONE_STATUS,STATUS,NODE_NAME from AD_ADOP_SESSION_PATCHES order by ADOP_SESSION_ID; 



set linesize 132 
set pagesize 132 
col NAME format A40 
col LEVEL_SET format a15 
col CONTEXT format a20 
col VALUE format A20 wrap 
col Server format a10 
col resp format a8 wrap 
col application format a10 

break on NAME 

select 
'('||language||')-'||n.user_profile_option_name NAME, 
decode(v.level_id, 
10001, 'Site', 
10002, 'Application', 
10003, 'Responsibility', 
10004, 'User', 
10005, 'Server', 
10006, 'Organization', 
10007, 'ServResp', 
'Undefined') LEVEL_SET, 
decode(to_char(v.level_id), 
'10001', '', 
'10002', app.application_short_name, 
'10003', rsp.responsibility_key, 
'10004', usr.user_name, 
'10005', svr.node_name, 
'10006', org.name, 
'10007', (select n.node_name 
from fnd_nodes n 
where n.node_id=level_value2) 
||'/'|| 
(decode(v.level_value, 
-1,'Default', 
(select responsibility_key 
from fnd_responsibility 
where responsibility_id=level_value))), 
v.level_id) "CONTEXT", 
v.profile_option_value VALUE 
from 
fnd_profile_options p, 
fnd_profile_option_values v, 
fnd_profile_options_tl n, 
fnd_user usr, 
fnd_application app, 
fnd_responsibility rsp, 
fnd_nodes svr, 
hr_operating_units org 
where 
p.profile_option_id = v.profile_option_id (+) 
and p.profile_option_name = n.profile_option_name 
and usr.user_id (+) = v.level_value 
and rsp.application_id (+) = v.level_value_application_id 
and rsp.responsibility_id (+) = v.level_value 
and app.application_id (+) = v.level_value 
and svr.node_id (+) = v.level_value 
and org.organization_id (+) = v.level_value 
order by name, v.level_id; 
set pagesize 300 
set linesize 200 

col NAME format a20 
col HOST format a35 
col RELEASE format a15 
col VERSION format a15 

select i.instance_name NAME, i.host_name HOST, f.release_name RELEASE, i.version VERSION 
from v$instance i,fnd_product_groups f 
where upper(substr(i.instance_name,1,4)) = upper(substr(f.applications_system_name,1,4)); 

select ad_zd.get_edition('RUN') from dual; 
select ad_zd.get_edition('PATCH') from dual; 
select ad_zd.get_edition_type from dual; 


set timing off 
set markup html off 
spool off 
-----------------------




References:
1-12.2 Ebusiness Suite - Collecting Fusion Middleware Log Files (Doc ID 1362900.1)
2-Oracle Applications E-Business Suite 12.2 Fusion Middleware Log Files: Locate,View, and Control (Doc ID 1366187.1)

Oracle E-Business Suite: Unable To View Workflow Status Diagram - Java Window Doesn't Initialize - Workflow Status Diagram'ının Çalışmaması

After we have instaled our application and started to work on it, we noticed that there were some errors in the Workflow Diagram Page. We were tring to access some of workflows  through the Workflow Administor responsibility and see the latest workflows that are issued. But we couldn't see anything but error.

Solution:
As a matter of fact, the solution was to set "Server Timezone" Profile as Site level which should be the same timezone as the database timezone value. Then we close the application and recompile the java libraries with force. After the compilation, we start the application and see that both Workflow page is appearing and the java application is starting.



References:
1- Workflow Status Diagram Error -http://www.dbatutor.com/2011/09/unable-to-view-workflow-status-diagram.html

Oracle Fusion Middleware: Exceeded configured maximum number of allowed input records Error - Maksimum Satır Sayısının Aşılması

The recent error that we encountered on OBI 11g is that we couldn't see the reports which had more 1 million records.

The error was like this:

------------
Error

Exceeded configured maximum number of allowed input records.
Error Details
Error code: EKMT3FK5: OI2DL65P

SQL issued: 195~6qt8lbhf1lvqgn51fqbcp544qq
---------


Solution:
We added the following lines into instanceconfig.xml which is found under for example: "E:\oracle\obia\instances\instance2\config\OracleBIPresentationServicesComponent\coreapplication_obips1 "

We then add the tags such as "MaxVisibleRows","MaxVisibleSections","MaxVisiblePages","MaxVisibleColumns" and "MaxCells" under the appropriate parts.

We also add "Cube" and "Charts" parts. You could just add all the missing parts compared to this instance config xml


After the addition, we should restart the application so that the changes could take effect


References:
1- Maximum number of allowed input records:
http://cherryqq.iteye.com/blog/1856962