« March 2007 | Main | May 2007 »

April 28, 2007

Pro actively Monitoring your E-Business Suite using Oracle Applications Manager.

Pro actively Monitoring your E-Business Suite using Oracle Applications Manager.

As DBA i would not need to emphasize on the importance of pro active monitoring. This is all the more useful if you involved in supporting an existing system. The Oracle Applications Manager (OAM) provides some nice tools which allow the your to monitor your instance pro actively.

The first page when you log on into OAM also know as the Applications dash board give you a general over view of your system, something that you should really visit every morning. i will break up this page into further pats to discuss each of them  separately



The first section above shows the over all system status of your instances including the number of servers there are and  what are the components each of these have on them. It also show the status of each of these components. for example in the above screenshot you can see that there is some problem in your concurrent processing tier.



This section displays the system generated alerts and the alerts that have been initiated by the users. A user initiated alert  happens when the user identified a problem and reports it via the support cart.



This section gives us information on the changes that have happened to the system in the past 24 hours which include new patches applied, profile option changes and context file edition.

Just below this section you can also check the status of your web components. This i will discuss later on.

The monitoring for Oracle Application via the OAM can be classified under

  • Database
  • Forms Server
  • JVM
  • Concurrent Managers
  • Workflow
  • Web Components

Database Monitoring
This is the next section available in the availability section. This again has a nice detailed information about your Current  Database status. The navigation for this is
OAM->Site Map->Monitoring->Availability-> Database

This section of the database status show the general DB information like DB name host name etc.



This section shows the wait events of your database and the memory usage by your SGA etc.



The next section shows the all the information of your tablespaces

The section below shows the status of your rollback segments

Additionally you can also get information on your database sessions and invalid objects in your instance through the following reports

OAM->Site Map->Monitoring->Current Activity-> Database Sessions
OAM->Site Map->Monitoring->Current Activity-> Invalid Objects.



You can get a report based on a date range.

You can also get the SQL activity happing in your database from OAM. The place where you can find this is
OAM->Site Map->Monitoring->Performance->SQL Activity



The information here can be used to perform any database tuning activity on your instance and the information is generated using the afamsact.sql script.

Also available is the init.ora settings for your Oracle Applications database. You can get to this by the following navigation.
OAM->Site Map->Monitoring->System Configuration->Database Init.ora Setting

Apart from showing the current settings it also shows the recommended setting for your instance.

Forms Server Monitoring
The Forms section in the availably section show the status of your forms listener. This happens only if your forms listener is being monitored using Generic Service Management (GSM).The navigation for this report is.
OAM->Site Map->Monitoring->Availability->Forms.



Additionally you can also see your forms runtime process and forms sessions using the following navigation paths.
OAM->Site Map->Monitoring->Current Activity->Forms Runtime Processes
OAM->Site Map->Monitoring->Current Activity->Forms Sessions
This report will be available only if you have set your Sing-On Audit Level to FORM in your system profiles.

Java Virtual Machine Monitoring
You can also get a detailed report of the jserv usage from OAM.
Navigation OAM->Site Map->Monotoring->Performance->Jserv

If you want a detailed and a more cosmetic way to monitor your jserv you can try to do this using jconsole from sun.

Concurrent Managers Monitoring
There are various reports in the concurrent managers sections which provide your information on the concurrent processing of your instance.

Internal Concurrent Manager
The internal concurrent manager sections shows the status  of the ICM. You can use the following navigation for this
OAM->Site Map->Monitoring->Availability->Internal Concurrent Manager.


Request Processing Mangers
This section allows you to view and monitor alll the your concurrent managers along with your standard manager. You can also start stop restart and deactivate your concurrent managers from this screen.
OAM->Site Map->Monitoring->Availability->request Processing Manager.

Transaction Managers.
As the name implies here you can view the status of your transaction managers.as with the above to screen you can start restart stop abort and deactivate your transaction managers from here also.
OAM->Site Map->Monitoring->Availability->Transaction Manager.

Concurrent Requests charts.
You can also have various graphical presentations of your concurrent requets through OAM. You can navigate to
OAM->Site Map->Monitoring->Performance->Concurrent Processing Charts.
Here you can get various reports like
Top Running Requests by CPU
Top Running Requests by PGA
Longest Running Requests
Requests Waiting on Locks



Concurrent Request Reports
You can also get a detailed reports regarding your concurrent requests. These reports can be grouped by username, program or  usage statistics. Navigation path is
OAM->Site Map->Monitoring->Usage->Concurrent Processing Reports

Workflows Monitoring
The status of your workflow components can also be monitored using OAM. This screen here shows the status of your workflow components which include notification mailers, agent listeners and service components. You can also drill down each of these components to get a detailed listing.
Navigation Path OAM->Site Map->Monitoring->Availability->Workflow



Web Components Monitoring
The web components part shows the status of the web components as discussed eralier in the applications dash board.
Navigation Path is OAM->Site Map->Monitoring->Availability->Web Components

The web components report shows the status of your
PL/SQL Agent
Servlet Agent
JSP Agent
JTF
Discoverer
Personal homepage
TCF

