Upload
fary-ndong
View
112
Download
5
Tags:
Embed Size (px)
Citation preview
11i Apps Overview & Best Practices
Mike Swing
UTOUG Training Days, 2007
Agenda
• Overview of Best Practices• Business Continuance Volumes• 11i Architecture
– Web– Forms– JSPs– OA Framework
• Patching, Testing, Cloning, Install
Agenda
• Personalizations– Forms– OA Framework
• Timeouts• Purging Workflow• Release 12
Who Cares?
• Managers• Superusers• Testers• DBAs
Best Practices
• Storage System– Use shared disk– Use BCV/snapshots (block virtualization)
• Use the BCV for:Backup/RecoveryCloning
Best Practices
• Use the Tiered Architecture of Oracle Applications to separate processing onto individual servers when increased scalability or additional security are required.
• Use Load Balancing when appropriate• Run seeded concurrent requests to keep
the system up to date
Best Practices
• Understand the Application Architecture– Forms– HTML– JSP– OA Framework
Patching Best Practices• Schedule periodic downtime for proactive
maintenance (functional and technical)• Keep up-to-date on latest AD code• Keep your test system current with production• Keep a separate host/instance for emergency
patching/testing• Perform “uptime” maintenance• Gather schema stats• Patch help system• Apply translation database updates
Patching Best Practices• Use shared disk to enable shared APPL_TOP
and Distributed AD• Avoid extent allocation errors with autoextend• Combine patches with AD Merge Patch• If you merge your patches, you must carefully
document the patches that are contained in the merged patch. The database won’t have any patch numbers to record in ad_applied_patches.
• Use a staged APPL_TOP• Use non-interactive patching when appropriate
Testing Best Practices
• Superusers / Testers should have canned scripts they can execute to test modules
• DBA/Developers should run technical tests before releasing to the users/ testers for functional testing
• Functional Supersers should be familiar with the patch README and New Functionality section
Testing Best Practices
• Tell the Testers what’s changed in the patch
• Use the changed forms, .odf’s as a guide to what test
• Convert the short form name to long form name, so users know what to test
Cloning Best Practices
Cloning is faster and easier with:• Shared APPL_TOP with shared disk (NFS,
NAS, SAN)• Snapshots and Business Continuance
Volumes (BCVs)
Finish the Clone!
Install Best Practices• Save the config.txt to a permanent directory, not /tmp• Use VNC• Set DISPLAY• Install J2SE before the install, except for SUN and Linux• Enable DISPLAY, as root,
xhost +Then, set DISPLAY=192.168.1.15:0.0; export DISPLAY, as an example
• Set ulimit to unlimited
Best Practices
• Use Personalizations– Forms Persoanlizations
• Custom Library– OA Framework Personalizations
TiersThe application tier has a dual role: hosting the various
servers and service groups that process the business logic, and managing communication between the desktop tier and the database tier. This tier is sometimes referred to as the middle tier.
Four servers or service groups comprise the basic application tier for Oracle Applications:• Web services• Forms services• Concurrent Processing server• Admin server
Tiers
Desktop
DatabaseTierApplication Tier
Web Server (Self- Service)
Forms Server (Prof Java)
Concurrent Processing e
Discoverer Server
Concurrent Processing
Admin Server
iSupplier SSL Server
Reports Server
HTMLInterface
JAVAInterface
JInitiator
Web Browser
Data
Demand Planning Server
Concurrent Processing ServerReporting programs and data updating programs that need to run
either periodically, or on an ad hoc basis. These programs, which run in the background while users continue to work on other tasks, may require a large number of data-intensive computations, and are run using the Concurrent Processing architecture.
Concurrent Processing is an Oracle Applications feature that allows non–interactive and potentially long-running functions to be executed efficiently alongside interactive operations.
It uses operating system facilities to facilitate background scheduling of data- or resource-intensive jobs, via a set of programs and forms.
To ensure that resource-intensive concurrent processing operations do not interfere with interactive operations, they are run on a specialized server, the Concurrent Processing server.
Concurrent Requests
• Processes that run on the Concurrent Processing server are called concurrent requests.
• When you submit such a request, either through HTML-based or Forms-based Applications, a row is inserted into a database table specifying the program to be run. A concurrent manager then reads the applicable requests in the table, and starts the associated concurrent program.
Business Continuance Volumes• As databases grow in size, faster backup and restore solutions are critical.
BCV’s can be utilized for backups and cloning to decrease the time required to copy Oracle datafiles and Oracle Applications files.
• BCVs or snapshots, from EMC, NetApp or StoneFly enable backup, re-silver and restore, of large amounts of data using a technique known as Block Virtualization.
• A BCV is a copy of an EMC Symmetrix standard device. BCV devices can be accessed by one or more separate hosts while the standard devices are on-line for normal I/O operations from their host(s).
• A standard device is established with a BCV device, making a BCV pair. The BCV device can be split, re-established (re-silvered or re-synchronized), and restored.
• Several hosts can attach to the same array. When the BCV devices are split from standard devices, the BCVs can be referenced by the same or by a different host.
• Each BCV device has its own unique device name. When established, BCV devices are not accessible by any other hosts.
BCVPRODDEV
BCV Example
Establish - Restore• When BCV devices are split from the standard devices,
the BCV devices represent a mirror of the standard device. After splitting from a pair, a BCV device can then be read and written. – full synchronization - a copy of the standard device onto the BCV
devices– incremental re-synchronization propagates only the changed
tracks onto the BCV devices. If the BCV device was modified after the split and before re-establishing, those changes are overwritten by the data from the standard device. Once the BCV is successfully established or re-established, the BCV acts like another mirror to the standard device.
– restore - Similar to the establish operation, a full or incremental restore can be performed.
BCV• Device A and Device B are
accessed by the same host. Device A is mirrored. The BCV device can be established, re-established, or, restored onto the standard device.
• When the BCV is assigned to the standard device and is established, the combination of the BCV device and standard device is deemed a BCV pair.
• When the BCV is split from the pair, the BCV can be accessed by the same host or by other hosts.
Backups with BCVs• BCV’s can be utilized for backups to eliminate downtime
with Oracle Hot Backups. This method requires no downtime to split the BCV.
• The database can be brought down (cold backup) and the BCV split to ensure a clean backup (testing will validate the hot backup method or stop the database to split the BCV for a cold backup).
Backups with BCVs• The Cold Backup method requires about 10
minutes to stop the database, split the BCV and restart the database and applications. Backups can be offloaded to another host if required. Tape devices should backup the directory on the backup host for an additional level of protection.
• Re-establishing the BCV with the Production database, after creating the Development instance, can be done while the database is open.
Application Architecture11i is made up of four primary development
architectures:• Forms – Primary UI for ERP• HTML – most of the HTML code has
been converted to OA Framework• JSP
– CRM / JTT / JTF– OA Framework – All Self Service Applications
iProc, iExp, Workflow
11i Architecture
HTML
JTT-JTFOA FrameworkProfessional
Java InterfaceServlets CGI
Apache JServ
Web Browser
JAVA Interface
JInitiator
Forms Server
Forms • The Forms server hosts the Oracle Applications forms
and the forms runtime engine that support the core Applications. The forms server is part of Oracle Developer software and can provide more advanced field and form validation. This serves up the forms and coordinates communication with the browser and the database.
• The Forms server caches data and provides it to the client as needed, such as when scrolling through multiple order lines that exceed the limitations of a single screen. The Forms server communicates with the desktop client using HTTPS, HTTP and TCP/IP.
Forms 6i ServerWhen a user initiates an action in the Forms client
applet, such as entering data into a field or clicking a button, data is passed to the Forms server on the application tier. The user interface logic runs in the Forms server and determines the appropriate user interface effect based on the user’s action. For example, a window may open or another field value may be populated. If necessary, the database tier is contacted for any data not already cached on the application tier, or for data-intensive processing.
Forms 6i Server• Oracle Forms 6i Server can operate in three separate
modes: socket, http and https. http and https mode can be used for internet transactions (outside the firewall), whereas socket mode can only be used for an organization's intranet (inside the firewall). https corresponds with SSL and is strongly recommended if a company is to allow transactions over the internet.
• The implementation of SSL for the Oracle forms 6i Server involves the tool Oracle Wallet Manager, which is included in the Developer 6i Server install under the application server Oracle home from version 8.0.6 onwards. The tool is Java-based.
JInitiator
• JInitiator is used to run Java applets on a desktop client, and it provides a delivery mechanism that enables Oracle Developer applications to be run from within a browser in a stable and supported manner. In addition to addressing critical bug fixes, Oracle JInitiator provides a number of additional features to enhance application performance, such as JAR file caching, incremental JAR file loading and applet caching.
Forms – Professional Java Interface
Desktop
DatabaseTierApplication Tier
Web Server (Self- Service)
Forms Server (Prof Java)
Concurrent Processing e
Discoverer Server
Concurrent Processing
Admin Server
iSupplier SSL Server
Reports Server
HTMLInterface
JAVAInterface
JInitiator
Web Browser
Data
Demand Planning Server
Forms are served up by the forms runtime engine. This is also know as the Professional Java Interface.
The forms server is part of Oracle Developer software and can provide more advanced field and form validation than HTML and Java. This serves up the forms and coordinates communication with the browser and the database.
Oracle Forms Services
• Oracle Forms Services consists of a listener and a runtime engine, where the application logic is stored. On the client tier, Oracle Forms Services consists of a Java applet, which provides the user interface for the runtime engine, and Oracle JInitiator (a Java plug-in) that provides the ability to specify the use of a specific Java virtual machine on the client.
• In Oracle9i Application Server, when a user submits a URL to launch an Oracle Forms-based application, the Web listener accepts the request and downloads the Oracle Forms applet to the user's browser. Then, the Oracle Forms applet establishes a persistent connection to an Oracle Forms runtime engine. All processing takes place between the Oracle Forms applet and the Oracle Forms Services runtime engine.
Dev60cgi/f60cgi/• Forms are based on CGI, as shown in the URL calling
f60cgi.
http://rh1.trutek.com:8000/dev60cgi/f60cgi
jsp’sIn the Oracle 9iAS Application Server, servlets are managed by the
OC4J servlet container; EJBs are managed by the OC4J EJB container. These containers, together with the JavaServer Pages container, form the core of OC4J.
• JavaServer Pages (JSP) is another server-side component type. JSP pages also involve the servlet container, because the JSP container itself is a servlet and is therefore executed by the servlet container. The JSP container translates JSP pages into page implementation classes, which are executed by the JSP container but function similarly to servlets.
• Most servlets generate HTML text, which is then sent back to the client for display by the Web browser, or is sent on to other components in the application. Servlets can also generate XML, to encapsulate data, and send this to the client or to other components.
Servlets• In recent years, servlet technology has emerged as a powerful way
to extend Web server functionality through dynamic HTML pages. A servlet is a Java program that runs in a Web server (as opposed to an applet, which is a Java program that runs in a client browser). The servlet takes an HTTP request from a browser, generates dynamic content (such as by querying a database), and provides an HTTP response back to the browser.
• Prior to servlets, CGI (Common Gateway Interface) technology was used for dynamic content, with CGI programs being written in languages such as Perl and being called by a Web application through the Web server. CGI is less scalable, but was suitable for this particular application.
• Servlet technology, in addition to improved scalability, offers the well-known Java advantages of object orientation, platform independence, security, and robustness. Servlets can use all standard Java APIs, including the JDBC API (for Java database connectivity, of particular interest to database programmers).
Advantages of Servlets• Servlet technology offers advantages over applet technology for
server-intensive applications such as those accessing a database. One advantage is that a servlet runs in the server, which is usually a robust machine with many resources, minimizing use of client resources.
• An applet, by contrast, is downloaded into the client browser and runs there. Another advantage is more direct access to the data.
• The Web server or data server in which a servlet is running is on the same side of the network firewall as the data being accessed. An applet running on a client machine, outside the firewall, requires special measures (such as signed applets) to allow the applet to access any server other than the one from which it was downloaded.
Advantages of Servlets• Servlet programming offers advantages over earlier models of
server-side Web application development, including the following: • Servlet programming is a mature and popular standard, effectively
replacing early techniques, such as CGI scripts, for generating dynamic HTML.
• A servlet handles concurrent requests. There is only a single instance of each servlet, and servlets have a well-defined lifecycle. For higher performance, servlets can be loaded when OC4J starts.
• Servlets are fully integrated into the J2EE framework. • The servlet request and response objects provide a convenient way
to handle HTTP requests and send text and data back to the client. • Servlets are fully integrated with the Java language and its standard
APIs. The J2EE framework provides an extensive set of services that your Web application can use, such as JNDI, JMS, RMI, and security.
Servlets
• Because servlets are written in the Java programming language, they are supported on any platform that has a Java virtual machine and a Web server that supports servlets.
• Servlets can be used on different platforms without recompiling. You can package servlets together with associated files such as graphics, sounds, and other data to make a complete Web application. This simplifies application development and deployment.
Servlets outperform earlier technologies for generating dynamic HTML, such as server-side "includes" or CGI scripts. Once a servlet is loaded into memory, it can run on a single lightweight thread; CGI scripts must be loaded in a different process for every request.
JavaServer Pages
• JavaServer Pages(TM) is a technology specified by Sun Microsystems as a convenient way of generating dynamic content in pages that are output by a Web application (an application running on a Web server). With JSP you can:
• mix regular, static HTML with dynamically generated content from servlets
• JSP enable a separation of business logic from the User Interface
• Most of the page may consist of regular HTML, that is passed to the web user unchanged. Anything that can be included in a normal HTML page can be included in a JSP page.
Java Server Pages• A JSP page is translated into a Java servlet before being
executed, and processes HTTP requests and generates responses similarly to any other servlet. JSP technology offers a convenient way to code the servlet. The translation typically occurs on demand, but sometimes in advance.
• Furthermore, JSP pages are fully interoperable with servlets. JSP pages can include output from a servlet or forward to a servlet, and servlets can include output from a JSP page or forward to a JSP page.
• Combining Java code and Java calls into an HTML page is more convenient than using straight Java code in a servlet. JSP syntax gives you a shortcut for coding dynamic Web pages, typically requiring much less code than Java servlet syntax
Displaying Information Accessed from Servlets and Java Server Pages
An OSSWA function displays information as dynamically generated web pages, the following sequence of events takes place:
1. The user clicks the hyperlink of a function on an OSSWA menu. A URL embedded in the HTML source code is accessed from the browser that calls for a Java servlet.2. The Oracle HTTP Server, powered by Apache, routes the request to mod_jserv.3. mod_jserv takes requests and forwards them to Apache Jserv, the servlet engine.
4. The servlet engine generates the response, using JDBC to connect. When the servlet executes Java Server Pages (JSP) it calls Oracle JSP. Oracle JSP is a translator and runtime environment for JSPs. 5. The response is returned to mod_jserv.6. The HTTP Server returns the response to the client.
Model Architectures for the Web
• Model 1 and Model 2 simply refer to the absence or presence (respectively) of a controller servlet that dispatches requests from the client tier and selects views.
• “A Model 1 architecture consists of a Web browser directly accessing Web-tier JSP pages. The JSP pages access Web-tier JavaBeans that represent the application model, and the next view to display (JSP page, servlet, HTML page, and so on) is determined either by hyperlinks selected in the source document or by request parameters. A Model 1 application control is decentralized, because the current page being displayed determines the next page to display. In addition, each JSP page or servlet processes its own inputs (parameters from GET or POST). In some Model 1 architectures, choosing the next page to display occurs in scriptlet code, but this usage is considered poor form. “
jtflogin.jsp• Model 1 architecture
(see Figure 1) leaves the routing between pages to the JSP itself. So the JSP needs to have hardcoded links or navigation logic embedded within the page. This strategy solves one problem, but introduces another. Because the presentation and navigation logic are mixed, the page cannot easily be reused. Even simple page flows that use JSP Model 1 can quickly become complex. Each page needs knowledge of every other page that it links to.
AppsLocalLogin.jsp
• JSP Model 2 (see Figure 2) is a response to this problem. In the case of the Model 2 architecture, the page flow is not handled by the JSP. Rather, the architecture lets a separate servlet decide what the routing should be, based on the information submitted with the page, thus freeing pages from having to know about every other page that they are logically linked to. This servlet is called a Controller.
Controller Servlet• “A Model 2 architecture introduces a controller servlet
between the browser and the JSP pages or servlet content being delivered.
• The controller centralizes the logic for dispatching requests to the next view based on the request URL, input parameters, and application state.
• The controller also handles view selection, which decouples JSP pages and servlets from one another.
• Model 2 applications are easier to maintain and extend, because views do not refer to each other directly.
• The Model 2 controller servlet provides a single point of control for security and logging.
OA Framework
Model-View-Controller (MVC)
Controller
View
Web Bean Hierarchy
processRequest( …) processRequest
( …)
<?xml …<page
</page>
Page MetaData
Controller controls the View
Model
View Row
SupplierData
remove()
create()
validateEntity
View ObjectSuppliersVO
set <Attr>
get <Attr>
read/write
Actions
Data
Response
Request
MVC separates an application's data model, user interface, and control logic into three distinct components so that modifications to the view component can be made with minimal impact to the data model component.
Separating the view from the model makes the model more robust, because the developer is less likely to "break" the model while reworking the view.
MVC1. user interacts with the user interface in some way
(e.g., user presses a button) 2. controller receives notification of the user action from
the user interface objects 3. controller accesses the model, possibly updating it in a
way appropriate to the user's action (e.g., controller updates user's shopping cart)
4. controller delegates to the view for presentation5. The view uses the model to generate an appropriate
user interface (e.g., the view produces a screen listing of the shopping cart contents).
6. user interface waits for further user interactions, and begin the cycle again.
OA Framework• The OA Framework Model is implemented using Oracle
Business Components for Java (BC4J). BC4J provides optimized, ready-to-use implementations of the J2EE design patterns that developers otherwise would have to code, debug, and test.
• The OA Framework View is implemented using UI XML (UIX). UIX uses XML to describe the components and hierarchy that make up an application page. UIX also provides runtime capabilities to translate that metadata into HTML output so that it can be shown on a Browser or a mobile device.
OA Framework1. URL Request
from Browser to Web Listener
2. AOL/J authorizes the user access to the web page
3. Page definition from the Metadata Dictionary is loaded into the web server Metadata UI Definition Database
WebServer(Apache)
JavaController
MetaData UIDefinition
UIX HTML UI Generator
AOL/J BC4J
MetadataDictionaryRepository
MDS
WebListener
JDBC
DataJAVAInterfaceJInitiator
Web Browser
HTMLInterface
OA Framework
JServDisplay Manager
Application ObjectsDomain Bus. ObjectsCore Serv. Objects
OJSP<HTML>
Catalog Bean<HTML>
OC4J
4. BC4J objects that contain the application logic and access the database are instantiated
5. Java Controller changes page based on dynamic UI rules from the MetaData UI Definition
6. UIX Generates page by interprets the page definition, creates the corresponding HTML in accordance with UI standards & sends to browser
New Metadata Repository• The metadata used to describe the UI is loaded into a
database repository, called Meta Data Services (MDS), at deployment time and optionally at design time as well. User- and application-driven interactions are handled by the OA Controller.
• Previously, the OA framework used the AK tables to store application metadata. The MDS model now supersedes the old AK tables. MDS application metadata can be stored either in XML files or in the MDS Repository tables. The personalization data is included in the new MDS repository.
Oracle Applications Framework• Oracle Applications Framework uses additional
components, including:• BC4J (Business Components for Java), included in
Oracle JDeveloper, is used to create Java business components for representing business logic. It also provides a mechanism for mapping relational tables to Java objects. It allows the separation of the application business logic from the UI.
• AOL/J provides the Oracle Applications Framework with underlying security and applications Java services. It provides the Oracle Applications Framework with its connection to the database and with application-specific functionality, such as flexfields and attachments.
Personalizations• The OA Framework was designed with durable
personalization capabilities. • Declarative UI component definitions are stored in the
form of meta-data in a database repository. • Personalizations are translated into offsets from the base
meta-data definition and stored separately. At runtime the various applicable personalization meta-data is uploaded from the repository and layered over the base meta-data definition to produce the net effect.
• Product upgrades and patching only affects the base meta-data definition and customer personalizations continue to function properly as far as applicable.
Request to OA.jsp for a Page1. The
oracle.apps.fnd.framework.webui.OAPageBean (the main OA Framework page processing class) uses the page name to find the root application module, so it can check it out from the application module pool. This application module also checks out a JDBC connection from the connection pool, and the transaction context for the page is established.
Java Virtual Machine (JVM)10g DB
ICX SESSIONS
Browser SessionCookie
SessionZZZ
Servlet Session Web Apps Context
Application State Application State
OA.jsp
OAPageContent
Application State
OADBTransaction
Application State
Request
Application State RootAppModuleAMImpl
Web Bean Hierarchy
OAPageBean
Caches
References
Contains
Uses
Rendered HTML
2. The user session is validated; if invalid, a login page is displayed, this is a simplification.3. Assuming the user is valid, the OAPageBean evaluates request parameters to figure out if it is dealing with an HTTP POST or a GET.
OA.jspWhen the user logs in to an OA Framework application, the OA Framework creates an AOL/J oracle.apps.fnd.common.WebAppsContext object and a browser session-based cookie that together keep track of key Oracle Applications context information like the current responsibility, and organization id.
The cookie contains an encrypted key identifier for a session row stored in the Applications database (this is the servlet session ID, in its decrypted form, and serves as the primary key in the ICX_SESSIONS table)The WebAppsContext retrieves this key value after each request, and uses it to query the current session state The Oracle Applications user session is associated with a servlet session, however, it has its own life cycle and time-out characteristics.
Java Virtual Machine (JVM)10g DB
ICX SESSIONS
Browser SessionCookie
SessionZZZ
Servlet Session Web Apps Context
Application State Application State
OA.jsp
OAPageContent
Application State
OADBTransaction
Application State
Request
Application State RootAppModuleAMImpl
Web Bean Hierarchy
OAPageBean
Caches
References
Contains
Uses
Rendered HTML
Servlet Sessions• An Oracle Applications user session might be associated with
multiple servlet sessions (if, for example, the servlet session times out while the user takes a phone call in the middle of creating an OA Framework expense report, and then resumes work before the Oracle Applications user session times out).
• A servlet session might be associated with multiple Oracle Applications user sessions (if, for example, a user logs out and then back in again without closing the browser window).
• If the Oracle Applications user session times out, as long as the user does not close the browser window (so the browser session-based cookie isn't lost) and no one deletes the corresponding session row in the ICX_SESSIONS table, the user can resume her transaction at the point where she stopped working after being prompted to log back in.
Timeouts• ICX: Session Timeout , controls the time of inactivity of the session. If set to 30
minutes, then after no activity for 30 minutes you will get the popup window.
ICX:Limit Time, controls the total time a session can be logged in. If set to 8 hours, then after 8 hours you will get the popup window, regardless of what activity is being done.
ICX:Limit connect, This profile option determines the max. number of connection requests a user can make in a single session. If a user sends more requests than the value specified by this profile option in a single session, then the session will expire. This needs to be bumped up to 2000 +, because each time Session Time is checked it adds another ICX connection. This IS NOT DETERMEND BY THE NUMBER OF USER CONNECTIONS. The more ICX checks its self the more ICX connections you are going to see for a user.
Session.timeout, is set under the Apache’s zone.properties. This should be set to default which is 1800000. Anything higher can result in performance and out of memory errors.
Typically session.timeout and ICX:Session Timeout are set to the same value.
CRM Timeouts• ICX:Session Timeout,
ICX:Limit Time, and JTF_INACTIVE_SESSION_TIMEOUT
• JTF_INACTIVE_SESSION_TIMEOUT affects CRM-based products only, and serves the same purpose as the ICX:Session Timeout profile. This profile exists for legacy reasons, and its value should be set to the same as ICX:Session Timeout.
Forms Timeouts
• ICX:Session Timeout, • and ICX:Limit Time
OA Framework Timeouts
• ICX:Session Timeout, • ICX: Limit Time, • and JServ Timeout
Timeouts• Oracle recommends setting the different timeout
parameters to between 30 minutes (default) to 60 minutes. In practice, timeouts as long as 8 hours are common.
• ICX: Session Timeout - (Forms) 480 (minutes) – 8 hours• ICX:Limit Time - 12 hours • ICX:Limit connect – 2000+• Session.timeout (zone.properties) 28800000 – 8 hours • ICX: Session Timeout and Session.timeout should have
the same value.
Timeouts
• The defaults in 11.5.10.2:• ICX: Limit time 999 (hours)• ICX: Limit connect 9000 (# ICX connects)• ICX:Session Timeout 30 (minutes)
Timeouts
• The ICX Profiles handle the Forms Session. This can be confusing since ICX in the past is known to be associated with Self Service. This is no longer the case since the release of Framework for the ICX Profiles that control the Timeout Functionality.
• The Time Out functionality has been setup to work with the URL that calls AppsLocalLogin.jsp during login. The Old ICXINDEX.htm has been replaced since the release of FND G and 11.5.9.
Load Balancing
• The application tier supports load balancing among many of its servers and services to help provide higher availability, fault tolerance, reliability, and optimal scalability. If you have more than one of any of the following types of server, load balancing can be employed:• Web services• Forms services• Concurrent Processing server
TruTek
165787148516148155
Desktop
Database
Web Server (OSSWA)
WebListener JServ
MetadataDictionary
jsp
Data
HTMLInterface
JAVAInterface
JInitiator
Web Browser
Forms Server (Prof Java)
MetricServer
Forms Server1
1
2
34
.fmx
Forms Server2
.fmx
Load Balancing – Forms Servers
Patching• Schedule periodic downtime for proactive
maintenance (functional and technical)• Keep up-to-date on latest AD code• Keep your test system current with production• Keep a separate host/instance for emergency
patching/testing• Perform “uptime” maintenance• Gather schema stats• Patch help system• Apply translation database updates
Patching• Use shared disk to enable shared APPL_TOP
and Distributed AD• Avoid extent allocation errors with autoextend• Combine patches with AD Merge Patch• If you merge your patches, you must carefully
document the patches that are contained in the merged patch. The database won’t have any patch numbers to record in ad_applied_patches.
• Use a staged APPL_TOP• Use non-interactive patching when appropriate
Install/Cloning Technology• Rapid Install “-techstack” option
– iAS 1.0.2.2.2
– RDBMS 9.2.0.3
• Complex cloning– Multi-node to single-node
– RAC support
• iSetup Integration
Patching Enhancements• Parallel index creation• In progress patch status• Improved patch reporting• Additional impact analysis• Eliminate MRC schema• Concurrent AD sessions
11i Patch Utility Enhancements (#1)
• Checkfile feature– Activated with database drivers– Records file and version information in the database– Executes commands only if they have not executed
previously for the highest onsite version of the file– Eliminates need for package revision cache
• Automatic job deferral– Re-tries failed jobs at the end of the phase – Replaces auto restart
11i Patch Utility Enhancements (#2)
• Unified Driver– Requires a single AD Patch run
• AD Merge Patch improvements– Can merge all patch types and driver types– Characterset is converted during merge– Significant performance improvement
• Automated Pre-requisite checking – AD Patch confirms prerequisite is satisfied– Allows for smaller patches, less overhead– Duplicate patch avoidance
11i Patch Utility Enhancements (#3)
• Password Hider– Passwords automatically removed from log files
• Manual Step Elimination– Automatically compiles Apps– Automatically Maintains MRC– Automatically compiles JSP
• Technology Stack Validation Utility– Confirms minimum techstack requirements– Refers to appropriate MetaLink notes
11i Patch Utility Enhancements (#4)
Distributed AD– Apply patches using all your middle tier horsepower to
significantly reduce downtime
adworker16…
adworker20
adworker11…
adworker15
adworker06…
adworker10
adpatchadworker01
…adworker05
Non-interactive Patching
• time adpatch defaultsfile=$APPL_TOP/admin/CONTEXT_defaults.txt logfile=adpatch_3368689.log patchtop=/d01/patch/3368689 workers=3 interactive=yes options=novalidate
TestingWhile Oracle Applications Users are primarily responsible for complete
functional testing, 11i DBA’s and Developers usually provide some level of testing to ensure the technical elements of 11i are all functioning properly before turning the instance over to the users for more complete testing. The technical elements to test include:– Database– Forms– Apache– JSP– JDBC– File>Export– Tools>Copy File
Users should have a set of canned scripts that they run to finish validating the instance. Inevitably, some testing is missed and errors occur in production.
What to Test?• The users should review the patch readme, but
usually don’t. Often, they aren’t aware of new functionality that is introduced by the patch.
• DBAs should summarize the new functionality for the new patches that are being tested. DBAs should also give the users a list of Forms that changed due to the patch. These forms should be tested.
• Use the unified driver that comes with each patch to determine the new .fmb’s being copied into the instance. These are the new forms that need to be tested.
Convert Short Form Name to Long Form Name
SELECT fnd_form.form_name,fnd_form_tl.user_form_name,
fnd_form.last_update_date, fnd_form_tl.last_update_date
FROM applsys.fnd_form, applsys.fnd_form_tl WHERE ((fnd_form.form_id = fnd_form_tl.form_id))
ATG RUP 3 vs ATG RUP4Long Form Name Module Files in ATG RUP3 File Difference
Application Module Parameters Registry AK Common Modules Developer AKDAPREG.fmb
Define Attributes AKDATTRS.fmb
Flow Workbench AKDFLOWB.fmb
Define Flows AKDFLOWS.fmb
Define Foreign Keys AKDOBFKS.fmb
Object Workbench AKDOBJWB.fmb
Define Primary Keys AKDOBPKS.fmb
Run Flows AKDPICKF.fmb
Define Query Objects AKDQUERY.fmb
Define Regions AKDREGNS.fmb
Define LOV Relations AKDRELOR.fmb
Alerts ALERTS ALRALERT.fmb
Define Distribution Lists ALRASDDL.fmb
Define Periodic Sets ALRASDPG.fmb
ALRDAA.fmb
Request Periodic Alert Check ALRPRRPA.fmb
Review Alert Actions ALRRHRAA.fmb
Define Trading Partner User APPSTAND.fmb
Update Table Information AOL - Foundation FNDADDTC.fmb
Document Category FNDATCAT.fmb
Define Audit Tables FNDATDAT.fmb
Documents FNDATDOC.fmb
ECEOUTDF.fmb
Diagnostic Tests – trusted.confAll the directives for restricting access to monitoring services are listed
in file trusted.conf. Follow the steps below to comment the inclusion of trusted.conf:
• Stop Apache using script $COMMON_TOP/admin/scripts/host_sid/adapcctl.sh stop
• Comment the following line in $IAS_ORACLE_HOME/Apache/Apache/conf/apps.conf configuration file.
• #include "/d01/oracle/visora/iAS/Apache/Apache/conf/trusted.conf"• Start Apache using script • $COMMON_TOP/admin/scripts/host_sid/adapcctl.sh start • Note: This is not a permanent change. Once autoconfig is run, will
revert the changes made to apps.conf.
CP A, BWeb A, BForms A, BAdmin
Multi-Node EnvironmentOne Admin NodeTwo Forms NodesTwo Web NodesTwo Concurrent Processing NodesNot using Shared APPL_TOP
CP A, BWeb A, BForms A, BAdmin
1) C driver on Admin node2) C driver on Forms node A3) C driver on Forms node B4) C driver on Web node A5) C driver on Web node B6) C driver on CP node A7) C driver on CP node B
8) D driver on Admin node9) G driver on Forms node A10) G driver on Forms node B11) G driver on Web node A12) G driver on Web node B13) G driver on CP node A14) G driver on CP node B
Standard AD
CP A, BWeb A, BForms A, BAdmin
1) C driver on ALL nodes simultaneously2) D driver on admin node and G driver on all nodes simultaneously
AD Concurrent Sessions
Shared APPL_TOP SystemA traditional multi-node installation of Release 11i requires
each application tier node to maintain its own application tier file system, consisting of the APPL_TOP file system (APPL_TOP and COMMON_TOP directories) and the application tier technology stack file system (8.0.6 and iAS Oracle homes).
• In 2003, the "shared APPL_TOP" architecture was introduced, that allows the sharing of a single APPL_TOP file system with all the application tier nodes of a multi-node system. In Release 11.5.10, the ability to share the APPL_TOP file system was combined with the ability to share the application tier technology stack file system, resulting in the "shared application tier file system" architecture.
Shared Application Tier File System
In a shared file system, all application tier files are installed on a single shared disk resource that is mounted from each application tier node. Any application tier node can be configured to perform any of the standard application tier services, such as serving forms or web pages, or concurrent processing. All changes made to the shared file system are immediately accessible to all the application tier nodes.
Shared Application Tier File SystemRapid Install configures multi-node systems to use a shared application tier file
system as the default. Before you run Rapid Install, you must do the following:
• Determine the shared file system mount pointsRapid Install must be able to access the file system from the same mount point on all the application tier nodes. For example:
– Shared COMMON_TOP: /d01/shared_mount/viscomn – Shared APPL_TOP: /d01/shared_mount/visappl – Shared 806 ORACLE_HOME: /d01/shared_mount/visora/8.0.6 – Shared iAS ORACLE_HOME: /d01/shared_mount/visora/iAS
• Specify mount points in Rapid InstallWhen prompted by the Rapid Install wizard, define the paths to be shared to be the same for each node in the 11i Applications system. The following paths must be the same on each node where the Rapid Install is executed:
– APPL_TOP – COMMON_TOP – 8.0.6 ORACLE_HOME – iAS 1.0.2.2.2 ORACLE_HOME
Merging existing APPL_TOPs• Oracle recommends that the different APPL_TOPs should be
merged into a completely new APPL_TOP to facilitate rollback incase of merge failure.
• Apply application tier patchesVerify that these minimum software levels are met. If necessary, update to the required level by applying the appropriate patch.
• SoftwareMinimum VersionDetailsAD Mini-pack I.1 or higherApply patch 40389644038964
• Maintain snapshot informationLog in to each application tier node as the APPLMGR user and run the maintain snapshot task in AD Administration. See Oracle Applications Maintenance Utilities for more Oracle Applications Maintenance Utilities for more information.
• Merge existing APPL_TOPs
Merging existing APPL_TOPs– Prepare the source system application tier for
mergingChoose one of the source system nodes to be the primary node. This document refers to it as "Node A".
• Log in to Node A as the APPLMGR user and run:
$ cd <COMMON_TOP>/admin/scripts/<CONTEXT_NAME>$ perl adpreclone.pl appsTier merge
• Log in as the APPLMGR user to each of the secondary nodes being merged and run:
$ cd <COMMON_TOP>/admin/scripts/<CONTEXT_NAME>$ perl adpreclone.pl appltop merge
Merging existing APPL_TOPs– Create a copy of Node A (preferred)
If you want to place the merged APPL_TOPs in a new location instead of using an existing APPL_TOP location, create a copy of Node A (the other nodes in the system do not need to be copied). Include the following directories from Node A:
<APPL_TOP><OA_HTML> (when this directory exists)<OA_JAVA><COMMON_TOP>/util<COMMON_TOP>/clone<COMMON_TOP>/_pages (when this directory exists)<806 ORACLE_HOME><iAS ORACLE_HOME>
Merging existing APPL_TOPs– Copy the required files for merging
Log in as the APPLMGR user to each source node and recursively copy:
• directory <COMMON_TOP>/clone/appl- to -
• directory <COMMMON_TOP>/clone/appl on Node A (or the copy of Node A).
Do not copy any other directories from these nodes.– Configure the application tier server nodes
• Shut down all services on each application tier node, including Node A. The database and its listener should remain up.
• Log in to the merged APPL_TOP node as the APPLMGR user and execute the following commands:
$ cd <COMMON_TOP>/clone/bin$ perl adcfgclone.pl appsTier
Merging existing APPL_TOPs
– Finishing tasks• Log in to the target system application tier node as the
APPLMGR user. • Run the following tasks in adadmin for all products:
– generate JAR files – generate message files – relink executables – copy files to destination
• Depending on which tier you chose as the primary node, certain files may be missing. Run adadmin to verify files required at runtime. If any files are listed as missing files, you must manually copy them to the merged APPL_TOP.
• Remove the temporary directory <COMMON_TOP>/clone/appl to reduce disk space usage.
Shared Application Tier File System
• If your system does not have a single APPL_TOP already, you can choose to either share each individual APPL_TOP, or you can merge APPL_TOPs into a single APPL_TOP. Sharing the individual APPL_TOPs will not provide the complete benefits of a shared file system, but does allow immediate ability to scale an existing node type by adding more hardware resources. Merging APPL_TOPs will allow the full benefits of the shared file system.
Cloning
Cloning is faster and easier with:• Shared APPL_TOP with shared disk (NFS, NAS, SAN)• Snapshots and Business Continuance Volumes (BCVs)
DEV
Disks
PROD
Disks
Network
2.
Cloning without a BCV
1. Cleanup DEV2. Shutdown PROD Instance
(350GB)3. Copy Data to Staging Area (4 hrs) 4. Startup PROD Instance5. Copy Staged Data to DEV (6 hrs)6. In parallel, copy COMN, APPL
and ORA, & 10g home7. adcfgclone.pl (1 hr)8. Copy APPL, ORA, and COMN to
APPDEV2 (3 Hours)9. Add Tier10. Post Clone Steps (4 hours)
Areas of improvement – save 10 hours by using BCV (steps 3 & 5), save 3 hours (step 8) by using shared disk
Cloning with a BCV
BCV can be accessed by both Servers
PRODDEV1. Create BCV2. Full Establish – Sync BCV with STD,
while PROD is up and running with light load
3. Shutdown PROD Instance (10 Min)4. Split BCV (10 min)5. Startup PROD (10 min) 6. BCV is now accessible by DEV7. Copy BCV to STD devices on DEV, or8. Start DEV Instance using BCV
AdvantagesReduced Coordination with UNIX SAs3.5 hours less downtime while making copyLess Network Bandwidth required
Cloning Finishing StepsTable Name Column Name Column Value Details
WF_NOTIFICATION_ATTRIBUTES TEXT_VALUE Value starts with http://<old web host> : Update to new web host
WF_ITEM_ATTRIBUTE_VALUES TEXT_VALUE Value starts with "http://<old web host> : Update to new web host
WF_SYSTEMS GUID Create a new system defined as the new global database name using the Workflow Administrator Web Applications responsibility.
WF_SYSTEMS NAME Value needs to be replaced with the database global name
WF_AGENTS ADDRESS Update database link with the new database global name.
FND_FORM_FUNCTIONS WEB_HOST_NAME Update with the new web host name
FND_FORM_FUNCTIONS WEB_AGENT_NAME Update to point at the new PLSQL listener name
FND_CONCURRENT_REQUESTS LOGFILE_NAME Update with the correct path to the logfile directory
FND_CONCURRENT_REQUESTS OUTFILE_NAME Update with the new directory path on the target system
Business Event System
Cloning Finishing StepsIf OWF.H or higher is applied, run txkWfClone.sh $COMMON_TOP/admin/install/<context>/txkWfClone.sh. This script updates all of the WF tables from source to target.
Syntax: sh $COMMON_TOP/admin/install/$CONTEXT_NAME/txkWfClone.sh
apps <apps_pw>
Example: source APPSORA.envsh $COMMON_TOP/admin/install/$CONTEXT_NAME/txkWfClone.sh
apps apps
Install
• Save the config.txt to a permanent directory, not /tmp• Download the latest RapidWiz from
http://edelivery.oracle.com/ -> Select English -> Continue -> Select:
Product Pack : E-Business Suite Platform : ie Linux x86 Click Go
Make Sure you have J2SE installed. Before Installing 11i, on 11.5.10, Rapidwiz, installs the J2SE 1.4.2 automatically for systems running on Sun Solaris, Linux, or Windows Operating Systems.
If your system runs on HP-UX PA-RISC, HP-Tru64, or IBM AIX, you must download and install J2SE BEFORE you continue with the installation or upgrade.
X Display ServerEnable All the X Clients : # xhost +This command, will grant the security to execute Xwindows on all the
clients.Set the DISPLAY environment variableVerify that your DISPLAY
variable is correctly set pointing to your PC Client running the XServer.
For Example: DISPLAY=192.168.1.15:0.0 export DISPLAYSet umask 022 :To be sure that Rapidwiz will create directories and
files with sufficient permissions, set the umask value to 022 before starting the installation. Setting umask to 022 ensures that group and others have read and execute permissions, but not write permission.
Note 124816.1 : Set umask correctly before starting 11i RapidwizNote 68304.1 : What is umask ?
ulimitSet 'ulimit' Parameters as 'unlimited' : (Using
Korn Shell)
The following command will display the current ulimit settings :
$ ulimit -a time(seconds) : unlimited file(blocks) :unlimiteddata(kbytes) : 131072stack(kbytes) : 2048 memory(kbytes): 216272coredump(blocks) : unlimitednofiles(descriptors) : 4096vmemory(kbytes) : 1048576
Set all of them as unlimited as follows :
ulimit -t unlimitedulimit -f unlimitedulimit -d unlimitedulimit -s unlimitedulimit -m unlimitedulimit -c unlimitedulimit -n unlimitedulimit -v unlimited
Forms Personalization in Oracle Applications
The Forms Personalization feature allows you to declaratively alter the behavior of Forms-based screens, including changing properties, executing builtins, displaying messages, and adding menu entries.
• Allows you to make declarative changes to a form.• Changes get applied at runtime when the proper trigger
event occurs.• Changes can get applied based on who you are and
other conditions• You can:
– Change object properties– Execute certain Forms builtins– Display messages– Activate menu entries
Form Personalizations• Form Personalizations allows you to
fundamentally alter the behavior of the product that Oracle ships, and access any and all data. Therefore,
• This feature should only be made available to trusted users.
• Avoid building Personalizations on a production system. – Form Personalizations should first be entered and
thoroughly QA’ed on a test system before they are loaded to a production system
How to Personalize
Run the form that you want to modify• Select Help > Diagnostics > CustomCode
> Personalize from the pulldown menu– Profiles ‘Utilities: Diagnostics’ and ‘Hide
Diagnostics menu entry’ control access to this entry
• The Personalizations screen will now run– It will automatically query any rules if they
exist for that function
Forms Personalizations• Personalizations are created by invoking Help >
Diagnostics > Custom Code > Personalize on the pulldown menu
• Profile ‘Hide Diagnostics menu entry’ – ‘No’: makes the Diagnostics menu entry visible– ‘Yes’: hides the menu entry completely
• Profile ‘Utilities:Diagnostics’– ‘Yes’: allows direct access of the feature– ‘No’: requires entry of the Apps password first
• These same profiles control access to features like ‘Examine’, ‘Item Properties’ and ‘Trace’– Like Form Personalizations, these features can be used to
change or view any data!
Forms Personalizations
• Setting both ‘Hide Diagnostics’ and ‘Utilities: Diagnostics’ to ‘No’ for all users is highly desirable. This way, if a clerk has an issue a DBA can stop by and immediately enable debugging features by supplying the Apps password. HOWEVER, you must log out after doing that otherwise the clerk will have access to those dangerous functions.
• Personalizations are created per Function, not per Form
Forms Personalizations
Forms Personalizations• Rules govern when personalizations get evaluated:• Function Name: the name of the function that you ran.
Personalizations are made for a function, not a form.• Seq: an ordering from 1 (first) to 100 (last)• Description: allows you to record why you are making the
change• Enabled: used to temporarily disable a rule• Trigger Event: the event within the form that causes
invocation of the rule • Trigger object: the context for the trigger event, such as a
particular block or item• Condition: an optional SQL fragment that, when it evaluates
to TRUE, allows the rule to execute. An Advanced class describes Conditions.
Forms Personalizations
Forms PersonalizationsContext controls who personalizations apply to:• Level: Site, Responsibility, Industry, or User• Value: The specific value when level is Responsibility, Industry, or
User• At runtime, if the user’s context matches any context of a rule, that
rule is executed.
Context is not a hierarchy• If a Rule has a context of ‘Site’, it will be applied for everyone• A rule with a context of Responsibility does not ‘override’ Site• A rule with a context of User does not ‘override’ Site or
Responsibility• If 2 rules have the same Trigger Event, and Actions that change the
same property, the rule with the higher sequence number will be performed last, thus it will ‘win’
Forms Personalizations
• When an event occurs in the form, we look for all Rules that match that Trigger Event and Trigger Object– Starting with the Rule that has the lowest sequence,
• if the Condition is empty or evaluates to TRUE, we process each enabled Action, in the order of the Action Sequence
– Then we look for the next-highest sequenced Rule and process it, until there are no more Rules for that Event.
– Then the event is passed to the CUSTOM library
Forms PersonalizationsActions determine what the personalization does:• Seq: an ordering from 1 (first) to 100 (last)• Type: Property, Message, Builtin, or Special• Depending on the Type, the panel will change to show
additional fields• Description: allows you to record why you are making
the change• Language: a list of installed languages, and ‘ALL’• An action associated with a specific language will only be
executed in the context of that language• Enabled: used to temporarily disable an action
Select By Text
Used to set a property of an item•Select By Text…: choose an object by it’s onscreen text•Object Type and Target Object: internal identifier of the object•Property Name: the property to change•Value: the new value•Get Value: extract the current property value into the Value field
Actions: Property Example
Actions: Message
Used to display a popup messageMessage Type: Error, Warning, Hint, Question, DebugMessage Text: the text of the message
Actions: Message Example
Custom Library• CUSTOM is a stub library Oracle ships that
receives Trigger Events. Customers are free to add any code they like to it.
• CUSTOM and Form Personalizations drive off the same Trigger Events– Form Personalizations are processed first, then the
event is sent to CUSTOM• CUSTOM can do more because it has complete
access to all PL/SQL and SQL• But for most changes, Form Personalizations
are adequate and are significantly simpler.
Custom Library• The CUSTOM library is an alternative mechanism for
changing behavior, which requires coding– It can do more than Form Personalization because it has the full
power of the PL/SQL• Form Personalization and CUSTOM drive off the exact
same events. – Form Personalization processes them first, then passes them to
the CUSTOM library.• Both respond identically to the Custom Code events
'Normal', 'Off' and 'Core Code Only'. • Use the Form Personalization feature whenever possible
– Only use the CUSTOM library when significantly more complex processing is required.
Personalization in Oracle Applications Framework
Personalization LevelsThe built-in personalization UI facilitates a variety
of personalization features at a number of levels by user group.
Oracle Applications DeveloperOracle Applications AdministratorOracle Applications UserApplication Users can save personalized views of a query results
region and retrieve them at a later time. User level personalizations aren't seen by other users
OA Framework Personalization
OA Personalization Framework
OA Framework includes the OA Personalization Framework and allows you to personalize your user interface (UI) of Oracle Self-Service Web Applications without modifying any underlying code. Personalizing the appearance of or the data displayed in an Oracle Self-Service Web Application page is as easy as changing your web browser preferences.
• Following are some common types of personalizations you can accomplish with OA Personalization Framework: – Change the prompt for a field or other text on a page – Hide or show a field on a page – Reorder fields or items on a page – Restrict data that a user can access – Add new buttons, links, text items, images, etc. – Restrict query results in a table
• With OA Personalization Framework, your personalizations are reflected immediately on the page
Personalizing OA Framework Applications
• There are many aspects of OA Framework applications that system administrators, developers and end-users can personalize.
Menus and Responsibilities• Use the Menu and Responsibility forms to personalize and maintain
security for Oracle Self-Service Web Applications. Use the forms to assign specific responsibilities to your users and designate the menus that are available to the users of a given responsibility.
FND Messages and Lookups• Use the Messages and Lookups forms to modify existing, or define
new messages and lookups, respectively. For example, you may need to create additional messages for an application for your users or may want to add new lookup values to a lookup type for your site.
Oracle Applications Administrator
• Site Level: the local administrator can introduce global personalizations that affect all users with access to the subject UI component, such as, the number of rows displayed in a table
• Responsibility Level: the local administrator can create personalizations that apply to all users with a specific responsibility that access a particular UI component.
• Organization Level: the local administrator can introduce personalizations that affect all users belonging to a particular organization or business unit with access to the subject UI component.
• Function Level: the local administrator can define functions and use them as a context for granular level personalizations.
• Localization Level: the local administrator can use locales as context for personalizations, for example, using a different postal code format based on country settings.
Administrator Personalizations• Number of rows displayed in a table.• Product branding (image).• Region header icon.• Hide or show regions and items.• Layout order of regions and items within the boundaries
of the parent region.• Include or exclude descriptive flexfield segments.• Up to three sorting levels for tabulated data.• Filtering (restrict querying) of tabular data.• Item labels and region headers.• Required state of non-mandatory items.
System PersonalizationsThe following are some cross application personalizations
facilitated by both the OA Framework and AOL:• Branding• Style sheets• Attribute Sets• Images• Responsibilities• Menus• Messages• Lookup Codes• Pre-packaged Flexfields
End User Personalizations• Unlike Administrators, Users can create and save several
personalized views that can be retrieved conveniently at anytime thereafter. That said, end User personalized views are limited in scope to Query regions with search results tables. For these regions, end Users can personalize any of the following features:
• Number of rows displayed in a table.• Hide or show regions and items (results table columns are a popular
example).• Change the layout order of regions and items within the boundaries
of the parent region (order of 10 results table columns are a popular example).
• Up to three sorting levels for tabulated data.• Filter (restrict query) tabular data.• Item labels and region headers.• Totals for table columns, when applicable.
Profile Options Required By the OA Personalization Framework
Two system profile options affect the behavior of the OA Personalization Framework:
Personalize Self-Service Defn (FND_CUSTOM_OA_DEFINTION)• Set this profile option to Yes or No at the user level for an administrator or at
the responsibility level for the system administrator. When you set this profile option to Yes, two things occur when you log on as an Admin-level user or responsibility:
– A global Personalize button appears on each self-service web application page. When you select the global Personalize button on any page, the personalization user interface prompts you for the administrative level at which you wish to create your personalizations. A navigation tree then lets you navigate to the region (or nested region) to personalize.
– Personalize Region links appear for every personalizable region on each self-service web application page. When you select a Personalize Region link, the personalization user interface first prompts you for the administrative level at which you wish to create your personalization, then takes you directly to the page to personalize.
• You can choose the Personalize button or Personalize Region links to create your personalizations.
OA Framework Personalization
Profile Options Required By the OA Personalization Framework
Disable Self-Service Personal (FND_DISABLE_OA_CUSTOMIZATIONS)
• You can set this profile option to Yes or No at the site or application level. If this system profile option is set to Yes, any personalizations you make, regardless of the level at which you make the personalizations, will not be applied.
• Only the original base definition of each self-service web application page is ever displayed. Use this profile option to help Oracle support staff determine whether a problem arises from applied personalizations or from the base application.
Creating Admin-Level Personalizations
Before anyone can personalize a region at an Admin level, you must perform these initial steps:
1. Define an administrative user in Oracle Applications.
2. Set the "Personalize Self-Service Defn" profile option to Yes for that user.
Every self-service web application page contains a global Personalize button. This profile option enables the global Personalize button on every page and displays Personalize Region links for every personalizable region so that the administrative user can personalize any page or region.
Per instance personalizations are available with OA Framework 11.5.10.
Personalize a Region at the Admin level
1. Sign-on to Oracle Self-Service Web Applications as a user who has Admin-level personalization access.
2. Select a responsibility. 3. Navigate to the application page that contains the region
you wish to personalize. 4. Choose the Personalize ... link above the region you
wish to personalize or select the Personalize Region global button.
• Note: If the region is a table, the Personalize Region link appears below the table.
• Attention: If you wish to create an "Admin-seeded user-level" personalization for a table (or hierarchy table) in a Query region, select the Personalize Region link below the table. Do not use the Personalize Region global button, as this eventually requires you to drill through the entire region hierarchy tree, which is not supported when you personalize at the Admin-seeded user-level.
Personalize a Region at the Admin level
5. In the Personalization Level field, select the administrative level at which you wish to personalize the region.
Attention: To create an "Admin-seeded user-level" personalization, select the value User in the Personalization Level field.
6. On the next page, enter a value appropriate for the Personalization level you selected.
The Site and User levels do not require any value as the personalization applies to all users of the current site. Other levels, such as Responsibility or Function, for example, require a specific responsibility or function name, respectively.
7. If you initially selected the Personalize Region link for a specific region, the Create View or Update View page for that region should appear. Use the Create View or Update View page to create a new view or update the existing personalized view of the region.
Personalize a Region at the Admin level
8. If you initially selected the global Personalize Region button, a navigation tree appears to the left of the Create View or Update View page. The tree displays the hierarchy of all the regions that make up the current application page and allows you to navigate to any region within the page. Select the region you wish to personalize from the navigation tree to display the Create View or Update View page for that region.
9. If you selected to personalize a table (or hierarchy table) within a query region at the User level, a list of available seeded views for that table region appears in the Personal Table Views page. You may select one of these views to edit in the Update View page. You may also select the Create View button to create a new seeded user-level view. The new seeded user-level personalization is later listed in the Personal Table Views region.
Target Workflow Tables for Purging:
wf_items• wf_item_attribute_values• wf_notification_attributes• wf_notifications• wf_item_activity_statuses• wf_item_activity_statuses_h• wf_activities• wf_activity_attributes• wf_process_activities• wf_activity_values• wf_activity_transactions
Workflow Administration Purging
The following steps combined to form one approach that has been used with success.
1. Submit the Purge Obsolete Workflow Runtime Data concurrent request (FNDWFPR)You can do this at any time. This is the first thing to do, as it will purge any and all data
related to Worflow processes that have terminated normally. If process data does not get purged using this method, then move on to the next step.
Use the standard concurrent program FNDWFPR ”Purge Obsolete Workflow Runtime Data” to purge old data from the Oracle Workflow runtime tables regularly.
You can supply the following parameters for the ”Purge Obsolete Workflow Runtime Data” concurrent program:Item Type — The item type to purge. Leaving this field blank defaults to purging the runtime data for all item types.Item Key — The item key to purge. Leaving this field blank defaults to purging the runtime data for all item keys.Age — Minimum age of data to purge, in days.
wfstat.sqlFrom within SQL, run the wfstat.sql script to list any
particular process item type that is not being purged. • If it returns a status of 'ACTIVE' in the
WF_ITEM_ACTIVITY_STATUSES table, yet the WF_NOTIFICATIONS table shows the status for this item as being 'CLOSED', then there may be a problem with how the process was executed.
• The process may have never run to completion for whatever reason, or it may have terminated abnormally. If only a few are not being purged, try updating the table status, or move on to the next step.
bde_wf_data.sql
• Run the script bde_wf_data.sql - Note 165316.1
• This queries all data that is considered to be eligible for purging. This is a useful and highly recommended script
wfrmitms.sql - wfrmtype.sqlRun wfrmitms.sql and wfrmtype.sqlYou can also use two provided SQL scripts to assist in the
purge process:
$FND_TOP/sql/wfrmitms.sql$FND_TOP/sql/wfrmtype.sql
Again, please use these scripts with caution. Any process notifications that the scripts purge by accident will need to be re-submitted.
Target workflow tables for purging
• wf_items• wf_item_attribute_values• wf_notification_attributes• wf_notifications• wf_item_activity_statuses• wf_item_activity_statuses_h• wf_activities• wf_activity_attributes• wf_process_activities• wf_activity_values• wf_activity_transactions
Purge Scripts - Step by Stepselect count(*), item_type from wf_items group by item_type
Running script to cleanup the workflow dataGo to $FND_TOP/sql , login SQLPLUS as apps and do the following: SQL>@wfrmtype Enter Item Type to purge: PAAPINVW Purge ALL items associated with this item type, or only completed items? Enter ALL for all data, leave blank to delete only complete data: ALL
SQL>@wfrmtype Enter Item Type to purge: PAXWFHRU Purge ALL items associated with this item type, or only completed items? Enter ALL for all data, leave blank to delete only complete data: ALL
Purging Notificationsa) Login to Sqlplus as the Apps user and run the following query:
select notification_id, end_datefrom wf_notifications;
This will return all the rows still remaining in the table after having gone through a normal purge process.
b) Select one of the remaining ones that have an old end_date and run this query:
select item_type, item_keyfrom wf_item_activity_statuseswhere notification_id = <#> ;this corresponds to the
notification_id you picked.
This will more than likely return a row.
Purging
c) Run the next query for your item type: select * from wf_itemswhere item_type = 'item_type' ;this corresponds to the
item_type you have
That will also have an entry.d) Execute the following procedure to remove all entries
related to the item: SQL> execute wf_purge.total('item_type','item_key')
Purging
e) Run $FND_TOP/sqlwfstat.sql script
Specify the item_type, and item_key from step 5.(d). It should return no rows.
f) If the item still shows in table wf_notifications, run the following procedure from SQL:
SQL> execute wf_purge.notifications(null,'end_date')
Here, either specify an end_date if you have a large number of old remaining notifications, or specify an item_type or item_key.
Purging
These scripts are used to further analyze the data:1) select count(*), item_type from wf_itemsgroup by item_typeCOUNT(*) ITEM_TYPE
23342 XDPWFSTD16212 WFERROR1204 OEOL1144 HRSSA332 OEOH149 POWFRQAG148 CS_KB_WF98 POSPOACK
Purging
select count(*), status, mail_status, recipient_role from applsys.wf_notificationsgroup by status, mail_status, recipient_roleorder by count(*) desc
COUNT(*) STATUS MAIL_STATUS RECIPIENT_ROLE53666 OPEN FND_RESP535:2170416511 OPEN MAIL SYSADMIN365 CLOSED FND_RESP535:21704151 CLOSED SENT SYSADMIN141 CLOSED SYSADMIN90 CANCELED SYSADMIN67 CANCELED SENT SYSADMIN62 CANCELED ASMITH52 CLOSED DALE41 CLOSED MMAC36 CLOSED JOHN31 OPEN ERROR SYSADMIN29 CANCELED MKTMGR25 OPEN STEVEM
R12 Architecture
R12 Architecture
R12 Architecture
Shared Apps Tier Mount Points• The following is an example of mount points shared on each application tier
node:• COMMON_TOP: /d01/shared_mount/apps/apps_st/viscomn • APPL_TOP: /d01/shared_mount/apps/apps_st/visappl • 10.1.2 ORACLE_HOME: /d01/shared_mount/apps/tech_st/visora/10.1.2 • 10.1.3 ORACLE_HOME: /d01/shared_mount/apps/tech_st/visora/10.1.3 • In the figure shown below, entitled "Shared Application Tier File System",
Server-ap6012rt is the primary application tier node, and uses the file systems "/d01/shared_mount" and "/d01/local" . The file system "/d01/local" contains the Instance Home, and "/d01/shared_mount" contains the APPL_TOP, COMMON_TOP, 10.1.2 Oracle Home and 10.1.3 Oracle Home.
• Server-ap6011rt is the secondary application tier node, and the shared file system "/d01/shared_mount" is also mounted on this node. The file systems "/d01/local/apps/<CONTEXT NAME for Server-ap6012rt>" and "/d01/local/apps/<CONTEXT NAME for Server-ap6011rt>"are only visible on the respective nodes.
Release 12 Architecture
Release 12
• The latest version of Oracle Containers for Java (OC4J), the successor to JServ, isincluded in Oracle Application Server 10g 10.1.3.
• All major services are started out of the 10.1.3 ORACLE_HOME.
• The Applications modules (packaged in the file formsapp.eap) are deployed intothe OC4J-Forms instance running out of the 10.1.3 ORACLE_HOME, while the frmweb executable is invoked out of the 10.1.2 ORACLE_HOME.
ORACLE_HOMEs• The 10g Release 2 (10.2) Database Server ORACLE_HOME replaces the Oracle9i ORACLE_HOME used in Release 11i.
• The Application Server 10.1.2 ORACLE_HOME (sometimes referred to as the Tools, C, or Developer ORACLE_HOME) replaces the 8.0.6 ORACLE_HOME provided by Oracle9i Application Server 1.0.2.2.2 in Release 11i.
• The Application Server 10.1.3 ORACLE_HOME (sometimes referred to as the Web or Java ORACLE_HOME) replaces the 8.1.7-based ORACLE_HOME provided by Oracle9i Application Server 1.0.2.2.2 in Release 11i.
Web Services
The Web services component of Oracle Application Server processes requests received over the network from the desktop clients, and includes the following components:• Web Listener (Oracle HTTP Server powered by Apache)• Java Servlet Engine (OC4J)• Oracle Process Manager (OPMN)
Web ServerThe Web listener component of the Oracle HTTP server
accepts incoming HTTP requests (for particular URLs) from client browsers, and routes the requests to the appropriate OC4J container.
If possible, the Web server services the requests itself, for example by returning the HTML to construct a simple Web page. If the page referenced by the URL needs advanced processing, the listener passes the request on to the servlet engine, which contacts the database server as needed.
HTML-Based Applications and the Oracle Applications Framework
The Oracle HTML-based Applications (formerly known as Self-Service Applications) have the following characteristics:
• Do not use Oracle Forms for the interface• Are designed in pure HTML and JavaScript• Dynamically generate HTML pages by executing
Java code• Use a metadata dictionary for flexible layout• Operate by direct connection to the Web server
Oracle Applications FrameworkThe Oracle Applications Framework is the development platform for HTML-basedapplications. It consists of a Java-based application tier framework and associatedServices.
• Business Components for Java (BC4J), included in Oracle JDeveloper, is used to create Java business components for representing business logic. It also provides a mechanism for mapping relational tables to Java objects, and allows the separation of the application business logic from the user interface.
• AOL/J supplies the Oracle Applications Framework with underlying security and applications Java services. It provides the Oracle Applications Framework with its connection to the database, and with application-specific functionality such as flexfields.
The Framework-based applications logic is controlled by procedures that executethrough the Java servlet engine, which is provided by the Apache JServ module.
The servlet engine uses the metadata dictionary in constructing the Framework UI.
Java Servlet Access with HTML Applications
HTML-based Applications use the following access path:
1. The user clicks the hyperlink of a function from a browser.2. The browser makes a URL request to the Web listener.3. The Web listener contacts the Servlet engine (OC4J), where it runs a JSP.4. The JSP obtains the content from the Applications tables and uses information from the metadata dictionary to construct the HTML page. 5. The resulting HTML page is passed back to the browser, via the Web server.
Forms ServicesBy default, Forms services in Oracle Applications Release
12 are provided by the Forms listener servlet, which, as described further below, facilitates the use of firewalls, load balancing, proxies, and other networking options.
Benefits of using the Forms listener servlet include:
• Ability to re-establish dropped network connections• Fewer machines and ports need to be exposed at the
firewall• Easier firewall/proxy server configuration• More robust and secure deployment over the Internet
Forms Listener Servlet ArchitectureThe Forms listener servlet is a Java servlet that allows Oracle Forms
applications to run over HTTP or HTTPS connections. It hosts the Oracle Applications forms and associated runtime engine, mediating the communication between the desktop client and the Oracle database server, displaying client screens, and initiating changes in the database.
The Forms listener servlet caches data and provides it to the client as needed, for example when scrolling through multiple order lines that exceed the limitations of a single screen.
Forms listener servlet can communicate with the desktop client using these network protocols:
• Standard HTTP network connection• Secure HTTPS network connection• TCP/IP connection
Forms Listener ServletThe Forms listener servlet communicates with the Oracle
database server using the Oracle Netnetworking infrastructure.
The Forms listener servlet manages the creation of a Forms runtime process for each client, as well as network communications between the client and its associated Forms runtime process. The client sends HTTP requests and receives HTTP responses from the Web services, which acts as the network endpoint for the client.
Note: Although the OC4J-Forms instance runs out of the Oracle Application Server (AS) 10.1.3 ORACLE_HOME, the frmweb executable is invoked out of the AS 10.1.2 ORACLE_HOME.
Forms Socket Mode ArchitectureIn the traditional Forms server socket mode architecture,
when a user initiates an action in the Forms client applet (such as entering data into a field or clicking a button), data is passed to a Forms server on the application tier.
The user interface logic runs in the Forms server, and determines the appropriate user interface effect based on the user's action.
For example, a window may open, or another field value may be populated. If necessary, the database tier is contacted for any data not already cached on the application tier, or for data-intensive processing.
Forms Socket Mode
Once a connection has been made, many operations can be performed with little or nofurther interaction with the Forms server.
For example, when a few field values change in response to a user action, there is no need to update the entire screen. In this scenario, only the changed fields are updated with the new values.
Choice of ModeBy default Oracle Applications Release 12 utilizes
Forms listener servlet mode. However, socket mode is still fully supported, and its use may be required in a WAN environment, to improve performance.
Note: For more details of utilizing Forms Socket Mode, see Oracle MetaLink Note 384241.1.