<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oracle Docs. - Your Oracle documents are here...</title>
	<atom:link href="http://www.oracledocs.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.oracledocs.com</link>
	<description></description>
	<lastBuildDate>Thu, 08 Mar 2012 07:41:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>How To Install The Grid Control 10.2.0.4 Agent on Solaris Sparc</title>
		<link>http://www.oracledocs.com/how-to-install-the-grid-control-10-2-0-4-agent-on-solaris-sparc.html</link>
		<comments>http://www.oracledocs.com/how-to-install-the-grid-control-10-2-0-4-agent-on-solaris-sparc.html#comments</comments>
		<pubDate>Thu, 08 Mar 2012 07:41:41 +0000</pubDate>
		<dc:creator>Seyhan</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[10g]]></category>
		<category><![CDATA[grid control]]></category>
		<category><![CDATA[grid control 10.2.0.4]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[solaris sparc]]></category>

		<guid isPermaLink="false">http://www.oracledocs.com/?p=1014</guid>
		<description><![CDATA[Background &#38; Overview This document details how to install the Grid Control Agent 10.2.0.4 onto any 10g or 9i database host running on Solaris. Assumptions &#38; Pre-Requisites The following assumptions and pre-requisites are assumed:- The NFS mount point /net/hostname/u01/app/oracle/GRID/oms10g/sysman/agent_download exists on the server you intend to install the Grid Control agent. A Grid Control repository [...]]]></description>
			<content:encoded><![CDATA[<h2 id="toc0">Background &amp; Overview</h2>
<p>This document details how to install the Grid Control Agent 10.2.0.4 onto any 10g or 9i database host running on Solaris.</p>
<h2 id="toc1">Assumptions &amp; Pre-Requisites</h2>
<p>The following assumptions and pre-requisites are assumed:-</p>
<ul>
<li>The <strong>NFS</strong> mount point <strong>/net/hostname/u01/app/oracle/GRID/oms10g/sysman/agent_download</strong> exists on the server you intend to install the <strong>Grid Control</strong> agent.</li>
<li>A <strong>Grid Control</strong> repository has been built according the documentation listed here.</li>
<li>The <strong>Agent Download</strong> directory has been configured as detailed in the Grid Control Config Guide</li>
</ul>
<h2 id="toc2">Useful Information</h2>
<ul>
<li>Read the Known Issues section below.</li>
<li>The install for a <strong>VCS</strong> cluster uses a <strong>staticports.ini</strong> file. This allows the port number for the agent to be defined at install time. This is required if installing more than one agent on a host, as each agent must have a different port number.</li>
<li>More than one agent on a host is only needed if the host has multiple sets of Oracle binaries that failover independently of each other. If there is only one set of Oracle binaries or the binaries do not failover independent of each other, then the entries in the <strong>staticports.ini</strong> file should be hashed out using a <strong>#</strong> or the file removed altogether.</li>
<li>It is possible to ignore the <strong>statictports.ini</strong> steps if only one <strong>agent</strong> is being installed or if <strong>ALL</strong> agents on the host are up and running on the host where the <strong>agent</strong> is being installed.</li>
<li>When installing an agent on a <strong>VCS</strong> cluster, it is important that the <strong>agent</strong> is installed into a failover mount point.</li>
</ul>
<h2 id="toc3">Step-By-Step Guide</h2>
<h3 id="toc4">Installing the Agent on a Solaris Standalone Server</h3>
<p>1. Log onto the server where the agent is to be installed.</p>
<p>2. Make sure you have the correct <strong>oraInst.loc</strong> file in place.</p>
<p>3. Unset the variables</p>
<blockquote>
<ul>
<li>unset ORACLE_HOME</li>
<li>unset ORACLE_BASE</li>
<li>unset ORACLE_SID</li>
</ul>
</blockquote>
<p>4. Set the Agent Install and DBSNP Password variable</p>
<blockquote>
<ul>
<li>export AGENT_INSTALL_PASSWORD=password
<ul>
<li><strong>NB</strong> The password specified above is the current <strong>OMS</strong> registration password.</li>
</ul>
</li>
<li>export DBSNMP_PASSWORD=password
<ul>
<li><strong>NB</strong> The password specified above is the current <strong>DBSNMP</strong> password.</li>
</ul>
</li>
<li>export AGENT_HOSTNAME=hostname</li>
</ul>
</blockquote>
<p>5. Copy the <strong>agentDownload</strong> file to the local host.</p>
<blockquote>
<ul>
<li>cd /u01/app/oracle</li>
<li>mkdir -p SOFTWARE/agent10g</li>
<li>cd SOFTWARE/agent10g</li>
<li>cp /net/hostname/u01/app/oracle/GRID/oms10g/sysman/agent_download/10.2.0.4.0/solaris/agentDownload.solaris agentDownload.solaris</li>
<li>chmod 755 agentDownload.solaris</li>
<li>./agentDownload.solaris -b agent_base -m OMS_hostname -r OMS_portno</li>
<li><strong>WARNING</strong> Be careful to specify the <strong>Agent Base</strong> and <strong>NOT</strong> the <strong>Agent Install Location</strong>.</li>
<li>Check the <strong>agent10g</strong> logfile located <strong>/u01/app/oracle/SOFTWARE/agent10g/agentDownload10.2.0.4.0Oui/ErrLog.log</strong></li>
</ul>
</blockquote>
<p>6. Shutdown the Agent</p>
<blockquote>
<ul>
<li>cd agent_home/bin
<ul>
<li><strong>NB</strong> The agent home is agent_base/agent10g where agent_base is the value specified in the install step above.</li>
</ul>
</li>
<li>./emctl stop agent</li>
</ul>
</blockquote>
<p>7. Get a <strong>UNIX</strong> administrator to run <strong>root.sh</strong> from the <strong>agent10g</strong> home driectory.</p>
<p>8. Start the Agent</p>
<blockquote>
<ul>
<li>cd agent_home/bin
<ul>
<li><strong>NB</strong> The agent home is agent_base/agent10g where agent_base is the value specified in the install step above.</li>
</ul>
</li>
<li>./emctl start agent</li>
</ul>
</blockquote>
<p>9. Follow the <strong>Step-By-Step</strong> guide <strong>Configuring the Agent Install</strong> shown below.</p>
<h3 id="toc5">Installing the Agent on a Solaris RAC Server</h3>
<p>1. Log onto the server where the agent is to be installed.</p>
<p>2. Make sure you have the correct <strong>oraInst.loc</strong> file in place.</p>
<p>3. Unset the variables</p>
<blockquote>
<ul>
<li>unset ORACLE_HOME</li>
<li>unset ORACLE_BASE</li>
<li>unset ORACLE_SID</li>
</ul>
</blockquote>
<p>4. Set the Agent Install and DBSNP Password variable</p>
<blockquote>
<ul>
<li>export AGENT_INSTALL_PASSWORD=password
<ul>
<li><strong>NB</strong> The password specified above is the current <strong>OMS</strong> registration password.</li>
</ul>
</li>
<li>export DBSNMP_PASSWORD=password
<ul>
<li><strong>NB</strong> The password specified above is the current <strong>DBSNMP</strong> password.</li>
</ul>
</li>
<li>export AGENT_HOSTNAME=hostname</li>
</ul>
</blockquote>
<p>5. Copy the <strong>agentDownload</strong> file to the local host.</p>
<blockquote>
<ul>
<li>cd /u01/app/oracle</li>
<li>mkdir -p SOFTWARE/agent10g</li>
<li>cd SOFTWARE/agent10g</li>
<li>cp /net/hostname/u01/app/oracle/GRID/oms10g/sysman/agent_download/10.2.0.4.0/solaris/agentDownload.solaris agentDownload.solaris</li>
<li>chmod 755 agentDownload.solaris</li>
<li>./agentDownload.solaris -b agent_base -m hostname -r port_no -c node1,node2,node3 -n clustername
<ul>
<li>node1,node2,node3 are the nodes hosting the RAC cluster</li>
<li>clustername is the name of the RAC cluster ( to get cluster name run /bin/cemutlo -n</li>
</ul>
</li>
<li><strong>WARNING</strong> Be careful to specify the <strong>Agent Base</strong> and <strong>NOT</strong> the <strong>Agent Install Location</strong>.</li>
<li>Check the <strong>agent10g</strong> logfile located <strong>/u01/app/oracle/SOFTWARE/agent10g/agentDownload10.2.0.4.0Oui/ErrLog.log</strong></li>
</ul>
</blockquote>
<p>6. Shutdown the Agent</p>
<blockquote>
<ul>
<li>cd agent_home/bin
<ul>
<li><strong>NB</strong> The agent home is agent_base/agent10g where agent_base is the value specified in the install step above.</li>
</ul>
</li>
<li>./emctl stop agent</li>
</ul>
</blockquote>
<p>7. Get a <strong>UNIX</strong> administrator to run <strong>root.sh</strong> from the <strong>agent10g</strong> home driectory.</p>
<p>8. Start the Agent</p>
<blockquote>
<ul>
<li>cd agent_home/bin
<ul>
<li><strong>NB</strong> The agent home is agent_base/agent10g where agent_base is the value specified in the install step above.</li>
</ul>
</li>
<li>./emctl start agent</li>
</ul>
</blockquote>
<p>9. Follow the <strong>Step-By-Step</strong> guide <strong>Configuring the Agent Install</strong> shown below.</p>
<p><strong>NOTE</strong> You will have to manually install the fix_agent.ksh script on the other nodes in the cluster.</p>
<h3 id="toc6">Installing the Agent on a Solaris VCS Cluster</h3>
<p>1. Log onto the server where the agent is to be installed.</p>
<p>2. Unset the variables</p>
<blockquote>
<ul>
<li>unset ORACLE_HOME</li>
<li>unset ORACLE_BASE</li>
<li>unset ORACLE_SID</li>
</ul>
</blockquote>
<p>2. Set the Agent Install and DBSNP Password variable</p>
<blockquote>
<ul>
<li>export AGENT_INSTALL_PASSWORD=password
<ul>
<li><strong>NB</strong> The password specified above is the current <strong>OMS</strong> registration password.</li>
</ul>
</li>
<li>export DBSNMP_PASSWORD=password
<ul>
<li><strong>NB</strong> The password specified above is the current <strong>DBSNMP</strong> password.</li>
</ul>
</li>
<li>export AGENT_HOSTNAME=hostname</li>
</ul>
</blockquote>
<p>3. Copy the <strong>agentDownload</strong> file to the local host.</p>
<blockquote>
<ul>
<li>cd /u01/app/oracle</li>
<li>mkdir -p SOFTWARE/agent10g</li>
<li>cd SOFTWARE/agent10g</li>
</ul>
</blockquote>
<p>4. Copy the <strong>VCS</strong> <strong>oraInst.loc</strong> file to the <strong>agent10g</strong> software directory.</p>
<blockquote>
<ul>
<li>cd /u01/app/oracle/SOFTWARE/agent10g</li>
<li>cp /net/hostname/u01/app/oracle/GRID/oms10g/sysman/agent_download/10.2.0.4.0/solaris/custom/VCSoraInst.loc oraInst.loc</li>
</ul>
</blockquote>
<p>5. Copy the <strong>staticports.ini</strong> file to the <strong>agent10g</strong> software directory.</p>
<blockquote>
<ul>
<li>cd /u01/app/oracle/SOFTWARE/agent10g</li>
<li>cp /net/hostname/u01/app/oracle/GRID/oms10g/sysman/agent_download/10.2.0.4.0/solaris/custom/staticports.ini staticports.ini</li>
</ul>
</blockquote>
<p>6. Update the <strong>staticports.ini</strong> file with a valid port number.</p>
<blockquote>
<ul>
<li>vi staticports.ini</li>
<li>%s/port_num/VALID_PORT_NO/g</li>
<li><strong>NB</strong> If installing multiple agents on the same server for each set of binaries, the port number must be different for each agent. If installing just one agent, then the line can be hashed out.</li>
</ul>
</blockquote>
<p>7. Run the <strong>agentDownload</strong> script</p>
<blockquote>
<ul>
<li>cp /net/hostname/u01/app/oracle/GRID/oms10g/sysman/agent_download/10.2.0.4.0/solaris/agentDownload.solaris agentDownload.solaris</li>
<li>chmod 755 agentDownload.solaris</li>
<li>./agentDownload.solaris -b agent_base -m OMS_hostname -r OMS_portno -i /u01/app/oracle/SOFTWARE/agent10g/oraInst.loc -p /u01/app/oracle/SOFTWARE/agent10g/staticports.ini</li>
<li><strong>WARNING</strong> Be careful to specify the <strong>Agent Base</strong> and <strong>NOT</strong> the <strong>Agent Install Location</strong>.</li>
<li>Check the <strong>agent10</strong> logfile located /u01/app/oracle/SOFTWARE/agent10g/agentDownload10.2.0.4.0Oui/ErrLog.log</li>
</ul>
</blockquote>
<p>8. Shutdown the Agent</p>
<blockquote>
<ul>
<li>cd agent_home/bin
<ul>
<li><strong>NB</strong> The agent home is agent_base/agent10g where agent_base is the value specified in the install step above.</li>
</ul>
</li>
<li>./emctl stop agent</li>
</ul>
</blockquote>
<p>9. Get a <strong>UNIX</strong> administrator to run <strong>root.sh</strong> from the <strong>agent10g</strong> home driectory.</p>
<p>10. Start the Agent</p>
<blockquote>
<ul>
<li>cd agent_home/bin</li>
<li><strong>NB</strong> The agent home is agent_base/agent10g where agent_base is the value specified in the install step above.</li>
<li>./emctl start agent</li>
</ul>
</blockquote>
<p>10. Follow the <strong>Step-By-Step</strong> guide <strong>Configuring the Agent Install</strong> shown below.</p>
<h3 id="toc7">Configuring the Agent Install</h3>
<p>1. Configure <strong>Proxy &amp; Connection Settings</strong> for the new agent.</p>
<blockquote>
<ul>
<li>In the <strong>Grid Control Console</strong> click on the <strong>Home</strong> tab.</li>
<li>Click <strong>setup</strong> in the top right hand corner.</li>
<li>Click on <strong>Patching Setup</strong> in the menu on the left hand side.</li>
<li>Click on <strong>Proxy &amp; Connection Settings</strong></li>
<li>Ensure the <strong>radio</strong> button for <strong>Manual proxy configuration</strong> is selected.</li>
<li>Ensure the <strong>Host</strong> is set to proxyhostname.domain</li>
<li>Ensure the <strong>port</strong> is set to portno</li>
<li>In the list of <strong>Don&#8217;t proxy for</strong> hosts add the new agent <strong>hostname</strong> to the comma separated list.</li>
<li>Ensure the <strong>Realm</strong> is set to local</li>
<li>Ensure the <strong>Username</strong> is set to proxy username</li>
<li>Enter a valid password</li>
<li>Click <strong>Apply</strong></li>
</ul>
</blockquote>
<h2 id="toc8">Known Issues</h2>
<h3 id="toc9">Error when Trying to Configure a Database</h3>
<h4 id="toc10">Description</h4>
<p>The following error messages may be reported in the <strong>emagent.trc</strong> when trying to configure a database target or after the agent install has completed.</p>
<blockquote><p>SQL = &#8221; OCIPing&#8221;&#8230;<br />
LOGIN = dbsnmp/&lt;PW&gt;@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=1521))(CONNECT_DATA=(SID=SIDNAME)))<br />
2009-06-05 12:13:26,567 Thread-432 WARN vpxoci: OCI Error &#8212; ErrorCode(3113): ORA-03113: end-of-file on communication channel</p></blockquote>
<p>In addition, in the <strong>Targets Not Configured</strong> page of the the <strong>Grid Control</strong> front end you will get errors similar to the following</p>
<blockquote><p>Get dynamic property error,Dynamic Category property error<br />
Compute dynamic property takes too long</p></blockquote>
<h4 id="toc11">Cause</h4>
<p>This is a bug reltaing to the way the patched <strong>10.2.0.4</strong> agent interacts with database at version <strong>9.2.0.7</strong> or below.</p>
<h4 id="toc12">Fix Step-By-Step</h4>
<p>1. Log onto the database having the error and grant <strong>sysdba</strong> to the <strong>dbsnmp</strong> user.</p>
<blockquote>
<ul>
<li>. oraenv</li>
<li><strong>ORACLE_SID = [SID] ?</strong> SID</li>
<li>sqlplus &#8216;/ as sysdba&#8217;</li>
<li><strong>SQL&gt;</strong> grant sysdba to dbsnmp</li>
</ul>
</blockquote>
<p>1. From the <strong>Grid Control</strong> front end reconfigured the database having the issue.</p>
<blockquote>
<ul>
<li>Select the <strong>Targets</strong> tab.</li>
<li>Select the <strong>Databases</strong> breadcrumb.</li>
<li>Select the radio button alongside the database having the issue.</li>
<li>Click <strong>Configure</strong></li>
<li>From the <strong>Configure Database Instance: Properties</strong> page set the <strong>Role</strong> field to <strong>sysdba</strong></li>
<li>Set the <strong>Monitor Username</strong> field to <strong>dbsnmp</strong></li>
<li>Ensure you have set a valid password in the <strong>Monitor Password</strong> field.</li>
<li>Click <strong>Next</strong></li>
<li>Click <strong>Submit</strong></li>
<li>Click <strong>Ok</strong></li>
</ul>
</blockquote>
<h3 id="toc13">Error Messages When Starting up Grid Control Agents</h3>
<h4 id="toc14">Description</h4>
<p>The following error messages may be reported when starting grid control agents.</p>
<table>
<tbody>
<tr>
<th>Message</th>
<th>Found in Log</th>
<th>Metalink Reference</th>
<th>Cause</th>
</tr>
<tr>
<td><strong>[Thread-5] WARN ias.util getMetricResultUtil.311 &#8211; Error getting metric opmn_process_info Error getting metric opmn_process_info rows is null</strong></td>
<td>emagentfetchlet.trc</td>
<td>286624.1</td>
<td>Harmless message. Also appears in emagentfetchlet.log</td>
</tr>
<tr>
<td><strong>http: snmehl_connect: connect failed to (hostname:1157): Connection refused (error = 146)</strong></td>
<td>emdctl.trc</td>
<td>N/A</td>
<td>If found during the start up of Grid Control, this message is due to the Agent being down.</td>
</tr>
<tr>
<td><strong>DEBUG, INFO and WARN messages in emagent.trc log</strong></td>
<td>emagent.trc</td>
<td></td>
<td>Feature!!</td>
</tr>
<tr>
<td><strong>See this log file for error messages</strong> emagent.trc</td>
<td>emagent.trc</td>
<td></td>
<td>Unknown. Feature/Bug</td>
</tr>
<tr>
<td><strong>11347 :: Tue May 26 16:37:26 2009::AgentLifeCycle.pm:status agent returned with retCode=1 11347 :: Tue May 26 16:37:49 2009::AgentLifeCycle.pm: Exited loop with retCode=3</strong></td>
<td>emctl.log</td>
<td></td>
<td>Feature</td>
</tr>
<tr>
<td><strong>2009-05-26 16:37:26,091 Thread-1 WARN http: snmehl_connect: connect failed to (hostname:3872): Connection refused (error = 146) 2009-05-26 16:37:26,091 Thread-1 ERROR main: nmectla_agentctl: Error connecting to https://hostname:3872/emd/main/. Returning status code 1 2009-05-26 16:37:27,363 Thread-1 WARN http: snmehl_connect: connect failed to (hostname:3872): Connection refused (error = 146) 2009-05-26 16:37:27,363 Thread-1 ERROR main: nmectla_agentctl: Error connecting to https://hostname:3872/emd/main/. Returning status code 1</strong></td>
<td>emdctl.trc</td>
<td></td>
<td>Feature</td>
</tr>
</tbody>
</table>
<h4 id="toc15">Cause</h4>
<p>See above.</p>
<h4 id="toc16">Fix Step-By-Step</h4>
<p>All of these messages can be ignored.</p>
<h2 id="toc17">Useful Information</h2>
<h3 id="toc18">Manual Application of Patch Bundle 1 for Solaris 10.2.0.4 Agent.</h3>
<p>The automatic application of patch bundle 1 for the 10.2.0.4 agent should happen automatically if the agent_download directory has been set-up correctly. However, if for any reason the application of patch bundle 1 does not work, the following guide can be used.</p>
<p><strong>NB</strong> This is not required if using the amended <strong>agent_download</strong> script.</p>
<blockquote>
<ul>
<li>cd AGENT_HOME/sysman/bin</li>
<li>./emctl stop agent</li>
<li>cd /u01/app/oracle/SOFTWARE/agent10g</li>
<li>mkdir Recommended</li>
<li>cd Recommended</li>
<li>cp /net/hostname/u01/app/oracle/GRID/oms10g/sysman/agent_download/Patches/SolarisSPARC/Recommended/Solaris_x64_GridControl_agent_download_10_2_0_2_0.zip Solaris_x64_GridControl_agent_download_10_2_0_2_0.zip</li>
<li>unzip Solaris_x64_GridControl_agent_download_10_2_0_2_0.zip</li>
<li>cd 8345731</li>
<li>export ORACLE_HOME=AGENT_HOME</li>
<li>export PERL5LIB=$ORACLE_HOME/perl/lib:$ORACLE_HOME/perl/lib/site_perl</li>
<li>export EMSTATE=$ORACLE_HOME</li>
<li>export PATH=$PATH:$ORACLE_HOME/OPatch</li>
<li>$ORACLE_HOME/perl/bin/perl ./8345731/files/GCAgent/scripts/apply_8345731.pl</li>
<li>sh ./8345731/files/GCAgent/scripts/patch8345731_nmo.sh</li>
<li>opatch napply -skip_subset -skip_duplicate</li>
<li>Get a <strong>UNIX</strong> administrator to run <strong>root.sh</strong> from the <strong>agent10g</strong> home driectory.</li>
</ul>
</blockquote>
<h3 id="toc19">Script for Resetting the DBSNMP Password</h3>
<p>This script below can be used to configure ther DBSNMP user and the related targets.xml entries after an agent has been installed. Alternatively, it can be performed manually by performing the following commands</p>
<p><strong>NB</strong> This is not required if using the amended <strong>agent_download</strong> script.</p>
<p>1. Log onto the server where the new agent has been installed.<br />
2. For each database where the agent has been installed perform the following steps.</p>
<blockquote>
<ul>
<li>Unlock, unexpire and reset the <strong>DBSNMP</strong> password.</li>
<li>. oraenv</li>
<li><strong>ORACLE_SID = [oracle] ?</strong></li>
<li>sqlplus &#8216;/ as sysdba&#8217;</li>
<li><strong>SQL&gt;</strong> alter user dbsnmp identified by current_dbsnmp_password account unlock;</li>
</ul>
</blockquote>
<p>2. Configure the DBSNMP account from the <strong>Grid</strong> front end.</p>
<blockquote>
<ul>
<li>In the <strong>Grid Control Console</strong> click on the <strong>Home</strong> tab.</li>
<li>Click <strong>setup</strong> in the top right hand corner.</li>
<li>Click on the <strong>Agents</strong> breadcrumb.</li>
<li>Click on the <strong>hostname</strong> where the agent has been installed.</li>
<li>Click on a database that requires configuring. This is donated by the words <strong>unconfigured</strong> written in red below the database name.</li>
<li>From the database instance page, click on <strong>configure</strong></li>
<li>In the <strong>Monitor Password</strong> field enter the current <strong>DBSNMP</strong> password.</li>
<li>Click on <strong>Test Connection</strong></li>
<li>If the <strong>Test Connection</strong> is successful, click on <strong>Next</strong></li>
<li>Click <strong>Submit</strong></li>
<li>Click <strong>OK</strong></li>
<li>After a period of time, the screen will refresh and the database instance page will be displayed.</li>
</ul>
</blockquote>
<blockquote><p>#!/bin/ksh<br />
#############################################################################<br />
# Script : setup_dbsnmp.ksh<br />
#<br />
# Date : 4th December 2008<br />
#<br />
# Author : www.oracle-wiki.net<br />
#<br />
# Description : Set-up the DBSNMP user ready for Grid.<br />
#<br />
# Parameters : \$1 &#8211; Password for DBSNMP.<br />
#<br />
# History<br />
# V1 Date 4/06/09 Name: MDT Reason:Documented<br />
#<br />
############################################################################<br />
#<br />
# Set-up Variables<br />
#</p>
<p>PASSWORD=$1<br />
export ORAENV_ASK=NO<br />
EMAGENT=$(ps -eo comm | grep emagent)<br />
EMDIR=$(dirname $EMAGENT)<br />
EMCTL=$(echo $EMAGENT | sed &#8216;s/emagent/emctl/&#8217;)</p>
<p>#<br />
#For each DB Loop Around and Configure DBSNMP<br />
#</p>
<p>ps -ef | grep pmon | grep -v grep | awk -F&#8217;_&#8217; &#8216;{print $3}&#8217; | while read SID<br />
do<br />
export ORACLE_SID=$SID<br />
. oraenv<br />
sqlplus -s &#8220;/ as sysdba&#8221; &lt;&lt;EOF<br />
alter user dbsnmp account unlock identified by $PASSWORD<br />
/<br />
exit<br />
EOF</p>
<p>#<br />
#Configure the targets.xml file.<br />
#</p>
<p>TARGET=$(grep $ORACLE_SID ${EMDIR}/../sysman/emd/targets.xml | grep oracle_database | sed &#8216;s/.*NAME=&#8221;\(.*\)&#8221;.*$/\1/&#8217;)<br />
$EMCTL config agent credentials ${TARGET}:oracle_database &lt;&lt;EOF<br />
y<br />
dbsnmp<br />
y<br />
$PASSWORD<br />
$PASSWORD<br />
EOF<br />
Done</p>
<p>#<br />
#End Job<br />
#</p>
<p>echo &#8220;JOB COMPLETE&#8221;<br />
exit 0</p></blockquote>
<h3 id="toc20">staticports.ini file</h3>
<blockquote><p>#staticports.ini Template File<br />
#This file is a template for specifying port numbers at installation time.<br />
#To specify a port number, uncomment the appropriate line (remove #) and<br />
#replace &#8220;port_num&#8221; with the desired port number.<br />
#You can then launch Oracle Universal Installer with special options to use this file.<br />
#Please refer to Enterprise Manager Grid Control 10gR2 Installation Guide for instructions.<br />
Enterprise Manager Central Agent Port=port_num</p></blockquote>
<h3 id="toc21">VCSoraInst.loc file</h3>
<blockquote><p>#Oracle Installer Location File Location<br />
#Thu Mar 26 10:48:21 GMT 2009<br />
inst_group=dba<br />
inventory_loc=/u01/app/oracle/agent10g/oraInventory</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledocs.com/how-to-install-the-grid-control-10-2-0-4-agent-on-solaris-sparc.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Critical Patch Update January 2012</title>
		<link>http://www.oracledocs.com/oracle-critical-patch-update-january-2012.html</link>
		<comments>http://www.oracledocs.com/oracle-critical-patch-update-january-2012.html#comments</comments>
		<pubDate>Wed, 18 Jan 2012 06:27:29 +0000</pubDate>
		<dc:creator>Seyhan</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Critical]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[e-bsuiness suite]]></category>
		<category><![CDATA[fusion middleware]]></category>
		<category><![CDATA[jdedwards]]></category>
		<category><![CDATA[mysql product suite]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Patch]]></category>
		<category><![CDATA[peoplesoft]]></category>
		<category><![CDATA[sun product suite]]></category>
		<category><![CDATA[supply chain]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[virtualization product suite]]></category>

		<guid isPermaLink="false">http://www.oracledocs.com/?p=1006</guid>
		<description><![CDATA[Description A Critical Patch Update is a collection of patches for multiple security vulnerabilities. Critical Patch Update patches are usually cumulative but each advisory describes only the security fixes added since the previous Critical Patch Update advisory. Thus, prior Critical Patch Update advisories should be reviewed for information regarding earlier published security fixes. Please refer [...]]]></description>
			<content:encoded><![CDATA[<h3>Description</h3>
<p>A Critical Patch Update is a collection of patches for multiple security vulnerabilities. Critical Patch Update patches are usually cumulative but each advisory describes only the security fixes added since the previous Critical Patch Update advisory. Thus, prior Critical Patch Update advisories should be reviewed for information regarding earlier published security fixes. Please refer to:</p>
<p><strong>Due to the threat posed by a successful attack, Oracle strongly recommends that customers apply CPU fixes as soon as possible.</strong> This Critical Patch Update contains 78 new security fixes across all product families listed below.</p>
<h3>Affected Products and Components</h3>
<p>Security vulnerabilities addressed by this Critical Patch Update affect the products listed in the categories below.  The product area of the patches for the listed versions is shown in the Patch Availability column corresponding to the specified Products and Versions column.   Please click on the link in the Patch Availability column below or in the Patch Availability Table to access the documentation for those patches.</p>
<p>The list of affected product releases and versions that are in Premier Support or Extended Support, under the <a href="http://www.oracle.com/us/support/lifetime-support/index.html?ssSourceSiteId=otnen" target="_blank">Oracle Lifetime Support Policy</a> is as follows:</p>
<table summary="Category I" width="98%" border="1" cellspacing="0" cellpadding="4">
<thead>
<tr>
<th align="left" bgcolor="#cccccc">Affected Products and Versions</th>
<th align="left" bgcolor="#cccccc">Patch Availability</th>
</tr>
</thead>
<tbody>
<tr>
<td>Oracle Database 11<em>g</em> Release 2, versions 11.2.0.2, 11.2.0.3</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1374524.1" target="_blank">Database</a></td>
</tr>
<tr>
<td>Oracle Database 11<em>g</em> Release 1, version 11.1.0.7</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1374524.1" target="_blank">Database</a></td>
</tr>
<tr>
<td>Oracle Database 10<em>g</em> Release 2, versions 10.2.0.3, 10.2.0.4, 10.2.0.5</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1374524.1" target="_blank">Database</a></td>
</tr>
<tr>
<td>Oracle Database 10<em>g</em> Release 1, version 10.1.0.5</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1374524.1" target="_blank">Database</a></td>
</tr>
<tr>
<td>Oracle Fusion Middleware 11<em>g</em> Release 1, versions 11.1.1.3.0, 11.1.1.4.0, 11.1.1.5.0</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1374524.1" target="_blank">Fusion Middleware</a></td>
</tr>
<tr>
<td>Oracle Application Server 10<em>g</em> Release 3, version 10.1.3.5.0</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1374524.1" target="_blank">Fusion Middleware</a></td>
</tr>
<tr>
<td>Oracle Outside In Technology, versions 8.3.5, 8.3.7</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1374524.1" target="_blank">Fusion Middleware</a></td>
</tr>
<tr>
<td>Oracle WebLogic Server, versions 9.2.4, 10.0.2, 11<em>g</em>R1 (10.3.3, 10.3.4, 10.3.5)</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1374524.1" target="_blank">Fusion Middleware</a></td>
</tr>
<tr>
<td>Oracle E-Business Suite Release 12, versions 12.1.2, 12.1.3</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1384016.1" target="_blank">E-Business Suite</a></td>
</tr>
<tr>
<td>Oracle E-Business Suite Release 11<em>i</em>, version 11.5.10.2</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1384016.1" target="_blank">E-Business Suite</a></td>
</tr>
<tr>
<td>Oracle Transportation Management, versions 5.5, 6.0, 6.1, 6.2</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1388673.1" target="_blank">Oracle Supply Chain</a></td>
</tr>
<tr>
<td>Oracle PeopleSoft Enterprise CRM, version 8.9</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1388673.1" target="_blank">PeopleSoft</a></td>
</tr>
<tr>
<td>Oracle PeopleSoft Enterprise HCM, versions 8.9, 9.0, 9.1</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1388673.1" target="_blank">PeopleSoft</a></td>
</tr>
<tr>
<td>Oracle PeopleSoft Enterprise PeopleTools, version 8.52</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1388673.1" target="_blank">PeopleSoft</a></td>
</tr>
<tr>
<td>Oracle JDEdwards, version 8.98</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1388673.1" target="_blank">JDEdwards</a></td>
</tr>
<tr>
<td>Oracle Sun Product Suite</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1390289.1" target="_blank">Oracle Sun Product Suite</a></td>
</tr>
<tr>
<td>Oracle VM VirtualBox, version 4.1</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1390289.1" target="_blank">Oracle Virtualization Product Suite</a></td>
</tr>
<tr>
<td>Oracle Virtual Desktop Infrastructure, version 3.2</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1390289.1" target="_blank">Oracle Virtualization Product Suite</a></td>
</tr>
<tr>
<td>Oracle MySQL Server, versions 5.0, 5.1, 5.5</td>
<td><a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1390289.1" target="_blank">Oracle MySQL Product Suite</a></td>
</tr>
</tbody>
</table>
<h3>Patch Availability Table and Risk Matrices</h3>
<h4>Products with Cumulative Patches</h4>
<p>The Oracle Database, Oracle Fusion Middleware, Oracle Enterprise Manager Base Platform (formerly &#8220;Oracle Enterprise Manager Grid Control&#8221;), Oracle E-Business Suite Applications, JD Edwards EnterpriseOne, JD Edwards OneWorld Tools, PeopleSoft Enterprise Portal Applications, PeopleSoft Enterprise PeopleTools, Siebel Enterprise, Oracle Industry Applications and Oracle VM patches in the Critical Patch Updates are cumulative; patches for any of these products included in a Critical Patch Update will include all fixes for that product from the previous Critical Patch Updates. For more information about cumulative and non-cumulative patches, check the patch availability documents in the table below for the respective product groups.</p>
<p><a id="PIN" name="PIN"></a></p>
<h4>Patch Availability Table</h4>
<p>For each administered Oracle product, consult the documentation for patch availability information and installation instructions referenced from the following table. For an overview of the Oracle product documentation related to this Critical Patch Update, please refer to the Oracle Critical Patch Update January 2012 Documentation Map, <a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1368685.1">My Oracle Support Note 1368685.1</a>.</p>
<p>&nbsp;</p>
<table summary="Patch Availability Document and Pre Installation Notes" width="100%" border="1" cellspacing="0" cellpadding="4">
<thead>
<tr>
<th bgcolor="#cccccc" width="29%">Product Group</th>
<th bgcolor="#cccccc" width="29%">Risk Matrix</th>
<th bgcolor="#cccccc" width="42%">Patch Availability and Installation Information</th>
</tr>
</thead>
<tbody>
<tr>
<td>Oracle Database</td>
<td><a href="http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html#AppendixDB">Oracle Database Risk Matrix</a></td>
<td>Patch Set Update and Critical Patch Update January 2012 Availability Document, <a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1374524.1" target="_blank">My Oracle Support Note 1374524.1 </a></td>
</tr>
<tr>
<td>Oracle Fusion Middleware</td>
<td><a href="http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html#AppendixAS">Oracle Fusion Middleware Risk Matrix</a></td>
<td>Patch Set Update and Critical Patch Update January 2012 Availability Document, <a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1374524.1" target="_blank">My Oracle Support Note 1374524.1 </a></td>
</tr>
<tr>
<td>Oracle Applications &#8211; E-Business Suite</td>
<td><a href="http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html#AppendixEBS">Oracle Applications, E-Business Risk Matrix</a></td>
<td>Oracle E-Business Suite Critical Patch Update Note for January 2012, <a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1384016.1" target="_blank">My Oracle Support Note 1384016.1</a></td>
</tr>
<tr>
<td>Oracle Applications &#8211; Oracle PeopleSoft Enterprise, JDEdwards and Oracle Supply Chain Product Suite</td>
<td><a href="http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html#AppendixPS">Oracle PeopleSoft Enterprise Risk Matrix</a>,<br />
<a href="http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html#AppendixJDE">Oracle JDEdwards Risk Matrix</a>,<br />
<a href="http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html#AppendixSCP">Oracle Supply Chain Products Risk Matrix</a></td>
<td>Critical Patch Update Knowledge Document for PeopleSoft Enterprise, JDEdwards and Oracle Supply Chain Suite Products, <a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1388673.1" target="_blank">My Oracle Support Note 1388673.1</a></td>
</tr>
<tr>
<td>Oracle Sun Products Suite</td>
<td><a href="http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html#AppendixSUNS">Oracle Sun Products Suite Risk Matrix</a></td>
<td>Critical Patch Update January 2012 Patch Delivery Document for Oracle Sun Products Suite <a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1390289.1" target="_blank">My Oracle Support Note 1390289.1</a></td>
</tr>
<tr>
<td>Oracle Virtualization</td>
<td><a href="http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html#AppendixOVIR">Oracle Virtualization Risk Matrix</a></td>
<td>Critical Patch Update January 2012 Patch Delivery Document for Oracle Sun Products Suite <a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1390289.1" target="_blank">My Oracle Support Note 1390289.1</a></td>
</tr>
<tr>
<td>Oracle MySQL Server</td>
<td><a href="http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html#AppendixMSQL">Oracle MySQL Risk Matrix</a></td>
<td>Critical Patch Update January 2012 Patch Delivery Document for Oracle Sun Products Suite <a href="http://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=1390289.1" target="_blank">My Oracle Support Note 1390289.1</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledocs.com/oracle-critical-patch-update-january-2012.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recompiling Invalid Schema Objects</title>
		<link>http://www.oracledocs.com/recompiling-invalid-schema-objects.html</link>
		<comments>http://www.oracledocs.com/recompiling-invalid-schema-objects.html#comments</comments>
		<pubDate>Wed, 21 Dec 2011 15:06:03 +0000</pubDate>
		<dc:creator>Seyhan</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[atabase]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[invalid]]></category>
		<category><![CDATA[object]]></category>
		<category><![CDATA[oracled]]></category>
		<category><![CDATA[recompile]]></category>
		<category><![CDATA[schema]]></category>

		<guid isPermaLink="false">http://www.oracledocs.com/?p=1003</guid>
		<description><![CDATA[Recompiling Invalid Schema Objects Operations such as upgrades, patches and DDL changes can invalidate schema objects. Provided these changes don&#8217;t cause compilation failures the objects will be revalidated by on-demand automatic recompilation, but this can take an unacceptable time to complete, especially where complex dependencies are present. For this reason it makes sense to recompile [...]]]></description>
			<content:encoded><![CDATA[<h1>Recompiling Invalid Schema Objects</h1>
<p>Operations such as upgrades, patches and DDL changes can invalidate schema objects. Provided these changes don&#8217;t cause compilation failures the objects will be revalidated by on-demand automatic recompilation, but this can take an unacceptable time to complete, especially where complex dependencies are present. For this reason it makes sense to recompile invalid objects in advance of user calls. It also allows you to identify if any changes have broken your code base. This article presents several methods for recompiling invalid schema objects.</p>
<ul>
<li>Identifying Invalid Objects</li>
<li>The Manual Approach</li>
<li>Custom Script</li>
<li>DBMS_UTILITY.compile_schema</li>
<li>UTL_RECOMP</li>
<li>utlrp.sql and utlprp.sql</li>
</ul>
<h2>Identifying Invalid Objects</h2>
<p>The <code>DBA_OBJECTS</code> view can be used to identify invalid objects using the following query.</p>
<blockquote>
<pre>COLUMN object_name FORMAT A30
SELECT owner,
       object_type,
       object_name,
       status
FROM   dba_objects
WHERE  status = 'INVALID'
ORDER BY owner, object_type, object_name;</pre>
</blockquote>
<p>With this information you can decide which of the following recompilation methods is suitable for you.</p>
<h2>The Manual Approach</h2>
<p>For small numbers of objects you may decide that a manual recompilation is sufficient. The following example shows the compile syntax for several object types.</p>
<blockquote>
<pre>ALTER PACKAGE my_package COMPILE;
ALTER PACKAGE my_package COMPILE BODY;
ALTER PROCEDURE my_procedure COMPILE;
ALTER FUNCTION my_function COMPILE;
ALTER TRIGGER my_trigger COMPILE;
ALTER VIEW my_view COMPILE;</pre>
</blockquote>
<p>Notice that the package body is compiled in the same way as the package specification, with the addition of the word &#8220;BODY&#8221; at the end of the command.</p>
<p>An alternative approach is to use the <code>DBMS_DDL</code> package to perform the recompilations.</p>
<blockquote>
<pre>EXEC DBMS_DDL.alter_compile('PACKAGE', 'MY_SCHEMA', 'MY_PACKAGE');
EXEC DBMS_DDL.alter_compile('PACKAGE BODY', 'MY_SCHEMA', 'MY_PACKAGE');
EXEC DBMS_DDL.alter_compile('PROCEDURE', 'MY_SCHEMA', 'MY_PROCEDURE');
EXEC DBMS_DDL.alter_compile('FUNCTION', 'MY_SCHEMA', 'MY_FUNCTION');
EXEC DBMS_DDL.alter_compile('TRIGGER', 'MY_SCHEMA', 'MY_TRIGGER');</pre>
</blockquote>
<p>This method is limited to PL/SQL objects, so it is not applicable for views.</p>
<h2>Custom Script</h2>
<p>In some situations you may have to compile many invalid objects in one go. One approach is to write a custom script to identify and compile the invalid objects. The following example identifies and recompiles invalid packages and package bodies.</p>
<blockquote>
<pre>SET SERVEROUTPUT ON SIZE 1000000
BEGIN
  FOR cur_rec IN (SELECT owner,
                         object_name,
                         object_type,
                         DECODE(object_type, 'PACKAGE', 1,
                                             'PACKAGE BODY', 2, 2) AS recompile_order
                  FROM   dba_objects
                  WHERE  object_type IN ('PACKAGE', 'PACKAGE BODY')
                  AND    status != 'VALID'
                  ORDER BY 4)
  LOOP
    BEGIN
      IF cur_rec.object_type = 'PACKAGE' THEN
        EXECUTE IMMEDIATE 'ALTER ' || cur_rec.object_type ||
            ' "' || cur_rec.owner || '"."' || cur_rec.object_name || '" COMPILE';
      ElSE
        EXECUTE IMMEDIATE 'ALTER PACKAGE "' || cur_rec.owner ||
            '"."' || cur_rec.object_name || '" COMPILE BODY';
      END IF;
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.put_line(cur_rec.object_type || ' : ' || cur_rec.owner ||
                             ' : ' || cur_rec.object_name);
    END;
  END LOOP;
END;
/</pre>
</blockquote>
<p>This approach is fine if you have a specific task in mind, but be aware that you may end up compiling some objects multiple times depending on the order they are compiled in. It is probably a better idea to use one of the methods provided by Oracle since they take the code dependencies into account.</p>
<h2>DBMS_UTILITY.compile_schema</h2>
<p>The <code>COMPILE_SCHEMA</code> procedure in the <code>DBMS_UTILITY</code> package compiles all procedures, functions, packages, and triggers in the specified schema. The example below shows how it is called from SQL*Plus.</p>
<blockquote>
<pre>EXEC DBMS_UTILITY.compile_schema(schema =&gt; 'SCOTT');</pre>
</blockquote>
<h2>UTL_RECOMP</h2>
<p>The <code>UTL_RECOMP</code> package contains two procedures used to recompile invalid objects. As the names suggest, the <code>RECOMP_SERIAL</code> procedure recompiles all the invalid objects one at a time, while the <code>RECOMP_PARALLEL</code> procedure performs the same task in parallel using the specified number of threads. Their definitions are listed below.</p>
<blockquote>
<pre> PROCEDURE RECOMP_SERIAL(
   schema   IN   VARCHAR2    DEFAULT NULL,
   flags    IN   PLS_INTEGER DEFAULT 0);

PROCEDURE RECOMP_PARALLEL(
   threads  IN   PLS_INTEGER DEFAULT NULL,
   schema   IN   VARCHAR2    DEFAULT NULL,
   flags    IN   PLS_INTEGER DEFAULT 0);</pre>
</blockquote>
<p>The usage notes for the parameters are listed below.</p>
<ul>
<li>schema &#8211; The schema whose invalid objects are to be recompiled. If NULL all invalid objects in the database are recompiled.</li>
<li>threads &#8211; The number of threads used in a parallel operation. If NULL the value of the &#8220;job_queue_processes&#8221; parameter is used. Matching the number of available CPUs is generally a good starting point for this value.</li>
<li>flags &#8211; Used for internal diagnostics and testing only.</li>
</ul>
<p>The following examples show how these procedures are used.</p>
<blockquote>
<pre>-- Schema level.
EXEC UTL_RECOMP.recomp_serial('SCOTT');
EXEC UTL_RECOMP.recomp_parallel(4, 'SCOTT');

-- Database level.
EXEC UTL_RECOMP.recomp_serial();
EXEC UTL_RECOMP.recomp_parallel(4);

-- Using job_queue_processes value.
EXEC UTL_RECOMP.recomp_parallel();
EXEC UTL_RECOMP.recomp_parallel(NULL, 'SCOTT');</pre>
</blockquote>
<p>There are a number of restrictions associated with the use of this package including:</p>
<ul>
<li>Parallel execution is perfomed using the job queue. All existing jobs are marked as disabled until the operation is complete.</li>
<li>The package must be run from SQL*Plus as the SYS user, or another user with SYSDBA.</li>
<li>The package expects the <code>STANDARD</code>, <code>DBMS_STANDARD</code>, <code>DBMS_JOB</code> and <code>DBMS_RANDOM</code> to be present and valid.</li>
<li>Runnig DDL operations at the same time as this package may result in deadlocks.</li>
</ul>
<h2>utlrp.sql and utlprp.sql</h2>
<p>The utlrp.sql and utlprp.sql scripts are provided by Oracle to recompile all invalid objects in the database. They are typically run after major database changes such as upgrades or patches. They are located in the $ORACLE_HOME/rdbms/admin directory and provide a wrapper on the <code>UTL_RECOMP</code> package. The utlrp.sql script simply calls the utlprp.sql script with a command line parameter of &#8220;0&#8243;. The utlprp.sql accepts a single integer parameter that indicates the level of parallelism as follows.</p>
<ul>
<li>0 &#8211; The level of parallelism is derived based on the CPU_COUNT parameter.</li>
<li>1 &#8211; The recompilation is run serially, one object at a time.</li>
<li>N &#8211; The recompilation is run in parallel with &#8220;N&#8221; number of threads.</li>
</ul>
<p>Both scripts must be run as the SYS user, or another user with SYSDBA, to work correctly.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledocs.com/recompiling-invalid-schema-objects.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Naming Conventions</title>
		<link>http://www.oracledocs.com/oracle-naming-conventions.html</link>
		<comments>http://www.oracledocs.com/oracle-naming-conventions.html#comments</comments>
		<pubDate>Wed, 21 Dec 2011 15:04:34 +0000</pubDate>
		<dc:creator>Seyhan</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Oracle Naming Conventions]]></category>
		<category><![CDATA[PL/SQL]]></category>

		<guid isPermaLink="false">http://www.oracledocs.com/?p=1001</guid>
		<description><![CDATA[Oracle Naming Conventions Nothing is carved in stone, but these are the sort of rules I follow: Entities &#38; Tables Aliasing Attributes &#38; Columns Keys &#38; Their Columns Indexes Triggers Other Objects PL/SQL Variables File Extensions Entities &#38; Tables All entity names should be singular and may have spaces. These are replaced with &#8216;_&#8217; by [...]]]></description>
			<content:encoded><![CDATA[<h1>Oracle Naming Conventions</h1>
<p>Nothing is carved in stone, but these are the sort of rules I follow:</p>
<ul>
<li>Entities &amp; Tables</li>
<li>Aliasing</li>
<li>Attributes &amp; Columns</li>
<li>Keys &amp; Their Columns</li>
<li>Indexes</li>
<li>Triggers</li>
<li>Other Objects</li>
<li>PL/SQL Variables</li>
<li>File Extensions</li>
</ul>
<h2>Entities &amp; Tables</h2>
<p>All entity names should be singular and may have spaces. These are replaced with &#8216;_&#8217; by Oracle Designer during table creation.</p>
<blockquote>
<pre>APPLICATION
APPLICATION FUNCTION
APPLICATION FUNCTION ROLE</pre>
</blockquote>
<p>All table names should be plural. If the table name contains serveral words, only the last one should be plural.</p>
<blockquote>
<pre>APPLICATIONS
APPLICATION_FUNCTIONS
APPLICATION_FUNCTION_ROLES</pre>
</blockquote>
<h2>Aliasing</h2>
<p>All entities and tables should be defined a unique alias that is used as part of the foreign key definitions. The alias should be an abbreviation of the name.</p>
<blockquote>
<pre>APPLICATIONS = APPL (4)
APPLICATION_FUNCTIONS = APFU (2:2)
APPLICATON_FUNCTION_ROLES = APFR (2:1:1)
APPLICATION_FUNCTION_ROLE_BANANAS = AFRB (1:1:1:1)
APPLICATION_FUNCTION_ROLE_BANANA_APPLES = (Do what you like!)</pre>
</blockquote>
<p>The bracketed numbers indicate the number of letters used from each word in the name.</p>
<p>Oracle has a 30 character restriction on object names, so table aliases are useful to reduce the length of object names.</p>
<h2>Attributes &amp; Columns</h2>
<p>Attributes and columns should not be prefixed with a table alias. For the most part this is unnecessary and often very messy.</p>
<h2>Keys &amp; Their Columns</h2>
<p>Primary Keys are named after the table or its alias with the suffix of &#8216;_PK&#8217;.</p>
<blockquote>
<pre>Table      : APPLICATIONS
Primary Key: APPLICATIONS_PK
             or
             APPL_PK</pre>
</blockquote>
<p>Unique Keys are named after the table or its alias with the suffix of &#8216;_UK&#8217;. If more than one unique key is present you may need to add further information to make the key name unique.</p>
<blockquote>
<pre>Table      : APPLICATIONS
Unique Key : APPLICATIONS_UK
             or
             APPL_UK</pre>
</blockquote>
<p>Foreign Keys are usually named using the two table aliases, from and to, with the suffix of &#8216;_FK&#8217;:</p>
<blockquote>
<pre>Relationship: APPLICATION_FUNCTIONS -&gt; APPLCIATIONS
Foreign Key : APFU_APPL_FK</pre>
</blockquote>
<p>The foreign key column on the dependant table may be named using the full table name or the alias, along with the column name.</p>
<blockquote>
<pre>APPLICATION_FUNCTIONS.APPLICATION_ID -&gt; APPLICATIONS.ID
or
APPLICATION_FUNCTIONS.APPL_ID -&gt; APPLICATIONS.ID</pre>
</blockquote>
<p>I prefer the full table name, but the the 30 character limit forces the use of the alias at times.</p>
<h2>Indexes</h2>
<p>Indexes are created implicitly to support PKs and UKs. These indexes have the same name as the constraint.</p>
<p>As a rule of thumb, all foreign key columns should be indexed. Indexes to support foreign keys should be named using the foreign key name with the suffix &#8216;_I&#8217;.</p>
<blockquote>
<pre>Foreign Key    : APFU_APPL_FK
Suporting Index: APFU_APPL_FK_I</pre>
</blockquote>
<p>Other indexes should be created with meaningful names, usually incorporating the table alias and the column name(s) where possible, along with the suffix &#8216;_I&#8217;.</p>
<h2>Triggers</h2>
<p>Trigger names should be made up of the table name, an acronym representing the triggering action and the suffix &#8220;_TRG&#8221;.</p>
<blockquote>
<pre>Table : APPLICATIONS

Action: BEFORE INSERT STATEMENT-LEVEL
Name  : APPLICATION_BIS_TRG

Action: AFTER INSERT AND UPDATE ROW-LEVEL
Name  : APPLICATION_AIUR_TRG</pre>
</blockquote>
<h2>Other Objects</h2>
<p>Other database objects have a suffix that identifies their object type.</p>
<blockquote>
<pre>Check Constraints : &lt;name&gt;_CHK
Sequences         : &lt;name&gt;_SEQ
Views             : &lt;name&gt;_V
Materialized Views: &lt;name&gt;_MV
Types             : &lt;name&gt;_T
Directories       : &lt;name&gt;_DIR
External Tables   : &lt;name&gt;_EXT
PL/SQL Packages   : &lt;name&gt;_API
PL/SQL Procedures : &lt;name&gt;_PRC
PL/SQL Functions  : &lt;name&gt;_FUN</pre>
</blockquote>
<h2>PL/SQL Variables</h2>
<p>PL/SQL variables are prefixed with a single letter, if possible, to indiate their type or usage.</p>
<blockquote>
<pre>Package Global Variables: g_variable_name
Local Variables         : l_variable_name
Types                   : t_type_name
Cursors                 : c_cursor_name
Exceptions              : e_exception_name
Input Parameters        : i_parameter_name
Outut Parameters        : o_parameter_name
In/Out Parameters       : io_parameter_name</pre>
</blockquote>
<p>Sometimes I flip back to using a generic &#8220;p_&#8221; prefix for parameters, regardless of their IN/OUT usage. Old habits dies hard.</p>
<h2>File Extensions</h2>
<p>File extensions include:</p>
<blockquote>
<pre>.pks – Package specification.
.pkb – Package body.
.sql – Everything else.</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledocs.com/oracle-naming-conventions.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LAG and LEAD Analytic Functions</title>
		<link>http://www.oracledocs.com/lag-and-lead-analytic-functions.html</link>
		<comments>http://www.oracledocs.com/lag-and-lead-analytic-functions.html#comments</comments>
		<pubDate>Wed, 21 Dec 2011 15:02:30 +0000</pubDate>
		<dc:creator>Seyhan</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Analytic]]></category>
		<category><![CDATA[Functions]]></category>
		<category><![CDATA[LAG]]></category>
		<category><![CDATA[LEAD]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://www.oracledocs.com/?p=998</guid>
		<description><![CDATA[LAG and LEAD Analytic Functions The LAG and LEAD analytic functions were introduced in 8.1.6 to give access to multiple rows within a table, without the need for a self-join. Introduction LAG LEAD &#160; Introduction Both LAG and LEAD functions have the same usage, as shown below. LAG (value_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause) LEAD [...]]]></description>
			<content:encoded><![CDATA[<h1>LAG and LEAD Analytic Functions</h1>
<p>The <code>LAG</code> and <code>LEAD</code> analytic functions were introduced in 8.1.6 to give access to multiple rows within a table, without the need for a self-join.</p>
<ul>
<li>Introduction</li>
<li>LAG</li>
<li>LEAD</li>
</ul>
<p>&nbsp;</p>
<h2>Introduction</h2>
<p>Both <code>LAG</code> and <code>LEAD</code> functions have the same usage, as shown below.</p>
<blockquote>
<pre>LAG  (value_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause)
LEAD (value_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause)</pre>
</blockquote>
<ul>
<li><code>value_expression</code> &#8211; Can be a column or a built-in function, except for other analytic functions.</li>
<li><code>offset</code> &#8211; The number of rows preceeding/following the current row, from which the data is to be retrieved. The default value is 1.</li>
<li><code>default</code> &#8211; The value returned if the offset is outside the scope of the window. The default value is NULL.</li>
</ul>
<p>Looking at the <code>EMP</code> table, we query the data in salary (<code>SAL</code>) order.</p>
<blockquote>
<pre>SELECT empno,
       ename,
       job,
       sal
FROM   emp
ORDER BY sal;

     EMPNO ENAME      JOB              SAL
---------- ---------- --------- ----------
      7369 SMITH      CLERK            800
      7900 JAMES      CLERK            950
      7876 ADAMS      CLERK           1100
      7521 WARD       SALESMAN        1250
      7654 MARTIN     SALESMAN        1250
      7934 MILLER     CLERK           1300
      7844 TURNER     SALESMAN        1500
      7499 ALLEN      SALESMAN        1600
      7782 CLARK      MANAGER         2450
      7698 BLAKE      MANAGER         2850
      7566 JONES      MANAGER         2975
      7788 SCOTT      ANALYST         3000
      7902 FORD       ANALYST         3000
      7839 KING       PRESIDENT       5000

SQL&gt;</pre>
</blockquote>
<h2>LAG</h2>
<p>The <code>LAG</code> function is used to access data from a previous row. The following query returns the salary from the previous row to calculate the difference between the salary of the current row and that of the previous row. Notice that the <code>ORDER BY</code> of the <code>LAG</code> function is used to order the data by salary.</p>
<blockquote>
<pre>SELECT empno,
       ename,
       job,
       sal,
       LAG(sal, 1, 0) OVER (ORDER BY sal) AS sal_prev,
       sal - LAG(sal, 1, 0) OVER (ORDER BY sal) AS sal_diff
FROM   emp;

     EMPNO ENAME      JOB              SAL   SAL_PREV   SAL_DIFF
---------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK            800          0        800
      7900 JAMES      CLERK            950        800        150
      7876 ADAMS      CLERK           1100        950        150
      7521 WARD       SALESMAN        1250       1100        150
      7654 MARTIN     SALESMAN        1250       1250          0
      7934 MILLER     CLERK           1300       1250         50
      7844 TURNER     SALESMAN        1500       1300        200
      7499 ALLEN      SALESMAN        1600       1500        100
      7782 CLARK      MANAGER         2450       1600        850
      7698 BLAKE      MANAGER         2850       2450        400
      7566 JONES      MANAGER         2975       2850        125
      7788 SCOTT      ANALYST         3000       2975         25
      7902 FORD       ANALYST         3000       3000          0
      7839 KING       PRESIDENT       5000       3000       2000

SQL&gt;</pre>
</blockquote>
<h2>LEAD</h2>
<p>The <code>LEAD</code> function is used to return data from the next row. The following query returns the salary from the next row to calulate the difference between the salary of the current row and the following row.</p>
<blockquote>
<pre>SELECT empno,
       ename,
       job,
       sal,
       LEAD(sal, 1, 0) OVER (ORDER BY sal) AS sal_next,
       LEAD(sal, 1, 0) OVER (ORDER BY sal) - sal AS sal_diff
FROM   emp;

     EMPNO ENAME      JOB              SAL   SAL_NEXT   SAL_DIFF
---------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK            800        950        150
      7900 JAMES      CLERK            950       1100        150
      7876 ADAMS      CLERK           1100       1250        150
      7521 WARD       SALESMAN        1250       1250          0
      7654 MARTIN     SALESMAN        1250       1300         50
      7934 MILLER     CLERK           1300       1500        200
      7844 TURNER     SALESMAN        1500       1600        100
      7499 ALLEN      SALESMAN        1600       2450        850
      7782 CLARK      MANAGER         2450       2850        400
      7698 BLAKE      MANAGER         2850       2975        125
      7566 JONES      MANAGER         2975       3000         25
      7788 SCOTT      ANALYST         3000       3000          0
      7902 FORD       ANALYST         3000       5000       2000
      7839 KING       PRESIDENT       5000          0      -5000

SQL&gt;</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledocs.com/lag-and-lead-analytic-functions.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Handy SQL for the Oracle Applications</title>
		<link>http://www.oracledocs.com/handy-sql-for-the-oracle-applications.html</link>
		<comments>http://www.oracledocs.com/handy-sql-for-the-oracle-applications.html#comments</comments>
		<pubDate>Wed, 14 Dec 2011 08:14:08 +0000</pubDate>
		<dc:creator>Seyhan</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Handy SQL]]></category>
		<category><![CDATA[Oracle Applications]]></category>

		<guid isPermaLink="false">http://www.oracledocs.com/?p=996</guid>
		<description><![CDATA[1. Database 1.1 General Objects / Tables / Columns PROMPT Find Object by Type, Name, Status select object_name, object_type, owner, status from dba_objects where upper(object_name) like upper('%&#38;object_name%') and object_type like upper('%'&#124;&#124; NVL('&#38;object_type', 'TABLE')&#124;&#124; '%') and status like upper('%'&#124;&#124; NVL('&#38;Status', '%')&#124;&#124; '%') order by object_name, object_type; PROMPT Find table indexes, keys, columns select index_name,column_position,column_name from all_ind_columns where table_name = '&#38;EnterTableName' order by index_name, column_position; PROMPT Find tables and columns that include a table and/or column name specified. select table_name, column_name from  dba_tab_columns where column_name like NVL(UPPER('&#38;COLUMN_NAME'), column_name) and table_name like NVL(UPPER('&#38;TABLE_NAME'), table_name); &#160; 1.2 Invalids / Compiling PROMPT Find Invalids select object_name, object_type, owner, status from dba_objects where status = 'INVALID'; PROMPT Compile Packages select 'alter package '&#124;&#124; object_name &#124;&#124; ' compile '&#124;&#124; decode(object_type, 'PACKAGE', '', 'PACKAGE BODY', 'body')&#124;&#124; ';' from dba_objects where status = 'INVALID' and object_type like 'PACK%'; &#160; 1 .3 Bugs and Patching PROMPT Find specific package version select text from dba_source where name = upper( '&#38;PackageName') and line &#60; 3; [...]]]></description>
			<content:encoded><![CDATA[<h3>1. Database</h3>
<h3>1.1 General Objects / Tables / Columns</h3>
<div><code>PROMPT Find Object by Type, Name, Status<br />
select object_name, object_type, owner, status<br />
from dba_objects<br />
where upper(object_name) like upper('%&amp;object_name%')<br />
and object_type like upper('%'|| NVL('&amp;object_type', 'TABLE')|| '%')<br />
and status like upper('%'|| NVL('&amp;Status', '%')|| '%')<br />
order by object_name, object_type;</p>
<p>PROMPT Find table indexes, keys, columns<br />
select index_name,column_position,column_name<br />
from all_ind_columns<br />
where table_name = '&amp;EnterTableName'<br />
order by index_name, column_position;</p>
<p>PROMPT Find tables and columns that include a table and/or column name specified.<br />
select table_name, column_name<br />
from  dba_tab_columns<br />
where column_name like NVL(UPPER('&amp;COLUMN_NAME'), column_name)<br />
and table_name like NVL(UPPER('&amp;TABLE_NAME'), table_name);</p>
<p></code></div>
<p>&nbsp;</p>
<h3>1.2 Invalids / Compiling</h3>
<div><code>PROMPT Find Invalids<br />
select object_name, object_type, owner, status<br />
from dba_objects<br />
where status = 'INVALID';</p>
<p>PROMPT Compile Packages<br />
select 'alter package '|| object_name || ' compile '|| decode(object_type, 'PACKAGE', '', 'PACKAGE BODY', 'body')|| ';'<br />
from dba_objects<br />
where status = 'INVALID'<br />
and object_type like 'PACK%';</p>
<p></code></div>
<p>&nbsp;</p>
<h3>1 .3 Bugs and Patching</h3>
<div><code>PROMPT Find specific package version<br />
select text from dba_source<br />
where<br />
name = upper( '&amp;PackageName')<br />
and line &lt; 3;</p>
<p>PROMPT Find bugs already installed fixed in your system<br />
select bug_number<br />
from ad_bugs<br />
where bug_number  ='&amp;Bug_Number';</p>
<p>PROMPT Find patches applied<br />
select substr(patch_name,1,12) patch_num<br />
from ad_applied_patches<br />
where patch_name like '%&amp;Patch_Number%';<br />
</code></div>
<p>&nbsp;</p>
<div>NOTE: A specific bug maybe fixed by multiple patches so it might be good to look for the bug number, instead of the patch number to see if that bug is fixed already on your system. Another way is to look at the file version mentioned in the patch and check if you have that version or higher.</div>
<p>&nbsp;</p>
<h3>1.4 Other Objects</h3>
<div><code>PROMPT Query view details of a specific view.<br />
SELECT VIEW_NAME, TEXT<br />
FROM DBA_VIEWS<br />
WHERE VIEW_NAME = UPPER('&amp;VIEW_NAME')<br />
and owner = 'APPS';</p>
<p>PROMPT Trigger details on a table.<br />
select TABLE_NAME, COLUMN_NAME, trigger_name, trigger_type, TRIGGER_BODY<br />
from dba_TRIGGERS<br />
WHERE TABLE_NAME like '%&amp;EnterTableName%';</p>
<p></code></div>
<h3>1.5 Helpful SQL Syntax</h3>
<p>1.5.1 Rowid:<br />
Working with Rowids: rowidtochar(rowid) and chartorowid(&#8216;AAABUeAAQAAACsjAAg&#8217;)</p>
<p>1.5.2 Date Columns<br />
a. Converting dates to show date with time: to_char(&lt;date&gt; &#8216;DD-MON-YYYY HH24:MI:SS&#8217;)<br />
For example: select to_char(sysdate, &#8216;DD-MON-YYYY HH24:MI:SS&#8217;) from dual;<br />
b. Comparing date columns &#8212; Sometimes handy to skip the time portion when searching for dates. You can use the trunc command to strip the time off. This resets the time to midnight.<br />
For example: select to_char(trunc(sysdate), &#8216;DD-MON-YYYY HH24:MI:SS&#8217;) from dual;</p>
<h3></h3>
<h3>2. Foundation (FND/ATG/AOL)</h3>
<h3>2.1 SQL related to Oracle Application Messages</h3>
<div><code><br />
PROMPT ATG<br />
PROMPT Find Messages by Message Text<br />
select m.message_name, m.message_text, m.message_number, a.application_short_name<br />
from fnd_new_messages m, fnd_application a<br />
where upper(m.message_text) like upper('%&amp;EnterMessageText%')<br />
and m.language_code = 'US'<br />
and m.application_id = a.application_id;</p>
<p>PROMPT Find Messages by Message Short Name<br />
select m.message_name, m.message_text, m.message_number, a.application_short_name<br />
from fnd_new_messages m, fnd_application a<br />
where m.message_name like '%&amp;EnterMessageName%'<br />
and m.language_code = 'US'<br />
and m.application_id = a.application_id;</p>
<p></code></div>
<p>&nbsp;</p>
<h3>2.2. Review Oracle Application Programs</h3>
<p>a. Looking for trace files</p>
<div><code>PROMPT IDENTIFY CONCURRENT REQUEST FILE<br />
PROMPT From Bug.3211206<br />
PROMPT Use the following query to identify the correct trace file:<br />
PROMPT where "request" is the concurrent request id for the inventory transaction<br />
PROMPT worker.<br />
SELECT 'Request id: '||request_id ,<br />
'Trace id: '||oracle_Process_id,<br />
'Trace Flag: '||req.enable_trace,<br />
'Trace Name:<br />
'||dest.value||'/'||lower(dbnm.value)||'_ora_'||oracle_process_id||'.trc',<br />
'Prog. Name: '||prog.user_concurrent_program_name,<br />
'File Name: '||execname.execution_file_name|| execname.subroutine_name ,<br />
'Status : '||decode(phase_code,'R','Running')<br />
||'-'||decode(status_code,'R','Normal'),<br />
'SID Serial: '||ses.sid||','|| ses.serial#,<br />
'Module : '||ses.module<br />
from fnd_concurrent_requests req, v$session ses, v$process proc,<br />
v$parameter dest, v$parameter dbnm, fnd_concurrent_programs_vl prog,<br />
fnd_executables execname<br />
where req.request_id = &amp;request<br />
and req.oracle_process_id=proc.spid(+)<br />
and proc.addr = ses.paddr(+)<br />
and dest.name='user_dump_dest'<br />
and dbnm.name='db_name'<br />
and req.concurrent_program_id = prog.concurrent_program_id<br />
and req.program_application_id = prog.application_id<br />
and prog.application_id = execname.application_id<br />
and prog.executable_id=execname.executable_id;<br />
</code></div>
<p>b. Another for programs and managers:</p>
<div><code>PROMPT Programs and Managers<br />
PROMPT Provide various output of concurrent managers related to a specific program.<br />
PROMPT In this case using default of Item Supply/Demand program.<br />
SELECT<br />
fcq.processor_application_id, fcp.concurrent_program_name,<br />
fr.responsibility_id, fr.responsibility_key, fr.data_group_id, fr.request_group_id,<br />
fr.application_id, fa.application_short_name,<br />
fcq.concurrent_queue_id, fcq.CONCURRENT_QUEUE_NAME,<br />
fcq.MIN_PROCESSES, fcq.TARGET_PROCESSES, fcq.TARGET_NODE, fcq.SLEEP_SECONDS, fcq.CONTROL_CODE, fcq.DIAGNOSTIC_LEVEL,<br />
fcpr.*<br />
FROM fnd_application fa,<br />
fnd_concurrent_programs fcp,<br />
fnd_conc_processor_programs fcpp,<br />
fnd_responsibility fr,<br />
fnd_concurrent_queues fcq,<br />
fnd_concurrent_processes fcpr<br />
WHERE fcq.processor_application_id = fcpp.processor_application_id<br />
AND fcq.concurrent_processor_id = fcpp.concurrent_processor_id<br />
AND fcpp.concurrent_program_id = fcp.concurrent_program_id<br />
AND fcpp.program_application_id = fcp.application_id<br />
AND fcp.application_id = fa.application_id<br />
AND fcp.concurrent_program_name = NVL('&amp;EnterProgramShortName', 'INXDSD')<br />
AND fr.application_id = 401<br />
AND fr.data_group_id = fcq.data_group_id<br />
AND fcq.manager_type = '3'<br />
AND fcpr.concurrent_queue_id = fcq.concurrent_queue_id<br />
AND fcpr.queue_application_id = fcq.application_id<br />
-- AND fcpr.process_status_code = 'A'<br />
AND fcpr.instance_number = userenv('instance')<br />
ORDER BY dbms_random.random;</code></div>
<p>c. Concurrent program statuses</p>
<div><code>PROMPT Concurrent program values<br />
Select distinct lookup_code, meaning From Fnd_Lookup_Values<br />
Where Lookup_Type = 'CP_STATUS_CODE'<br />
order by lookup_code;</p>
<p>A Waiting<br />
B Resuming<br />
C Normal<br />
D Cancelled<br />
E Error<br />
G Warning<br />
H On Hold<br />
I Normal<br />
M No Manager<br />
P Scheduled<br />
Q Standby<br />
R Normal<br />
S Suspended<br />
T Terminating<br />
U Disabled<br />
W Paused<br />
X Terminated<br />
Z Waiting</code></div>
<p>d. Submitted Concurrent Programs</p>
<div><code>Select * From Fnd_Concurrent_Requests<br />
Where Request_Id = &amp;YourRequestID;</p>
<p>Example Output:<br />
Phase_Code: C<br />
Status_Code: G<br />
Argument_Text: 207, 2, , Jbp1-M1-10, ,<br />
Argument1: 207<br />
Argument2: 2<br />
Argument3: Null<br />
Argument4: JTP1-M1-10<br />
CONCURRENT_PROGRAM_ID: 31534</code></div>
<p>e. Ensure trace is disabled<br />
The best way is to check via the forms System Administrator &gt; Concurrent &gt; Programs &gt; Define. This is just a quick update to change trace enabled to no.</p>
<div><code>Update Fnd_Concurrent_Programs<br />
Set Enable_Trace = 'N'<br />
where ENABLE_TRACE = 'Y';</code></div>
<h3>2.3. Users and Responsibilities</h3>
<p>a. Basic user check</p>
<div><code>PROMPT Basic check for user details<br />
select user_id, user_name, employee_id<br />
from fnd_user<br />
where user_name like '&amp;EnterUserName%';<br />
</code></div>
<p>b. Active users</p>
<div><code>PROMPT Active Users<br />
select fnd.user_name, icx.responsibility_application_id, icx.responsibility_id, frt.responsibility_name,<br />
icx.session_id, icx.first_connect,<br />
icx.last_connect,<br />
DECODE ((icx.disabled_flag),'N', 'ACTIVE', 'Y', 'INACTIVE') status<br />
from<br />
fnd_user fnd, icx_sessions icx, fnd_responsibility_tl frt<br />
where<br />
fnd.user_id = icx.user_id<br />
and icx.responsibility_id = frt.responsibility_id<br />
and icx.disabled_flag &lt;&gt; 'Y'<br />
and trunc(icx.last_connect) = trunc(sysdate)<br />
order by icx.last_connect;<br />
</code></div>
<p>c. Users with a responsibility<br />
<em>There is also a similar concurrent program &#8220;Users of a Responsibility&#8221;.</em></p>
<div><code>PROMPT Find users who have a responsibility<br />
select usr.user_id, usr.user_name, res.RESPONSIBILITY_ID, res.RESPONSIBILITY_NAME<br />
from apps.FND_USER usr, apps.FND_RESPONSIBILITY_TL res, apps.FND_USER_RESP_GROUPS grp<br />
where upper(res.RESPONSIBILITY_NAME) like upper('%' || NVL('&amp;EnterRespName', 'INV')|| '%')<br />
and upper(res.RESPONSIBILITY_NAME) NOT like '%AX%'<br />
and upper(res.RESPONSIBILITY_NAME) NOT like '%OPM%'<br />
and grp.responsibility_id = res.responsibility_id<br />
and grp.user_id = usr.user_id;<br />
</code></div>
<p>d. Values of a profile option<br />
It is sometimes hard to know where a profile option is set. A user might have a profile option set, an application, responsibility, and these might result in unexpected results. The following prompts for the profile name that a user sees. You could also query for the internal profile code instead by using the column a.profile_option_name instead.</p>
<div><code>select<br />
b.user_profile_option_name "Long Name"<br />
, a.profile_option_name "Short Name"<br />
, decode(to_char(c.level_id),'10001','Site'<br />
,'10002','Application'<br />
,'10003','Responsibility'<br />
,'10004','User'<br />
,'Unknown') "Level"<br />
, decode(to_char(c.level_id),'10001','Site'<br />
,'10002',nvl(h.application_short_name,to_char(c.level_value))<br />
,'10003',nvl(g.responsibility_name,to_char(c.level_value))<br />
,'10004',nvl(e.user_name,to_char(c.level_value))<br />
,'Unknown') "Level Value"<br />
, c.PROFILE_OPTION_VALUE "Profile Value"<br />
, c.profile_option_id "Profile ID"<br />
, to_char(c.LAST_UPDATE_DATE,'DD-MON-YYYY HH24:MI') "Updated Date"<br />
, nvl(d.user_name,to_char(c.last_updated_by)) "Updated By"<br />
from<br />
apps.fnd_profile_options a<br />
, apps.FND_PROFILE_OPTIONS_VL b<br />
, apps.FND_PROFILE_OPTION_VALUES c<br />
, apps.FND_USER d<br />
, apps.FND_USER e<br />
, apps.FND_RESPONSIBILITY_VL g<br />
, apps.FND_APPLICATION h<br />
where<br />
--a.application_id = nvl(401, a.application_id)<br />
--and a.profile_option_name = nvl('INV', a.profile_option_name)<br />
b.user_profile_option_name like '&amp;ProfileName' -- 'AFLOG_ENABLED'<br />
and a.profile_option_name = b.profile_option_name<br />
and a.profile_option_id = c.profile_option_id<br />
and a.application_id = c.application_id<br />
and c.last_updated_by = d.user_id (+)<br />
and c.level_value = e.user_id (+)<br />
and c.level_value = g.responsibility_id (+)<br />
and c.level_value = h.application_id (+)<br />
order by<br />
b.user_profile_option_name, c.level_id,<br />
decode(to_char(c.level_id),'10001','Site'<br />
,'10002',nvl(h.application_short_name,to_char(c.level_value))<br />
,'10003',nvl(g.responsibility_name,to_char(c.level_value))<br />
,'10004',nvl(e.user_name,to_char(c.level_value))<br />
,'Unknown');<br />
</code></div>
<h3>2.4 Set Context / Initialize</h3>
<p>Sometimes you want to run queries that reference profile options. To do this, you should first initialize the context of the current session to the user, responsibility and application being used. You can also set the context of the current inventory organization for queries that reference the organization context.</p>
<p>a. Set context</p>
<div><code>PROMPT Initialize context of profiles, etc.<br />
PROMPT Note you can query the user id, responsibility id,<br />
PROMPT and application id from the FND tables.<br />
execute fnd_global.APPS_INITIALIZE(&amp;UserID, &amp;ResponsibilityID, &amp;ApplicationID);<br />
</code></div>
<p>b. Set organization</p>
<div><code>PROMPT Set organization<br />
PROMPT Note you can query the organization idea from mtl_parameters.<br />
execute fnd_client_info.set_org_context('&amp;OrganizationID');</code></div>
<h3></h3>
<h3>3. Manufacturing</h3>
<h3>3.1 Manufacturing General</h3>
<div><code><br />
PROMPT MANUFACTURING<br />
PROMPT Find standard codes and their meanings<br />
select<br />
lookup_type,<br />
lookup_code,<br />
substr(meaning, 1, 60) "Meaning"<br />
from mfg_lookups<br />
where<br />
upper(lookup_type) like upper('%'||NVL('&amp;YourType', 'N/A')||'%')<br />
or lookup_type IN('SERIAL_NUM_STATUS', 'MTL_PRIMARY_COST', 'MTL_CC_ENTRY_STATUSES', 'MTL_TXN_REQUEST_STATUS', 'MOVE_ORDER_TYPE')<br />
order by lookup_type, lookup_code;</p>
<p></code></div>
<h3>3.2. Setup</h3>
<h3>3.2.1. Inventory</h3>
<p>a. Transaction types</p>
<div><code>PROMPT MANUFACTURING: INVENTORY<br />
PROMPT Transaction Type<br />
SELECT transaction_type_id, transaction_action_id, TRANSACTION_SOURCE_TYPE_ID, TRANSACTION_TYPE_NAME<br />
FROM MTL_TRANSACTION_TYPES<br />
WHERE to_char(transaction_type_id) like ('%&amp;YourTransactionTypeID%')<br />
ORDER BY transaction_type_id;<br />
</code></div>
<p>b. Transaction sources:</p>
<div><code>PROMPT Transaction Source<br />
select transaction_source_type_id, transaction_source_type_name<br />
from mtl_txn_source_types<br />
where transaction_source_type_id like NVL('&amp;TransSourceID', '%');</code></div>
<h3>3.3. Transactions</h3>
<h3>3.3.1. Inventory Transactions</h3>
<p>a. Stuck interface transactions (Group By)</p>
<div><code>PROMPT Stuck Transactions - GroupBy MTI<br />
select transaction_type_id, organization_id, substr(error_code, 1, 30),<br />
substr(error_explanation, 1, 50), to_char(transaction_date, 'YYYY-MM'),<br />
count(*)<br />
from mtl_transactions_interface<br />
group by transaction_type_id, organization_id, to_char(transaction_date, 'YYYY-MM'),<br />
substr(error_code, 1, 30), substr(error_explanation, 1, 50);<br />
</code></div>
<p>b. Stuck pending transactions (Group By)</p>
<div><code>PROMPT Stuck Transactions - GroupBy MMTT<br />
select transaction_type_id, organization_id, substr(error_code, 1, 30),<br />
substr(error_explanation, 1, 50), to_char(transaction_date, 'YYYY-MM'),<br />
count(*)<br />
from mtl_material_transactions_temp<br />
group by transaction_type_id, organization_id, to_char(transaction_date, 'YYYY-MM'),<br />
substr(error_code, 1, 30), substr(error_explanation, 1, 50);</code></div>
<p>c. Stuck move order transactions (Group By)</p>
<div><code>PROMPT Stuck Transactions - GroupBy Move Order<br />
select transaction_type_id, to_char(transaction_date,'YYYY-MON'),<br />
decode(transaction_status,2,'Untransacted Move order', transaction_status),<br />
error_code, error_explanation,<br />
count(*)<br />
from mtl_material_transactions_temp<br />
where organization_id = &amp;Org_id<br />
group by transaction_type_id, to_char(transaction_date,'YYYY-MON'),<br />
decode(transaction_status,2,'Untransacted Move order', transaction_status),<br />
error_code, error_explanation;<br />
</code></div>
<p>d. Uncosted transactions (Group By)</p>
<div><code>PROMPT Uncosted Transactions - GroupBy MMT<br />
select transaction_type_id, organization_id, costed_flag,<br />
to_char(transaction_date, 'YYYY-MM'), error_code, substr(error_explanation, 1, 50),<br />
count(*)<br />
from mtl_material_transactions<br />
where costed_flag IN ('N','E')<br />
group by transaction_type_id, organization_id, costed_flag, to_char(transaction_date, 'YYYY-MM'),<br />
error_code, substr(error_explanation, 1, 50);</code></div>
<p>e. Dump information about transaction tables</p>
<div><code>PROMPT Stuck Transactions Dump - MTI<br />
select transaction_interface_id, inventory_item_id, organization_id, subinventory_code,<br />
locator_id, revision, transaction_quantity, transaction_date, transaction_type_id,<br />
transaction_source_id, transfer_subinventory, transfer_locator,<br />
trx_source_line_id, cost_group_id, process_flag, lock_flag, transaction_mode,<br />
error_explanation, error_code<br />
from mtl_transactions_interface<br />
order by transaction_source_id, trx_source_line_id;</p>
<p>PROMPT Stuck Transactions Dump - MMTT<br />
select transaction_temp_id, inventory_item_id, organization_id, subinventory_code, locator_id, revision,<br />
transaction_quantity, transaction_date, transaction_type_id, transaction_source_id, transfer_subinventory,<br />
transfer_to_location, trx_source_line_id, cost_group_id, process_flag, lock_flag, transaction_mode,<br />
error_explanation, error_code<br />
from mtl_material_transactions_temp<br />
order by transaction_source_id, trx_source_line_id;</p>
<p>PROMPT Stuck Transactions Dump - MMT<br />
select<br />
transaction_id, inventory_item_id, organization_id, subinventory_code,<br />
locator_id, revision, transaction_quantity, transaction_date,<br />
transaction_type_id, transaction_source_id, transfer_subinventory,<br />
transfer_locator_id, trx_source_line_id, cost_group_id,<br />
error_explanation, error_code,<br />
from mtl_material_transactions<br />
where costed_flag IN ('N','E')<br />
order by transaction_source_id, trx_source_line_id;</code></div>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledocs.com/handy-sql-for-the-oracle-applications.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating Database Startup and Shutdown on Linux</title>
		<link>http://www.oracledocs.com/automating-database-startup-and-shutdown-on-linux.html</link>
		<comments>http://www.oracledocs.com/automating-database-startup-and-shutdown-on-linux.html#comments</comments>
		<pubDate>Sat, 10 Dec 2011 02:29:36 +0000</pubDate>
		<dc:creator>Seyhan</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Automating]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shutdown]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.oracledocs.com/?p=990</guid>
		<description><![CDATA[Automating Database Startup and Shutdown on Linux When using RAC or ASM under Oracle 10g Release 2 or above, the Oracle Clusterware automatically starts and stops the Oracle database instances, so the following procedures are not necessary. For all other cases, you can use the methods described below. The &#8220;su&#8221; Command The &#8220;rsh&#8221; Command Known [...]]]></description>
			<content:encoded><![CDATA[<h1>Automating Database Startup and Shutdown on Linux</h1>
<p>When using RAC or ASM under Oracle 10g Release 2 or above, the Oracle Clusterware automatically starts and stops the Oracle database instances, so the following procedures are not necessary. For all other cases, you can use the methods described below.</p>
<ul>
<li>The &#8220;su&#8221; Command</li>
<li>The &#8220;rsh&#8221; Command</li>
<li>Known Issues</li>
</ul>
<h2>The &#8220;su&#8221; Command</h2>
<p>The following represents the Oracle recommended method for automating database startup and shutdown of Oracle 9i instances.</p>
<p>Once the instance is created, edit the &#8220;/etc/oratab&#8221; file setting the restart flag for each instance to &#8216;Y&#8217;.</p>
<blockquote>
<pre>TSH1:/u01/app/oracle/product/9.2.0:Y</pre>
</blockquote>
<p>Next, create a file called &#8220;/etc/init.d/dbora&#8221; as the root user, containing the following.</p>
<blockquote>
<pre>#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/9.2.0
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
    echo "Oracle startup: cannot start"
    exit
fi

case "$1" in
    'start')
        # Start the Oracle databases:
        # The following command assumes that the oracle login
        # will not prompt the user for any values
        su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
        su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
        touch /var/lock/subsys/dbora
        ;;
    'stop')
        # Stop the Oracle databases:
        # The following command assumes that the oracle login
        # will not prompt the user for any values
        su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
        su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
        rm -f /var/lock/subsys/dbora
        ;;
esac</pre>
</blockquote>
<p>Use the <code>chmod</code> command to set the privileges to 750.</p>
<blockquote>
<pre>chmod 750 /etc/init.d/dbora</pre>
</blockquote>
<p>Associate the dbora service with the appropriate run levels and set it to auto-start using the following command.</p>
<blockquote>
<pre>chkconfig --add dbora</pre>
</blockquote>
<p>The relevant instances should now startup/shutdown automatically at system startup/shutdown.</p>
<p>This method can still be used under Oracle 10g and 11g, provided the &#8220;ORA_HOME&#8221; variable is amended to use the correct path and this is added to the end of the <code>dbstart</code> and <code>dbshut</code> lines. The lines to start and stop the listener can be removed under Oracle 10g release 2, as the <code>dbstart</code> command includes an automatic start of the listener.</p>
<blockquote>
<pre>#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/u01/app/oracle/product/10.2.0/db_1
#ORA_HOME=/u01/app/oracle/product/11.1.0/db_1
#ORA_HOME=/u01/app/oracle/product/11.2.0/db_1
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
    echo "Oracle startup: cannot start"
    exit
fi

case "$1" in
    'start')
        # Start the Oracle databases:
        # The following command assumes that the oracle login
        # will not prompt the user for any values
        su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
        touch /var/lock/subsys/dbora
        ;;
    'stop')
        # Stop the Oracle databases:
        # The following command assumes that the oracle login
        # will not prompt the user for any values
        su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
        rm -f /var/lock/subsys/dbora
        ;;
esac</pre>
</blockquote>
<h2>The &#8220;rsh&#8221; Command</h2>
<p>With Oracle 10g, Oracle switched from recommending the &#8220;su&#8221; command to the &#8220;rsh&#8221; command. In Oracle 10g release 2, the <code>dbstart</code> command includes an automatic start of the listener, so there are some differences between the two versions, but the following represents the preferred method for Oracle 10g.</p>
<p>Once the instance is created, edit the &#8220;/etc/oratab&#8221; file setting the restart flag for each instance to &#8216;Y&#8217;.</p>
<blockquote>
<pre>TSH1:/u01/app/oracle/product/9.2.0:Y</pre>
</blockquote>
<p>Next, create a file called &#8220;/etc/init.d/dbora&#8221; as the root user, containing the following.</p>
<blockquote>
<pre>#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Change the value of ORACLE_HOME to specify the correct Oracle home
# directory for your installation.

ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
#
# Change the value of ORACLE to the login name of the
# oracle owner at your site.
#
ORACLE=oracle

PATH=${PATH}:$ORACLE_HOME/bin
HOST=`hostname`
PLATFORM=`uname`
export ORACLE_HOME PATH
#
if [ ! "$2" = "ORA_DB" ] ; then
   if [ "$PLATFORM" = "HP-UX" ] ; then
      remsh $HOST -l $ORACLE -n "$0 $1 ORA_DB"
      exit
   else
      rsh $HOST -l $ORACLE  $0 $1 ORA_DB
      exit
   fi
fi
#
case $1 in
'start')
        $ORACLE_HOME/bin/dbstart $ORACLE_HOME
        touch /var/lock/subsys/dbora
        ;;
'stop')
        $ORACLE_HOME/bin/dbshut $ORACLE_HOME
        rm -f /var/lock/subsys/dbora
        ;;
*)
        echo "usage: $0 {start|stop}"
        exit
        ;;
esac
#
exit</pre>
</blockquote>
<p>Use the <code>chmod</code> command to set the privileges to 750.</p>
<blockquote>
<pre>chmod 750 /etc/init.d/dbora</pre>
</blockquote>
<p>Associate the dbora service with the appropriate run levels and set it to auto-start using the following command.</p>
<blockquote>
<pre>chkconfig --add dbora</pre>
</blockquote>
<p>The relevant instances should now startup/shutdown automatically at system startup/shutdown.</p>
<p>This method relies on the presence of an RSH server, which requires additional packages and configuration.</p>
<blockquote>
<pre># Install the rhs and rsh-server packages from the OS CD/DVD.
rpm -Uvh --force rsh-*

# Enable rsh and rlogin.
chkconfig rsh on
chkconfig rlogin on
service xinetd reload</pre>
</blockquote>
<p>This can be quite problematic when attempting to use this method under later Linux distributions, where rsh is deprecated. As a result, I prefer to use the &#8220;su&#8221; command method.</p>
<p>This method can also be used for 11g databases that are not using ASM or RAC.</p>
<h2>Known Issues</h2>
<p>When using Oracle 10g Release 2, calling <code>dbstart</code> might result in the following error message.</p>
<blockquote><p>Failed to auto-start Oracle Net Listener using /ade/vikrkuma_new/oracle/bin/tnslsnr</p></blockquote>
<p>This is due to a hard coded path in the <code>dbstart</code> script. You should not see this error if you pass the &#8220;$ORACLE_HOME&#8221; as a parameter to dbstart and dbshut. To correct this, edit the &#8220;$ORACLE_HOME/bin/dbstart&#8221; script and replace the following line (approximately line 78).</p>
<blockquote>
<pre>ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle</pre>
</blockquote>
<p>With this.</p>
<blockquote>
<pre>ORACLE_HOME_LISTNER=$ORACLE_HOME</pre>
</blockquote>
<p>The <code>dbstart</code> script should now start the listener as expected.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledocs.com/automating-database-startup-and-shutdown-on-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stress Test</title>
		<link>http://www.oracledocs.com/stress-test.html</link>
		<comments>http://www.oracledocs.com/stress-test.html#comments</comments>
		<pubDate>Fri, 09 Dec 2011 07:53:44 +0000</pubDate>
		<dc:creator>Seyhan</dc:creator>
				<category><![CDATA[Videos]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Stress Test]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.oracledocs.com/?p=985</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="425" height="344" src="http://www.youtube.com/embed/XCsXsD6wpFo" frameborder="0" allowFullScreen="true"> </iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledocs.com/stress-test.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Database Vault &#8211; Who&#8217;s Monitoring Your Database?</title>
		<link>http://www.oracledocs.com/oracle-database-vault-whos-monitoring-your-database.html</link>
		<comments>http://www.oracledocs.com/oracle-database-vault-whos-monitoring-your-database.html#comments</comments>
		<pubDate>Fri, 09 Dec 2011 07:52:55 +0000</pubDate>
		<dc:creator>Seyhan</dc:creator>
				<category><![CDATA[Videos]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[Oracle Database Vault]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.oracledocs.com/?p=983</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="425" height="344" src="http://www.youtube.com/embed/fqmOAgePSfI" frameborder="0" allowFullScreen="true"> </iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledocs.com/oracle-database-vault-whos-monitoring-your-database.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Configuration Manager (OCM)</title>
		<link>http://www.oracledocs.com/oracle-configuration-manager-ocm.html</link>
		<comments>http://www.oracledocs.com/oracle-configuration-manager-ocm.html#comments</comments>
		<pubDate>Fri, 09 Dec 2011 07:51:53 +0000</pubDate>
		<dc:creator>Seyhan</dc:creator>
				<category><![CDATA[Videos]]></category>
		<category><![CDATA[OCM]]></category>
		<category><![CDATA[Oracle Configuration Manager]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.oracledocs.com/?p=981</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="425" height="344" src="http://www.youtube.com/embed/LSU-_pjdNxc" frameborder="0" allowFullScreen="true"> </iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledocs.com/oracle-configuration-manager-ocm.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