April 18, 2007

Cache invalidation in Oracle Applications

Cache invalidation in Oracle Applications

With the extended usage of Self Service Web Applications(SSWA) in Oracle Applications, the mechanism of cache invalidation assumes significant importance. In the process of supporting Oracle Application i am sure most of you would have already come across the cache invalidation mechanism and problems associated with it in Oracle Applications.

What do you mean by cache Invalidation?
The main purpose of the web cache is to cache frequently used data and reduce application response time for the end user. However in order to maintain the relevance of the cached data it is important that the old is flushed out or invalidated and new data is cached again. This process is referred to as cache invalidation. All the web server which support web cache have different mechanisms to deal with the invalidation process. These may be time based date based etc.Also invalidation maybe either automatic that is triggered by the application /Server itself or it may be manual like from the console or a simple deletion from the backend.

Cache Invalidation In Oracle Applications
The core web server of Oracle Applications is the apache based Oracle Application Server. The Oracle application Server Web Cache has the ability to cache both static and dynamic data.

The different methods of Invalidation supported by the Oracle Application Server Web Cache are

  • Manual Invalidation through Web Server Console
  • Manual invalidation through a telnet to the web server.
  • Invalidation using PL/SQL,this is available via the wxvutil.sql scriptthe which can be obtained from http://otn.oracle.com/software/products/ias/web_cache/files/api_plsql.zip
  • Invalidation from a JSP using the jesi:invalidation tag


Based on the circumstances encountered Oracle Applications also uses these mechanisms to perform cache invalidation to render the most relevant information when using self service web applications.

Oracle Applications implements a Cache Framework to effectively handle the caching mechanisms in E-Business Suite. This framework primarily includes

  • Cache Manager: The cache manager is responsible for interacting between the business APIs and the cache components. The business APis request data from the cache via this manager.
  • Cache Components: The actual data is stored in the form of cache components. The data is distributed in various cache components based of the attributes.
  • Cache Class Loader: Each of the cache components are associated with a cache calss loader. when the data is requested by the business APIs via the cache manager to the cache component, if the object is present it is given back and in case of a miss (also referred as a cache miss) the cache class loader is responsible for fetching the data from the database and loading it into the cache component.


A common case of improper of cache invalidation is when you add a self service responsibility to a user and the user is not able to see that responsibility immediately. A work around is that you manually  clear the cache or bounce your web server after which the change is reflected (as it does a force invalidation of your cache).However if you have applied your latest patches and roll ups you would not see this problem.

The Oracle Application cache Framework supports the following features

  • Preloading: Preloading allows certain objects to be preloaded in the cache component along with the startup of the JVM. This increases performance by eliminating the need to lod the objects via the class loader.
  • Distribution: In case of multiple JVMs in use the caching framework ensures that cache changes and invalidations are propogated in all the caches.
  • Dadatabse Invalidation. the caching framework in applications also provides for an invalidation request to be originated from the database level. This means the database cahnges to the cached objects are sent as invalidation requests to the cache. To enable this feature you must however make sure that the Workflow Java Deferred Agent Listener is started in your instance.
  • Event Support: Also supported by the applications cache framework is the support for events. This ensures that there is synchronization between inter dependent data in the cache. For this purpose event handlers are registered within the cache components.

You can run diagnostic test on your cache by going to the
http://<hostname>:<port>/OA_HTML/jtflogin.jsp

Another mechanism adopted by the web cache along with invalidation is Expiration. Expiration happens when the objects in the web cache are marked as invalid after a certain period of time. While invalidation is used for randomly changing objects the expiration method is adopted for objects which do not change so frequently.

April 07, 2007

Installing Oracle Enterprise Linux

Installing Oracle Enterprise Linux

During the last years Oracle Open World when Oracle released the Oracle Enterprise Linux it took many of us by surprised. Though i had felt oracle would sooner or later venture into the OS market i did not expect it to happen so soon.
I had put up a post on Oracle Enterprise Linux when the OOW was in progress. Since then i was waiting get my hands on this product. Finally i did find a chance to install and evaluate Oracle Enterprise Linux.In the current post i am talking abut my experience with this new Linux offering from Oracle.

You can download a copy of the Oracle Enterprise Linux from
http://edelivery.oracle.com/linux

After you make the selection for the type of Linux you will get the following parts

  • Enterprise Linux 4 update 4 for x86 (CD 1 of 8)
  • Enterprise Linux 4 update 4 for x86 (CD 2 of 8)
  • Enterprise Linux 4 update 4 for x86 (CD 3 of 8)
  • Enterprise Linux 4 update 4 for x86 (CD 4 of 8)
  • Enterprise Linux 4 update 4 for x86 Source (CD 5 of 8)
  • Enterprise Linux 4 update 4 for x86 Source (CD 6 of 8)
  • Enterprise Linux 4 update 4 for x86 Source (CD 7 of 8)
  • Enterprise Linux 4 update 4 for x86 Source (CD 8 of 8)

If you do not want the source code and just need to install Linux you can do with downloading the first four parts only.These parts are in a zip format iso images so you may want to burn them on your CD or DVDs before you can proceed with the installation.

