Every iAS, 8i or 9i $ORACLE_HOME must be registered on a Global Inventory.
The Global Inventory (oraInventory directory), contains pointers to each Local Inventory located under $ORACLE_HOME/inventory for every ORACLE_HOME.
The Local Inventories contain the local versions of the products installed on that $ORACLE_HOME.
On Unix/Linux platforms, the location of the Global Inventory is defined by the variable "inventory_loc" which is set on the file oraInst.loc.
ie:inventory_loc=/u01/oracle/oraInventory
This file, is located under /etc on Linux and AIX and under /var/opt/oracle on on Solaris, HP-UX and Tru64.
On Windows platforms, the location of the Global Inventory is defined by the Registry variable "inst_loc" located on HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE.
Note:
1. Unlike 9i and above, 8.0.6 ORACLE_HOMEs can't be registered since they don't use the Global Inventory.
2. Incase of Oracle Applications, RapidClone uses the OUI bundle to register Cloned ORACLE_HOMEs into the Global Inventory. Registration of an ORACLE_HOME allows OUI to be used to maintain or patch that ORACLE_HOME.
3. Whenever you are applying any patch for the OUI, in order to prevent permission problems, before applying this patch, make sure the Operating System users that own iAS and 8i or 9i have read/write access on the Global Inventory.
Wednesday, August 08, 2007
Tuesday, August 07, 2007
Send mail via Sendmail
Hey c'mon, whats this guy doing ? This site doesnt have a continuity to the previous topics .. is that what you think when you read the articles from here ? Then hold on !! I am just trying put all the info I got in my mind and I have to do and then do the reordering .. SO JUST HOLD ON :)
Ok.. I have a quick example of sending a mail using sendmail utility of Linux / Unix. You get lots of examples when you do google ofcourse. Here's my example:
1. To check if sendmail is up and running:
$ ps -ef grep sendmail
2. If it not started, start the service using root user:
# service sendmail start
3. To send a mail, use this syntax:
$ sendmail < Enter_email_address >
< write the mail here i.e., body >
Press Control+D to run the save the mail and send.
Now the mail will go. If you need to send some HTML File or use cc or bcc, easiest way is to create a HTML file and send it. You can follow these steps:
1. Create a HTML file as follows:
$ vi a.html
To: Pavan.Pvj@gmail.com
Subject: Workflow Test from Sendmail
Mime-Version : 1.0
Content-Type: text/html;
charset=us-ascii
Content-Transfer-Encoding: 7bit
<html> <head> <title> Oracle Workflow Notification </title> </head>
<body>
<font color="red" size="7"> HELLOOO WORLD </font>
</body> </html>
-- Save this file.
2. Now, use sendmail to send this HTML File. The To, CC, Subject and other details are automatically parsed by the sendmail utility. So, use the following syntax to send the mail:
$sendmail -oi -t <a.html
Ok.. I have a quick example of sending a mail using sendmail utility of Linux / Unix. You get lots of examples when you do google ofcourse. Here's my example:
1. To check if sendmail is up and running:
$ ps -ef grep sendmail
2. If it not started, start the service using root user:
# service sendmail start
3. To send a mail, use this syntax:
$ sendmail < Enter_email_address >
< write the mail here i.e., body >
Press Control+D to run the save the mail and send.
Now the mail will go. If you need to send some HTML File or use cc or bcc, easiest way is to create a HTML file and send it. You can follow these steps:
1. Create a HTML file as follows:
$ vi a.html
To: Pavan.Pvj@gmail.com
Subject: Workflow Test from Sendmail
Mime-Version : 1.0
Content-Type: text/html;
charset=us-ascii
Content-Transfer-Encoding: 7bit
<html> <head> <title> Oracle Workflow Notification </title> </head>
<body>
<font color="red" size="7"> HELLOOO WORLD </font>
</body> </html>
-- Save this file.
2. Now, use sendmail to send this HTML File. The To, CC, Subject and other details are automatically parsed by the sendmail utility. So, use the following syntax to send the mail:
$sendmail -oi -t <a.html
Sunday, August 05, 2007
Oracle AIA - Application Integration Architecture
- Oracle Application Integration Architecture -
Hey c'mon, another new technology from Oracle ???. Dont worry !! man. Dont panic by listening to this. For some of us, the name itself looks very complicated and hard. Oracle always brings old concepts in a new and better ways to make the Administrator's life easy. AIA is yet another beautiful concept from Oracle Corp.
Imagine these existing scenarios:
1. You have a legacy application which tries to collect the data from the users and try to push into your ERP (Oracle Applications OR SAP OR Peoplesoft or anyother).
2. You have implemented an ERP application in your organization spending lots of rupees. Once you start your business, you ave suppliers, vendors, customers who has their ERP applications, legacy systems which send the data in different formats into your ERP.
(I can give many more examples like this ..)
Now, you have these questions in front of you:
1. How much man power do you need to maintain these systems and to enter the data manually coming from different sources.
2. What if your business grows enormously and you get lots of data ? Would you increase the man power or try to automate the system ?
3. Do you need to spend the amount again to automate this system (this feature may or may not be in your existing ERP system).
4. If the feature is not available, do you need to go for the 3rd party products ? If yes, then how much does it cost ? How many people are needed to support this new product ? etc etc ... and the questions continue ..
Ahhh !!! If this is a very big company like the Cisco or Sun Microsystems, its fine !! they can afford this price and time spent on this. Question now is what about the SOHO (Small Office Home Office) users ?
How can they automate this ? The answer is use the technology revolution - Use SOA Architecture.
Oracle has built the AIA based on purely SOA architecture. This architecture leverages the technology and helps integrating heterogenous systems into a single system and easily pass the data between them, make validations, analyze the data and the type of data and amount of data passed and many other features.
Oracle AIA offers pre-integrated packs integrations. Using these, we can try to integrate the existing systems with Oracle Applications ERP easily with small configurations. Ofcourse, they do cost a bit, but the amount of work needed by a company in investing on a 3rd party product reduces and the development on the same too reduces, thereby saving lots of rupees.
More on AIA coming shortly.... until then google yourself on the same ;)
Hey c'mon, another new technology from Oracle ???. Dont worry !! man. Dont panic by listening to this. For some of us, the name itself looks very complicated and hard. Oracle always brings old concepts in a new and better ways to make the Administrator's life easy. AIA is yet another beautiful concept from Oracle Corp.
Imagine these existing scenarios:
1. You have a legacy application which tries to collect the data from the users and try to push into your ERP (Oracle Applications OR SAP OR Peoplesoft or anyother).
2. You have implemented an ERP application in your organization spending lots of rupees. Once you start your business, you ave suppliers, vendors, customers who has their ERP applications, legacy systems which send the data in different formats into your ERP.
(I can give many more examples like this ..)
Now, you have these questions in front of you:
1. How much man power do you need to maintain these systems and to enter the data manually coming from different sources.
2. What if your business grows enormously and you get lots of data ? Would you increase the man power or try to automate the system ?
3. Do you need to spend the amount again to automate this system (this feature may or may not be in your existing ERP system).
4. If the feature is not available, do you need to go for the 3rd party products ? If yes, then how much does it cost ? How many people are needed to support this new product ? etc etc ... and the questions continue ..
Ahhh !!! If this is a very big company like the Cisco or Sun Microsystems, its fine !! they can afford this price and time spent on this. Question now is what about the SOHO (Small Office Home Office) users ?
How can they automate this ? The answer is use the technology revolution - Use SOA Architecture.
Oracle has built the AIA based on purely SOA architecture. This architecture leverages the technology and helps integrating heterogenous systems into a single system and easily pass the data between them, make validations, analyze the data and the type of data and amount of data passed and many other features.
Oracle AIA offers pre-integrated packs integrations. Using these, we can try to integrate the existing systems with Oracle Applications ERP easily with small configurations. Ofcourse, they do cost a bit, but the amount of work needed by a company in investing on a 3rd party product reduces and the development on the same too reduces, thereby saving lots of rupees.
More on AIA coming shortly.... until then google yourself on the same ;)
Concurrent Manager - Lesson 2
I dont want to give same old stuff in the System Administrator guide. I would like to give more information on general things in Concurrent managers in this writing.
Concurrent managers are the one way of running the background programs in a structured and a standard way. Any program that can be run in the background should take the help of concurrent managers to get completed i.e., in other words, concurrent managers are the environment or the containers that manage the life cycle of the background programs. If you well aware of the OOPS concept, understand concurrent managers is easy.
All the info in Oracle is stored in the database only. First we will the important tables, that the concurrent managers use to store the data.
FND_CONCURRENT_QUEUES - This is the table where all the concurrent manager definitions are stored. This table describers all about the concurrent managers. Managers in other words are called Queues. These are NOT AQs or any other persistent queues. They just take and run the programs one-by-one in a queue manner and so is the name.
FND_CONCURRENT_PROCESSES - This table stores the run-time information of the concurrent managers or the running instance of the concurrent managers. We can assume the records in this table as the object of the record in fnd_concurrent_queues.
One record in fnd_concurrent_queues can have multiple records in fnd_concurrent_processes.
In other words, FND_CONCURRENT_QUEUES is the design time table and FND_CONCURRENT_PROCESSES is the runtime table.
FND_ENV_CONTEXT - Each manager would use the environment settings in the Operating system to do run. For this, each concurrent process logs a record per environment variable in this table. When you want to check what value of the environment variable a concurrent manager aka process is using, you can check this table. This is also a runtime table.
FND_NODES - This is one of the most important tables when we talk about the concurrent managers. The concurrent managers start on the node by spawning an executable FNDLIBR where the adcmctl.sh script (this is the script which is used to start the concurrent managers). The node information like hostname, platform etc is taken from this table.
All the runtime information about the process would be stored in FND_CONCURRENT_PROCESSES table. This table is dynamic table meaning, if you stop the concurrent managers and truncate this table and restart the concurrent managers, they will again populate the records in this table. As I told you this is just the instances of the concurrent managers. They will be active only when you start the concurrent managers.
Thats enough now for the tables. Now, when the concurrent managers are started, each manager which is enabled in the fnd_concurrent_queues table would kick-off and spawn 'x' number of processes at the O/S level. This 'x' number of processes are also picked up from the same table. Each process of the manager would then take the requests in a queue (from fnd_concurrent_requests table) and then run the request in the background. You can view the output and the progress of the request in the SRS form in the Oracle Applications front-end.
Next, I would tell you whats the sequence in which the concurrent managers start.
Concurrent managers are the one way of running the background programs in a structured and a standard way. Any program that can be run in the background should take the help of concurrent managers to get completed i.e., in other words, concurrent managers are the environment or the containers that manage the life cycle of the background programs. If you well aware of the OOPS concept, understand concurrent managers is easy.
All the info in Oracle is stored in the database only. First we will the important tables, that the concurrent managers use to store the data.
FND_CONCURRENT_QUEUES - This is the table where all the concurrent manager definitions are stored. This table describers all about the concurrent managers. Managers in other words are called Queues. These are NOT AQs or any other persistent queues. They just take and run the programs one-by-one in a queue manner and so is the name.
FND_CONCURRENT_PROCESSES - This table stores the run-time information of the concurrent managers or the running instance of the concurrent managers. We can assume the records in this table as the object of the record in fnd_concurrent_queues.
One record in fnd_concurrent_queues can have multiple records in fnd_concurrent_processes.
In other words, FND_CONCURRENT_QUEUES is the design time table and FND_CONCURRENT_PROCESSES is the runtime table.
FND_ENV_CONTEXT - Each manager would use the environment settings in the Operating system to do run. For this, each concurrent process logs a record per environment variable in this table. When you want to check what value of the environment variable a concurrent manager aka process is using, you can check this table. This is also a runtime table.
FND_NODES - This is one of the most important tables when we talk about the concurrent managers. The concurrent managers start on the node by spawning an executable FNDLIBR where the adcmctl.sh script (this is the script which is used to start the concurrent managers). The node information like hostname, platform etc is taken from this table.
All the runtime information about the process would be stored in FND_CONCURRENT_PROCESSES table. This table is dynamic table meaning, if you stop the concurrent managers and truncate this table and restart the concurrent managers, they will again populate the records in this table. As I told you this is just the instances of the concurrent managers. They will be active only when you start the concurrent managers.
Thats enough now for the tables. Now, when the concurrent managers are started, each manager which is enabled in the fnd_concurrent_queues table would kick-off and spawn 'x' number of processes at the O/S level. This 'x' number of processes are also picked up from the same table. Each process of the manager would then take the requests in a queue (from fnd_concurrent_requests table) and then run the request in the background. You can view the output and the progress of the request in the SRS form in the Oracle Applications front-end.
Next, I would tell you whats the sequence in which the concurrent managers start.
Friday, August 03, 2007
Concurrent Manager - Lesson 1
Introduction:
I know this is a very very very old topic for the Apps DBAs. I am writing this topic for the newbies - for those who are new to the Oracle Applications. Oldies and Veterans in Apps can skip this topic and stop yelling at me after reading this :)
I will give the introduction to Concurrent Managers (CCM) in this topic so that it would be a smooth fly-off for the novices to start off. Just to mention, I would use Oracle Applications and Oracle E-Business Suite (EBS) interchangably in my topics.
Any application needs to have a way of running the programs at the background without the user intervention. Programs running in the program utilizes a CPU's resource and time correctly. Oracle Applications is no different from this. This is a huge product that comprises of around 200+ products each having its own jobs for specific needs.
For example, in a HR (Human Resources) module, if you need to generate a payroll, the HR analyst need not wait until all the payrolls are generated, he can just submit the payroll for the machine to run in the backend and he can continue with his other work.
Such a kind of programs which are run at the back-end without the user invention are termed as Concurrent programs in Oracle Applications.
Now, another small concept. To run an exe, we need something that needs to run this exe. An exe wont execute all by itself. Some entity should be existing which interprets and understands the instructions in this exe. That entity in Windows is the command prompt and in Linux is the shell. Another example is to run a Java class, we need an environment which is nothing but the JRE - Java runtime environment which understands the class file and runs the class file or in other words, manages the life cycle of the class - (Life cycle - a) loading the class into memory and b) running the class and c) removing incase the class file is not used)
Similarly for Oracle Applications, to run the concurrent programs, we need an environment or the interpretor which manages the life cycle of the concurrent program and that entity is named as Concurrent Managers which are the heart of the Oracle Applications.
Thats it !! Simply understand what these two are and we will see more in my next tutorial as to how are both of these used in Apps.
I know this is a very very very old topic for the Apps DBAs. I am writing this topic for the newbies - for those who are new to the Oracle Applications. Oldies and Veterans in Apps can skip this topic and stop yelling at me after reading this :)
I will give the introduction to Concurrent Managers (CCM) in this topic so that it would be a smooth fly-off for the novices to start off. Just to mention, I would use Oracle Applications and Oracle E-Business Suite (EBS) interchangably in my topics.
Any application needs to have a way of running the programs at the background without the user intervention. Programs running in the program utilizes a CPU's resource and time correctly. Oracle Applications is no different from this. This is a huge product that comprises of around 200+ products each having its own jobs for specific needs.
For example, in a HR (Human Resources) module, if you need to generate a payroll, the HR analyst need not wait until all the payrolls are generated, he can just submit the payroll for the machine to run in the backend and he can continue with his other work.
Such a kind of programs which are run at the back-end without the user invention are termed as Concurrent programs in Oracle Applications.
Now, another small concept. To run an exe, we need something that needs to run this exe. An exe wont execute all by itself. Some entity should be existing which interprets and understands the instructions in this exe. That entity in Windows is the command prompt and in Linux is the shell. Another example is to run a Java class, we need an environment which is nothing but the JRE - Java runtime environment which understands the class file and runs the class file or in other words, manages the life cycle of the class - (Life cycle - a) loading the class into memory and b) running the class and c) removing incase the class file is not used)
Similarly for Oracle Applications, to run the concurrent programs, we need an environment or the interpretor which manages the life cycle of the concurrent program and that entity is named as Concurrent Managers which are the heart of the Oracle Applications.
Thats it !! Simply understand what these two are and we will see more in my next tutorial as to how are both of these used in Apps.
Thursday, August 02, 2007
How to find out the Oracle iAS version ?
Very Simple !!!!
From 9.0.4 version of iAS, Oracle uses a file called as ias.properties which exists in $ORACLE_HOME/config directory, where ORACLE_HOME is the location where the IAS (OR) Web Center (OR) SOA Suite are installed.
We can get the version of the IAS in this file under [InstallData] section as follows:
Version=10.1.2.0.2
Pretty simple isnt it ? :)
This file also lists
a) if infra database is used or not
b) name of the INFRA datbasename
c) Virtual Hostname
d) it would also contain if Infra is on RAC nodes
e) OID host and port numbers
f) SSL Enabled
g) and Finally, what all components did we install as a part of the installation (of IAS or SOA Suite or WebCenter).
This information is useful especially when we want find out what components are installed while patching or quickly find out the ports of OID etc. If any new DBA / iAS Administrator comes up, he can check this file to know the TYPE of installation that was done.
From 9.0.4 version of iAS, Oracle uses a file called as ias.properties which exists in $ORACLE_HOME/config directory, where ORACLE_HOME is the location where the IAS (OR) Web Center (OR) SOA Suite are installed.
We can get the version of the IAS in this file under [InstallData] section as follows:
Version=10.1.2.0.2
Pretty simple isnt it ? :)
This file also lists
a) if infra database is used or not
b) name of the INFRA datbasename
c) Virtual Hostname
d) it would also contain if Infra is on RAC nodes
e) OID host and port numbers
f) SSL Enabled
g) and Finally, what all components did we install as a part of the installation (of IAS or SOA Suite or WebCenter).
This information is useful especially when we want find out what components are installed while patching or quickly find out the ports of OID etc. If any new DBA / iAS Administrator comes up, he can check this file to know the TYPE of installation that was done.
Subscribe to:
Comments (Atom)