To start the installation you must set your server to boot up with the CD rom and insert the frist CD.
The first screen after you get after your server boots up with the Oracle Linux CD 1 will give you options either to do a text based installation or a graphical UI installation.



I selected the GUI installation, the next screen you get is the welcome message from Oracle Enterprise Linux installation.



Now select the language in which you want to do your installation in, remember this is not your OS default language.



Next make a selection for the type of keyboard you have on your server.



Next select the type of instillation you wish to have, most likely you will have to choose server if you are installation it on a server and plan to use it for Oracle Applications.



Now select the method you wish to use to create your disk partitions. You can either do it manually using fdisk or use a GUI based tool like disk druid.



I used disk druid and made the following partitions.
/
/usr
swap
/boot
/u01
/u02



Now select the file system where you want to install your boot loader. You can choose not install a boot loader also but in that case you would need to create a boot disk for your server to start up.



Next specify the hostname and domain name details of your server, also you can specify your DNS settings and you gateway information here.



Next is the firewall configuration settings, be sure to disable your firewall and SELinux if you plan to install Oracle Applications. The runInstaller will not be able to ping your database with the firewall on.At a later stage if you wish you can choose to enable your firewall.



Next you select the default language for your enterprise linux server.



Next select the time zone for your server.



Now select the OS packages you wish to install, again if you planning for Oracle applications it is important that you install all the development packages.



The installer will now prompt you to start the installation.



As a first step the installer first created and formats the partitions that you defiened using Disk Druid earlier.



The installation then starts which should take an approximate of 20-30 minutes based your server hardware configuration.



After the installation is complete the installer will ask you to reboot your server after removing any bootable disk from the  CDRom drives.



After the server boots up you must provide some post installation information, like time and date as well as your sound card test and display before you can start using your server.



As a part of your post installation step you are also asked to create a non system users to perform general system administration.



After you complete you post installation you can log in to your Oracle enterprise Linux as root or any other newly created  user.




The Oracle Enterprise Linux now loads up with a nice looking finilar interface ;)

April 03, 2007

Implementing Oracle Applications i Modules

Implementing Oracle Applications i Modules

The latest release of Oracle Applications 11i and the current Release 12 include a number of i modules which have been included. These of course may require separate licenses before you can implement them.In my current post today i will talk about implementing these imodules from an APPS DBA view point.
imodules are de abbreviated as internet modules. As the name suggests these modules are internet enabled out of the box. They are mostly developed on the in line with the Oracle Self Service Web Applications. These modules are essentially targeted at the external customers of the organization who use the Oracle ebusiness suite, though at times we do have internal users 
also accessing these imodules.

Each of these imodules belong to a family of Oracle Applications product for example isupplier belongs to the purchasing family.

The various imodules that release 12 offers are

  • iStore (Order Management)
  • iSupplier (Purchasing)
  • iProcurement (Purchasing)
  • iReceivables (Financials)
  • iExpenses (Financials)
  • iAssets (Financials)
  • iRecruitment (Human Resources)
  • iLearning (Learning Management)
  • iSupport (Service)

DMZ Configuration
DMZ stands for a De Militarized Zone. It is that portion of an organizations network that is outside the internal firewall or outside the Secure or Militarized Zone. Since the main users of your imodules would be the external users. you would require to implement a DMZ configuration with Oracle Applications so that your external users can access your E Business Suite. There various methods and architectures which can be used to implement at DMZ within Oracle Applications. You could also have multiple URLs for your internal and external users in a DMZ configuration. For more details you can refer to the metalink Note Oracle E-Business Suite 11i Configuration in a DMZ Note ID (287176.1).

Security
A major and immediate risk of exposing your applications to the external users is of security. Once you have setup up your  applications to be internet enabled, you must take immediate steps to secure your applications before going live. There are various certified methods of implementing security in a DMZ environment. like Implementing SSL, Implementing an external 
firewall, implementing a reverse proxy between the external users and the external web server. To know more about securing your Oracle Applications environment you could refer to the metalink note Best Practices for Securing Oracle E-Business Suite - v2.1 (Doc ID: 189367.1).

Pre requisites
If you are on the latest release of Oracle Applications then generally the only pre requisite you have before you can implement the imodules is that you must have the corresponding family fully installed and setup. For example to  implement iSupplier in Oracle Application 11.5.10.2 is that you must have first installed and implemented Oracle Purchasing. In previous releases of Oracle Applications you might have to apply additional patches using adpatch or splice in new products through adsplicer.

User Administration
Since the imodules will also be accessed by external users the administration for the external users can be setup differently. Generally you can have a customized self service user registration screen for registering your external users. An example of an iSupplier Self Service registration is shown below.



Users Access
You must set up responsibilities for your External and Internal users explicitly. You must flag the external users responsibility. In this case only these set of responsibilities would be accessible to the external users thereby enhancing your application security. The imodules also comes with seeded responsibilities for the internal users like the iSupplier Portal Internal View. In case you want to give your internal users access to these imodules you must assign them these 
responsibilities manually.