<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>Experiments from the Field..Based on True Stories</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/" />
   <link rel="self" type="application/atom+xml" href="http://blogs.oracle.com/gverma/xml/rss.xml" />
   <id>tag:blogs.oracle.com,2009:/gverma//49</id>
   <updated>2009-04-21T19:47:29Z</updated>
   
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type Enterprise 1.52-en-voltron-r47459-20070213</generator>

<entry>
   <title>RMAN puzzle: database reincarnation is not in sync with catalog</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2009/04/rman_puzzle_database_reincarna.html" />
   <id>tag:blogs.oracle.com,2009:/gverma//49.11684</id>
   
   <published>2009-04-21T19:41:10Z</published>
   <updated>2009-04-21T19:47:29Z</updated>
   
   <summary>A very puzzling situation.. Something very puzzling happened with the production database of our customer. Although the client had done a complete, successful backup of PROD in the morning, a subsequent backup attempt of PROD in the afternoon gave this...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<h2>A very puzzling situation..</h2>  <p>Something very puzzling happened with the production database of our customer. Although the client had done a complete, successful backup of PROD in the morning, a subsequent backup attempt of PROD in the afternoon gave this error:</p>  <p></p>  <p><font face="Courier New" size="2">Starting backup at 04172009 </font></p>  <p></p>  <p><font face="Courier New" size="2">released channel: ch00      <br />RMAN-00571: ===========================================================       <br />RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============       <br />RMAN-00571: ===========================================================       <br />RMAN-03002: failure of backup command at 04/17/2009 13:25:45       <br />RMAN-03014: implicit resync of recovery catalog failed       <br />RMAN-06004: ORACLE error from recovery catalog database:       <br />RMAN-20011: target database incarnation is not current in recovery catalog </font></p>  <p>To counter this, un-registration and re-registered of the database was done so that both DB incarnation and catalog reincarnation will come in sync.&#160; Although this had the risk of invalidating the previous PROD backups, this appeared to solve the problem and then the PROD full backups completed successfully.&#160; </p>  <p>However, the very next day, the problem re-appeared!&#160; We asked the client if any changes were done from their side? The firm answer was “No”. This added to the mystery of the problem.&#160; </p>  <h2>First impressions..</h2>  <p>What could have caused the same error to re-appear all of a sudden? We tried running the RMAN crosscheck command, but all of them were giving the same error. A list incarnation of database was not giving any output. It was quite puzzling.</p>  <p>After some research, we came across Note 412113.1 on <a href="http://metalink.oracle.com">http://metalink.oracle.com</a>, which pointed towards the possibility of some non-prod instance getting registered with RMAN catalog with the same DBID as production’s.</p>  <p>In addition, Notes 1076158.6 and 1061206.6 were also *probably* relevant, but the relevance was not striking.</p>  <h2>On second thoughts..</h2>  <p>It came to light that the client had configured netbackup agent in another server on the same day, and that server had a database, which was the Disaster Recovery database last time. So, there might be some related conflict due to this condition. Crazily enough, the other database was also called PROD!</p>  <p>This is the output of DBIDs and incarnations in rman catalog. There is only one DBID registered for PROD,&#160; but the question was which PROD instance was it referring to?    <br />    <br /><font size="2"><font face="Courier New">SQL&gt; select name,DBID,RESETLOGS_TIME from rc_database order by 1;        <br />        <br />NAME DBID&#160;&#160;&#160;&#160;&#160;&#160; RESETLOG         <br />---- ---------- --------         <br />PROD 4290406901 03272008         <br />RCAT 356098101&#160; 03012006         <br />        <br />SQL&gt; select db_key,DBID,name,current_incarnation from rc_database_incarnation order by 1;         <br />        <br />DB_KEY DBID NAME CUR         <br />---------- ---------- -------- ---         <br />23531 356098101 RCAT YES         <br />623638 4290406901 PROD NO         <br />623638 4290406901 PROD YES         <br />623638 4290406901 PROD NO         <br /><small></small></font></font></p>  <h2>Solution</h2>  <p>So, in reality, what had happened was that the reincarnation of DR PROD instance had been setup in the rman catalog. To undo this, we reset the database incarnation to the catalog using the RESET INCARNATION TO DBKEY and then did a manual resync of catalog using the rman RESYNC CATALOG command. </p>  <pre>SQL&gt; select db_key,dbid,name,CURRENT_INCARNATION from 
rc_database_incarnation order by 1;

<p>    DB_KEY       DBID NAME     CUR<br />
---------- ---------- -------- ---<br />
     23531  356098101 RCAT     YES<br />
    623638 4290406901 PROD     NO<br />
    623638 4290406901 PROD     NO<br />
<strong>    623638 4290406901 PROD     YES</strong></pre></p>

<p><small></small></p>

<p><small></small></p>

<p>We did not re-register any instance in catalog. After this, the LIST INCARNATION OF DATABASE command started working fine as we could list the existing backups and other details. A new full online backup of PROD was started and also completed successfully.&#160; </p>

<p>As an added precaution, the instance name on the other server was changed from &quot;PROD&quot; to &quot;DRTEST&quot;.</p>]]>
      
   </content>
</entry>
<entry>
   <title>10g optimizer case study: Runtime Execution issues with View merging</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/12/10g_optimizer_case_study_runti.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.9150</id>
   
   <published>2008-12-17T00:46:00Z</published>
   <updated>2008-12-17T01:16:30Z</updated>
   
   <summary>Preface After the 10g upgrade for our client’s 11i Application system, we were a little gung-ho, but the self-congratulations were short-lived as we discovered that a bulk load of custom concurrent programs were taking longer. Aswath Rao, who had solved...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
         <category term="11ioracleapps" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Performance" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<h2><font color="#008000">Preface</font></h2>  <p>After the 10g upgrade for our client’s 11i Application system, we were a little gung-ho, but the self-congratulations were short-lived as we discovered that a bulk load of custom concurrent programs were taking longer. </p>  <p><strong>Aswath Rao</strong>, <a href="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/headshot%20aswath%20brighter_2.jpg"><img title="headshot aswath brighter" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="91" alt="headshot aswath brighter" src="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/headshot%20aswath%20brighter_thumb.jpg" width="96" border="0" /></a> who had solved many performance issues before using the HOTSOS tool, handled it smartly. In this article, we talk about how he approached the problem, and what else could have been looked into.</p>  <p>Essentially, after some SQL plan analysis, he found that the merging of some views was causing a poorly <strong><em>executing </em></strong>plan (which was probably looking good to the 10g optimizer – the stats were recent) to be selected and finally got around it by using a couple time tested and clever hints for avoiding merging. He had to try and test quite a bit, but avoiding the merging worked.</p>  <h2><font color="#008000">First thoughts..</font></h2>  <p>When I first heard about it, my first thoughts went to an initialization variable called <strong><em>optimizer_secure_view_merging </em></strong>and when I searched on Google, I came across <a title="http://oracledb.wordpress.com/2007/04/10/execution-plans-differents-with-different-users/" href="http://oracledb.wordpress.com/2007/04/10/execution-plans-differents-with-different-users/">http://oracledb.wordpress.com/2007/04/10/execution-plans-differents-with-different-users/</a>, which talks about something similar. Now, interestingly, if you run the bde_chk_cbo.sql script (obtainable from Metalink), it says that this parameter should be set to FALSE. The note 216205.1 – Mandatory parameters for 11i Apps corroborates the same. It was set to its expected value, in which Oracle does not use view merging or predicate move-around. Still, the view merging was definitely happening.</p>  <h2><font color="#008000">Where’s the bottleneck?</font></h2>  <p>So there was this custom concurrent program called XXMRPSTKTRANS and its runtime parameters had suddenly changed (we had the history of previous concurrent programs), an sql&#160; of the format <em>INSERT INTO XXCI.XXMRP_STOCK_TRANSFER_RPT_ITEMS &lt;followed by a select query&gt; </em>was taking approximately 97 % of the total concurrent request’s runtime.&#160; The query used 967 million Logical IOs. </p>  <p>Lets look at the Hotsos profiling output:</p>  <p><a href="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/Hotsos%20output1_1.gif"><img title="Hotsos output1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="222" alt="Hotsos output1" src="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/Hotsos%20output1_thumb_1.gif" width="626" border="0" /></a> </p>  <p><a href="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/skew%20graph.gif"><img title="skew graph" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="330" alt="skew graph" src="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/skew%20graph_thumb.gif" width="654" border="0" /></a> </p>  <h2><font color="#008000">Lets look deeper..</font></h2>  <p>From the sql traces, it could be seen that this query was dragging us down:</p>  <pre>SELECT PLANS.COMPILE_DESIGNATOR,
       ITEMS.ORGANIZATION_ID,
       ITEMS.ORGANIZATION_CODE,
       ITEMS.PLANNER_CODE,
       ITEMS.INVENTORY_ITEM_ID,
       ITEMS.DESCRIPTION, ITEMS.
       FULL_LEAD_TIME, MSS.SAFETY_STOCK_QUANTITY, NULL
FROM <strong><font color="#ff0000">MRP_PLANS_SC_V</font></strong> PLANS,
     MRP_SYSTEM_ITEMS ITEMS,
     MTL_CATEGORY_SETS CATSETS,
     MTL_CATEGORIES CAT,
     MTL_ITEM_CATEGORIES ITEMC,
      (SELECT INVENTORY_ITEM_ID, ORGANIZATION_ID,
SAFETY_STOCK_QUANTITY,EFFECTIVITY_DATE
       FROM MTL_SAFETY_STOCKS MSS1
       WHERE EFFECTIVITY_DATE = (SELECT MAX(EFFECTIVITY_DATE)
 FROM MTL_SAFETY_STOCKS
 WHERE INVENTORY_ITEM_ID = MSS1.INVENTORY_ITEM_ID
AND ORGANIZATION_ID = MSS1.ORGANIZATION_ID
GROUP BY INVENTORY_ITEM_ID, ORGANIZATION_ID ) ) MSS
WHERE PLANS.COMPILE_DESIGNATOR = ITEMS.COMPILE_DESIGNATOR
AND PLANS.PLANNED_ORGANIZATION = ITEMS.ORGANIZATION_ID
AND CATSETS.CATEGORY_SET_ID = ITEMC.CATEGORY_SET_ID
AND CATSETS.STRUCTURE_ID = CAT.STRUCTURE_ID
AND CAT.CATEGORY_ID = ITEMC.CATEGORY_ID
AND ITEMC.INVENTORY_ITEM_ID = ITEMS.INVENTORY_ITEM_ID
AND ITEMC.ORGANIZATION_ID = ITEMS.ORGANIZATION_ID
AND ITEMS.INVENTORY_ITEM_ID = MSS.INVENTORY_ITEM_ID(+)
AND ITEMS.ORGANIZATION_ID = MSS.ORGANIZATION_ID(+)
AND CATSETS.CATEGORY_SET_NAME = :B8
AND ( (:B7 IS NOT NULL AND ITEMS.PLANNER_CODE = :B7 )  OR (:B7 IS NULL) )
AND PLANS.COMPILE_DESIGNATOR = :B6
AND ((:B5 IS NOT NULL AND LENGTH(:B5 ) &lt; 4 AND ITEMS.ORGANIZATION_CODE = :B5 )
OR (:B5 IS NOT NULL  AND LENGTH(:B5 ) &gt; 3 AND ITEMS.ORGANIZATION_CODE IN
(SELECT LOOKUP_CODE FROM
FND_LOOKUP_VALUES WHERE
LOOKUP_TYPE = :B5 AND
LANGUAGE = 'US' ) )
OR (:B5 IS NULL ) )
AND ((:B4 IS NOT NULL AND CAT.SEGMENT1 = :B4 )OR (:B4 IS NULL))
AND ((:B3 IS NOT NULL AND CAT.SEGMENT2 = :B3 )OR (:B3 IS NULL))
AND ((:B2 IS NOT NULL AND CAT.SEGMENT3 = :B2 )OR (:B2 IS NULL))
AND ((:B1 IS NOT NULL AND CAT.SEGMENT4 = :B1 ) OR (:B1 IS NULL));</pre>

<h2><font color="#008000">Playing with plans – Worst, Better, Best..</font></h2>

<p><font face="times">Having determined the sql on which the future tuning efforts must be focused on, lets dive into the different sql plans observed (with and without hints) and the accompanying logical I/O stats.</font></p>

<ul>
  <li>
    <h4><font color="#0000ff">WITHOUT HINTS - 35 MILLION CONSISTENT GETS (Not good)</font></h4>
  </li>
</ul>

<p><font face="times">Lets talk about the <strong><u>out-of-the-box</u></strong> plan (no hints) first. Obviously, there is a lot of detail here and is difficult to be absorbed at a single glance, but the key thing to note here is that the cost is actually very low (103), so on paper this looks like a great plan. Sure, there are a couple Full table scans, but those tables are really small. The caveat with this plan is that its performance is really bad in real time due to high index scans, which further contribute to excessive CPU delays.</font></p>

<p><font face="Courier New" size="2"><a href="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/Default%20plan.gif"><img title="Default plan" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="1203" alt="Default plan" src="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/Default%20plan_thumb.gif" width="752" border="0" /></a> </font></p>

<ul>
  <li>
    <h4><font color="#0000ff">ORDERED HINT - 15 MILLION CONSISTENT GETS</font></h4>
  </li>
</ul>

<p><font face="times">It got a little better with the ORDERED hint, although the plan cost went up a bit:</font></p>

<p><font face="Times"><a href="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/ordered%20hint%20plan.gif"><img title="ordered hint plan" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="1200" alt="ordered hint plan" src="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/ordered%20hint%20plan_thumb.gif" width="755" border="0" /></a> </font></p>

<ul>
  <li>
    <h4><font color="#0000ff">NO_MERGE(CATSETS) NO_MERGE(CAT) NO_MERGE (PLANS) - 26952 CONSISTENT GETS </font></h4>
  </li>
</ul>

<p><font face="times">Better than the ORDERED hint was the NO_MERGE hint for each of the views, which brought down the consistent gets to ~27,000, all the way from 35 million! Whoa, that was a drastic change. Note that the cost of this plan is 380, as compared to 1634 of the ORDERED plan’s (cost). Interesting observation.</font></p>

<p><font face="Times"><a href="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/no%20merge%20hint%20plan.gif"><img title="no merge hint plan" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="1200" alt="no merge hint plan" src="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheRecycleBum_C236/no%20merge%20hint%20plan_thumb.gif" width="753" border="0" /></a> </font></p>

<h2><font color="#008000">Moral of the story?</font></h2>

<p><font face="times">Well, the NO_MERGE hint definitely made things better, when used on all the views or inline views in the query. The 10g optimizer was definitely having a challenge around this part. Also, while the overall compile time plan was showing lesser cost, the runtime performance was very skewed.&#160; </font></p>

<p><font face="Times">I am also forced to think that if we had played with <em><strong>optimizer_index_cost_adj</strong></em> parameter a bit at the session level, maybe we could have made some indexes look more expensive and hence pushed them down the priority list for the optimizer. But since this idea did not get tested, its just a thought at this point (<em>it wouldn’t have been a sustainable solution anyway, but I’ve seen it being effective at session level before and can be tried in unwieldy situations</em>).</font></p>

<p><font face="times">In retrospect, note that the MRP_PLANS_SC_V internally refers to three more views! This is probably what makes this sql plan a little more special.</font></p>

<p><font face="Courier New" size="2">SQL&gt; select REFERENCED_NAME,REFERENCED_TYPE,REFERENCED_LINK_NAME,DEPENDENCY_TYPE from dba_dependencies where name like 'MRP_PLANS_SC_V' and REFERENCED_TYPE like 'VIEW';</font></p>

<p><font face="Courier New" size="2">REFERENCED_NAME&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; REFERENCED_TYPE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; REFERENCED_LINK_NAME&#160;&#160;&#160;&#160;&#160; DEPENDENCY_TYPE 
    <br />------------------------- ------------------------- ------------------------- ------------------------- 

<p>    <br />MFG_LOOKUPS&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VIEW&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HARD </p>

<p>    <br />MRP_DESIGNATORS_VIEW&#160;&#160;&#160;&#160;&#160; VIEW&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HARD </p>

<p>    <br />MRP_ORGANIZATIONS_V&#160;&#160;&#160;&#160;&#160;&#160; VIEW&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HARD</font></p></p>

<p></p>

<h2><font color="#008000">A digressive (?) discussion..</font></h2>

<p>As this wasn’t the only sql tuning issue the customer encountered, this might as well be pointing to an innate issue with the 10g optimizer workload stats that are stored in the <strong>sys.aux_stats$</strong> table. Although, the customer <strong><u>had gathered </u></strong>a representative workload sample of&#160; system stats using DBMS_STATS.GATHER_SYSTEM_STATS(‘START’) and DBMS_STATS.GATHER_SYSTEM_STATS(‘STOP’), the 10g optimizer does not seem to be churning out realistic execution-wise sql plans. </p>

<p>An interesting face is that the customer’s production machine has 32 CPUs, 192G of RAM and a really fast I/O sub-system, so maybe the workload parameters estimated through the APIs were overly optimistic? Maybe during the sampling, the optimizer API said.. <em>Wow, This is cool. I can really do a lot.</em> It sounds like a possible cause, but one would argue that the oracle API would be smart enough to account for it. Interestingly, the values for CPUSPEEDNW (the parameter used without workload simulation) and CPUSPEED are not very far from each other. </p>

<p>Here is how the stats look right now:</p>

<p><font face="Courier New" size="2">SQL&gt; select sname, pname, pval1 from sys.aux_stats$;</font></p>

<p><font face="Courier New" size="2">SNAME&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; PNAME&#160;&#160;&#160;&#160;&#160; PVAL1 
    <br />------------- ---------- ---------- 

<p>    <br />SYSSTATS_INFO STATUS </p>

<p>    <br />SYSSTATS_INFO DSTART </p>

<p>    <br />SYSSTATS_INFO DSTOP </p>

<p>    <br />SYSSTATS_INFO FLAGS&#160;&#160;&#160;&#160;&#160; 0 </p>

<p>    <br />SYSSTATS_MAIN CPUSPEEDNW 983.218164 </p>

<p>    <br />SYSSTATS_MAIN IOSEEKTIM&#160; 10 </p>

<p>    <br />SYSSTATS_MAIN IOTFRSPEED 4096 </p>

<p>    <br />SYSSTATS_MAIN SREADTIM&#160;&#160; 3.866 </p>

<p>    <br />SYSSTATS_MAIN MREADTIM&#160;&#160; 5.203 </p>

<p>    <br />SYSSTATS_MAIN CPUSPEED&#160;&#160; 972 </p>

<p>    <br />SYSSTATS_MAIN MBRC&#160;&#160;&#160;&#160;&#160;&#160; 7 </p>

<p>    <br />SYSSTATS_MAIN MAXTHR&#160;&#160;&#160;&#160; 79357952 </p>

<p>    <br />SYSSTATS_MAIN SLAVETHR&#160;&#160; 3072</font></p></p>

<p><font face="Courier New" size="2">13 rows selected.</font></p>

<p>One should be aware that these parameters can be set manually using DBMS_STATS.SET_SYSTEM_STATS API. While you do find some general information on the web, unfortunately, not a lot of specific case study material is available on how manually changing each parameter affects the optimizer behavior. I think this is also where most of us fail to understand the true potential of 10g optimizer, both before and after the upgrade. </p>

<p>I sincerely wish that someone authoritative from the product or server technologies support team comes up with informative material on them.</p>]]>
      
   </content>
</entry>
<entry>
   <title><![CDATA[The Cluster said: &quot;I forbid you to migrate SYSTEM tablespace to local&quot;]]></title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/11/the_cluster_said_i_forbid_you.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.8803</id>
   
   <published>2008-11-27T00:27:00Z</published>
   <updated>2008-11-27T00:48:06Z</updated>
   
   <summary>Introducing Nitin Ramesh In this article, I would like to introduce Nitin Ramesh, an associate consultant with Oracle GSD India, Bangalore. This is the first time that I am having another Oracle Employee and co-worker publish articles on this blog,...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<h2>Introducing Nitin Ramesh</h2>  <p><a href="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheClustersaysIwontletyoumigrateSYSTEMta_8DC0/NitinR_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="168" alt="NitinR" src="http://blogs.oracle.com/gverma/WindowsLiveWriter/TheClustersaysIwontletyoumigrateSYSTEMta_8DC0/NitinR_thumb.jpg" width="139" border="0" /></a> </p>  <p>In this article, I would like to introduce <strong>Nitin Ramesh</strong>, an associate consultant with Oracle GSD India, Bangalore. This is the first time that I am having another Oracle Employee and co-worker publish articles on this blog, and I am excited. We solve many problems every for our ~35 customers on a 24x7 basis, but not many of them make it to articles to help others in need. <em>If only we decided to this is on a regular basis, a lot of problems could be solved by a mere &quot;google&quot;.</em></p>  <p>Coming back to Nitin, he is a pretty creative person and likes to solve intriguing problems. I haven't seen many people do that with sincerity. It is hoped that with this publication, he will come forth with more interesting articles and end up having his own blog. </p>  <p><em><strong>Credit: </strong><u>The following article has been written by him and edited later on for presentation purposes.</u></em></p>  <h2>Preface</h2>  <p>In this article, we will talk about a scenario in which we were required to migrate the SYSTEM tablespace to local. What did you say? Piece of cake? We thought so too! </p>  <p>This process seemed to be simple to be first tried out in the test environment. But it was not all that simple. The first attempt ended with an error.</p>  <p><b><font face="Courier New" color="#ff0000" size="2">SQL&gt; EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');        <br /></font></b></p>  <p><b><font face="Courier New" color="#ff0000" size="2">BEGIN DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM'); END;        <br />*         <br />ERROR at line 1:         <br />ORA-06550: line 1, column 7:         <br />PLS-00201: identifier 'DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL' must be         <br />declared         <br />ORA-06550: line 1, column 7:         <br />PL/SQL: Statement ignored</font></b></p>  <h2>Huh?</h2>  <p>The issue was suspected to be the database not being in the proper mount mode to run the command.</p>  <p>The command was rerun with the following options again..</p>  <p><font face="Courier New" size="2">SQL&gt; startup mount restrict exclusive</font></p>  <p>and</p>  <p><font face="Courier New" size="2">SQL&gt; startup restrict</font></p>  <p>But, the results were not positive.</p>  <p>The next suspicion was on the package itself. So that angle had to be cleared...</p>  <p><font face="Courier New" size="2">SQL&gt; select object_name, object_type, status from </font><font face="Courier New" size="2">dba_objects where object_name = 'DBMS_SPACE_ADMIN';</font></p>  <p><font face="Courier New" size="2">OBJECT_NAME&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; OBJECT_TYPE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; STATUS      <br />-------------------- ------------------- -------       <br />DBMS_SPACE_ADMIN&#160;&#160;&#160;&#160; PACKAGE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />DBMS_SPACE_ADMIN&#160;&#160;&#160;&#160; PACKAGE BODY&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />DBMS_SPACE_ADMIN&#160;&#160;&#160;&#160; SYNONYM&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID</font></p>  <p>Hmm, no problem there too. </p>  <p>Maybe the problem was with invoker rights, so we tried giving explicit grant to execute the procedure to sys, but we got the same (lack of) results:</p>  <p><font face="Courier New" size="2">SQL&gt; grant execute any procedure to sys;</font></p>  <h2>What else can we check?</h2>  <p>The issue was retested after setting the event <em>'201 trace name errorstack, level 3'</em> at the session level. This was tried with the both startup options &#8211; <i>&#8220;startup restrict</i> <i>&#8220;</i> and &#8220;<em>startup mount restrict exclusive&#8221;, </em>but that did not seem to help.</p>  <p><font face="Courier New" size="2">SQL&gt; show parameter event;      <br />NAME TYPE VALUE       <br />------------------------------------ ----------- ------------------------------       <br />event string 10298 trace name context forever, level 32       <br />SQL&gt; EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');       <br />BEGIN DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM'); END;       <br />*       <br />ERROR at line 1:       <br />ORA-10643: Database should be mounted in restricted mode and Exclusive mode       <br />ORA-06512: at &quot;SYS.DBMS_SPACE_ADMIN&quot;, line 227       <br />ORA-06512: at line 1</font>     <br />    <br />How about checking if all the DB options in DBA_REGISTRY were valid? </p>  <p><font face="Courier New" size="2">SQL&gt; select comp_name, version, status from dba_registry;</font></p>  <p><font face="Courier New" size="2">COMP_NAME&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VERSION&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; STATUS      <br />-------------------------------------- ------------------------------ ---------------------------------       <br />Oracle Enterprise Manager&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />Oracle XML Database&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />Oracle Text&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />Spatial&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />Oracle interMedia&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />Oracle Database Catalog Views&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />Oracle Database Packages and Types&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />JServer JAVA Virtual Machine&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />Oracle Database Java Packages&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />Oracle XDK&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID       <br />Oracle Real Application Clusters&#160;&#160;&#160;&#160;&#160;&#160; 10.2.0.3.0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALID</font></p>  <p>All right, no problems there. How about if this were a compatibility issue? </p>  <p><font face="Courier New" size="2">SQL&gt; show parameter compatible;      <br />NAME&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; TYPE&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALUE       <br />------------------------------------ ----------- -----------       <br />compatible&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; string&#160;&#160;&#160;&#160;&#160; 10.2.0</font></p>  <p></p>  <p>How about any freak triggers during startup:</p>  <p></p>  <p><font face="Courier New" size="2">SQL&gt; select * from dba_triggers where TRIGGERING_EVENT='STARTUP';</font></p>  <p><font face="Courier New" size="2">no rows selected</font></p>  <h2>Enter Oracle Support</h2>  <p>Since we had checked all we could, it was time to get an opinion from Product support. The matter was referred to Kevin Cook from the Advanced Resolution Team (AR). He suggested to retry using the STARTUP UPGRADE option, but before doing so, we tried setting the parameter <em><strong>o7_dictionary_accessibility </strong></em>to FALSE. Yet, the result was undesired. Finally, the STARTUP UPGRADE option had to be used to make it work, <em>BUT</em> with a different twist to it. </p>  <p>When nothing works, we should use the most simplistic case. Oh, did we forget to mention that this was a RAC instance? The catch was that the cluster had to be disabled and the UNDO tablespace for the other instance had to be dropped.</p>  <h2>How was it done?</h2>  <p>All the tablespaces were made &#8216;<em>read only&#8217;</em> <strong><u>other than</u></strong> SYSTEM, TEMP, SYSAUX and UNDO tablespaces.</p>  <p><font face="Courier New" size="2">SQL&gt; ALTER TABLESPACE &lt;tablespace_name&gt; READ ONLY;</font></p>  <p>Lets verify it..</p>  <p><font size="2"><font face="Courier New">SQL&gt; select t.tablespace_name, EXTENT_MANAGEMENT, ENABLED </font></font></p>  <p><font size="2"><font face="Courier New">from dba_tablespaces t, v$datafile d, dba_data_files f </font></font></p>  <p><font size="2"><font face="Courier New">where t.tablespace_name = f.tablespace_name </font></font></p>  <p><font face="Courier New" size="2">and f.file_id = d.file#;</font></p>  <p>Determined the undo tablespace used for the current instance.</p>  <p><font face="Courier New" size="2">SQL&gt; sho parameter UNDO_TABLESPACE;</font></p>  <p><font face="Courier New" size="2">NAME&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; TYPE&#160;&#160;&#160;&#160;&#160;&#160;&#160; VALUE</font></p>  <p><font face="Courier New" size="2">------------------------------------ ----------- ------------------------------</font></p>  <p><font face="Courier New" size="2">undo_tablespace&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; string&#160;&#160;&#160;&#160;&#160; UNDO1</font></p>  <p>As you cannot put UNDO_TS_B or UNDO_TS_C into READ ONLY mode since they are UNDO tablespaces, you must therefore drop these tablespaces, convert the SYSTEM tablespace, then re-create UNDO_TS_B and UNDO_TS_C tablespaces. So, we dropped the UNDO tablespace used by the other instance [UNDO2].</p>  <p>Now, the database was started with the STARTUP UPGRADE option, BUT the <em>cluster_database </em>parameter was set to <strong>false </strong>in this temp init.ora file:</p>  <p><font face="Courier New" size="2">SQL&gt; startup upgrade pfile='initDUAT1.ora_tmp_oct17';</font></p>  <p><font face="Courier New" size="2">ORACLE instance started.</font></p>  <p><font face="Courier New" size="2">Total System Global Area 1.0754E+10 bytes </font></p>  <p><font face="Courier New" size="2">Fixed Size 2174464 bytes </font></p>  <p><font face="Courier New" size="2">Variable Size 2889634304 bytes </font></p>  <p><font face="Courier New" size="2">Database Buffers 7851737088 bytes </font></p>  <p><font face="Courier New" size="2">Redo Buffers 10649600 bytes </font></p>  <p><font face="Courier New" size="2">Database mounted.</font></p>  <p><font face="Courier New" size="2">Database opened.</font></p>  <p>Take the SYSAUX tablespace offline..</p>  <p><font face="Courier New" size="2">SQL&gt; ALTER TABLESPACE sysaux OFFLINE;</font></p>  <h3>Conversion starts&#8230;</h3>  <p>Execute the DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL procedure specifying the SYSTEM tablespace:</p>  <p><font face="Courier New" size="2">SQL&gt; EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');</font></p>  <p><font face="Courier New" color="#0000ff" size="2"><strong>PL/SQL procedure successfully completed.</strong></font></p>  <p>Verify your change by querying DBA_TABLESPACES:</p>  <p><font face="Courier New" size="2">SQL&gt; SELECT tablespace_name, extent_management FROM dba_tablespaces WHERE tablespace_name = 'SYSTEM';</font></p>  <p><font face="Courier New" size="2">TABLESPACE_NAME&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; EXTENT_MAN</font></p>  <p><font face="Courier New" size="2">------------------------------ -------------------</font></p>  <p><font face="Courier New" size="2">SYSTEM&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff"><strong>LOCAL</strong></font></font></p>  <p>Once all tablespaces are locally managed within a database, the <em><strong>SYS.FET$</strong></em> table does not contain any rows:</p>  <p><font face="Courier New" size="2">SQL&gt; select * from sys.fet$;</font></p>  <p><font face="Courier New" size="2">no rows selected</font></p>  <p>Issue the following command to disable RESTRICTED mode:</p>  <p><font face="Courier New" size="2">SQL&gt; ALTER SYSTEM DISABLE RESTRICTED SESSION;</font></p>  <p><font face="Courier New" size="2">System altered.</font></p>  <p>Issue the following command for each tablespace you placed in READ ONLY mode to return it to READ WRITE:</p>  <p><font face="Courier New" size="2">SQL&gt; ALTER TABLESPACE &lt;tablespace_name&gt; READ WRITE;</font></p>  <p>Make the SYSAUX tablespace online:</p>  <p><font face="Courier New" size="2">SQL&gt; ALTER TABLESPACE sysaux ONLINE;</font></p>  <h2>Conclusion</h2>  <p>A simple exercise turned out to be a learning experience, because the API had a possible dependence or conflicts with some internal RAC views. When RAC was disabled and the UNDO tablespace for the other RAC instances were dropped, then the migration API completed successfully. The moral of the story is, when in doubt, use single instance mode.</p>  <p>&#160;</p>  <p><font face="Times">&#160;</font></p>]]>
      
   </content>
</entry>
<entry>
   <title>Deleting statistics or/and dropping indexes on Global temporary tables can help too</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/11/deleting_statistics_orand_drop.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.8730</id>
   
   <published>2008-11-23T21:14:24Z</published>
   <updated>2008-11-23T21:14:42Z</updated>
   
   <summary>Post Upgrade Performance Pangs.. After a 10g upgrade of production 11.5.9 Oracle Application instances, one of our clients was seeing some performance problems relating to pricing, particularly with a custom concurrent program called XXONT_PROGRESS_NOTIFIED. This triggered the onsite Senior DBA,...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<h2>Post Upgrade Performance Pangs..</h2>  <p>After a 10g upgrade of production 11.5.9 Oracle Application instances, one of our clients was seeing some performance problems relating to pricing, particularly with a custom concurrent program called XXONT_PROGRESS_NOTIFIED. </p>  <p>This triggered the onsite Senior DBA, Brian Fane <img height="85" alt="smaller bfane.JPG: " src="http://blogs.oracle.com/gauravVerma/images/smallerbfane.jpg" width="88" border="0" />, into action. While watching the current executing sqls of this job, this SQL statement was seen to be executing somewhat frequently:</p>  <p><font face="Courier New" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SELECT list_header_id     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FROM qp_preq_qual_tmp      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WHERE list_header_id = :b4      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND line_index = :b3      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND list_line_id = -1:      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND pricing_status_code = :b2      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND pricing_phase_id = :b1:      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND ROWNUM = 1;</font> </p>  <p>&#160;&#160;&#160;&#160; In fact, based on one AWR report he saw, it was about 19% of the gets and 5% of the total elapsed time between 0800 and 1300 hrs. It ran nearly a <strong><u>million</u></strong>    <br />times. The execution plan looked like this: </p>  <p><font face="Courier New" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CHILD_NUMBER&#160;&#160; QUERY </font></p>  <p><font face="Courier New" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160; SELECT STATEMENT&#160;&#160; [ALL_ROWS] Cost=1     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160; COUNT STOPKEY      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160; TABLE ACCESS BY INDEX ROWID QP_PREQ_QUAL_TMP_T&#160; Cost=0 Card=1&#160; Bytes=82      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160; INDEX SKIP SCAN <strong>XXQP_QP_PREQ_QUAL_TMP_T_N1</strong>&#160; Cost=0 Card=1&#160; Bytes=</font> </p>  <h2>Comparing with other 9i instances..</h2>  <p>&#160;&#160;&#160;&#160;&#160; In DEV, the query was <strong><u><em>not</em></u></strong> using XXQP_QP_PREQ_QUAL_TMP_T_N1, but instead was using QP_PREQ_QUAL_TMP_N1. </p>  <p>&#160;&#160;&#160;&#160; Taking another approach, in a BCV copy of PROD, when he tried removing the statistics, or updating them, it was either causing a full table scan or reverting back to PROD-like behavior of using <strong>XXQP_QP_PREQ_QUAL_TMP_T_N1</strong>, respectively. </p>  <p>&#160;&#160;&#160;&#160; So the variant in the situation was the custom index. The question was whether it was needed at all? He decided to look a little further into this, and found that there are   <br />currently 11 queries in the SQL area that were referring to this index. So somehow, the custom index wasn't really helping. This sql was useful for finding out the current sqls using the custom index was:</p>  <p><font face="Courier New" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SELECT DISTINCT old_hash_value     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FROM v$sql_plan      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; JOIN v$sqltext_with_newlines      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; using (sql_id)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; JOIN v$sql      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; using (sql_id)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WHERE object_name&#160; = 'XXQP_QP_PREQ_QUAL_TMP_T_N1'      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND object_owner = 'QP';</font> </p>  <h2>A Reliable validation point..</h2>  <p>&#160;&#160;&#160;&#160;&#160;&#160; So was this index being used in 9i at all? Was there another way to confirm this for PROD? Luckily, from a conscious choice, we had taken a backup of 9i's perfstat schema, which had historical sql plans being used by the system too (happens with snap_level &gt;=7). Brian proceeded to imported the perfstat data into the BCV copy and ran this query to determine the sql plans that were using the custom index 'XXQP_QP_PREQ_QUAL_TMP_T_N1:</p>  <p><font face="Courier New" size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SELECT /*+ PARALLEL(ssp, 8) */     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; DISTINCT plan_hash_value      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FROM perfstat.stats$sql_plan ssp      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WHERE object_owner = 'QP'      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND object_name = 'XXQP_QP_PREQ_QUAL_TMP_T_N1';</font> </p>  <p>&#160;&#160;&#160;&#160;&#160; This query yielded<strong><em> no queries</em></strong> in at least the last 30 days of PROD's 9i days in which this custom index was used. Simply speaking, this index was not being used in the 9i PROD instance.</p>  <p>&#160;&#160;&#160;&#160;&#160; Brian then worked with a developer to get a script for invoking this piece of code, for testing purposes. He thought of the possibility of dropping the index and letting the CBO do either a full table scan or use <em>another</em> index (after gathering statistics).</p>  <h2>Testing Results..</h2>  <p>&#160;&#160;&#160;&#160;&#160; Based on the code Brian got, and by doing two things -- deleting any statistics that exist on the QP_PREQ_QUAL_TMP_T table and dropping the custom   <br />XXQP_QP_PREQ_TMP_T_N1, he did see an improvement of the pricing performance. Here's the summary of the pre-change performance: </p>  <p><font face="Courier New" size="2">call&#160;&#160;&#160;&#160; count&#160;&#160;&#160;&#160;&#160;&#160; cpu&#160;&#160;&#160; elapsed&#160;&#160;&#160;&#160;&#160;&#160; disk&#160;&#160;&#160;&#160;&#160; query&#160;&#160;&#160; current&#160;&#160;&#160;&#160;&#160;&#160; rows     <br />------- ------&#160; -------- ---------- ---------- ---------- ---------- ----------      <br />Parse&#160;&#160;&#160;&#160;&#160; 841&#160;&#160;&#160;&#160;&#160; 0.13&#160;&#160;&#160;&#160;&#160;&#160; 0.12&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0      <br />Execute&#160; 36094&#160;&#160;&#160;&#160;&#160; 8.19&#160;&#160;&#160;&#160;&#160;&#160; 8.79&#160;&#160;&#160;&#160;&#160;&#160;&#160; 285&#160;&#160;&#160;&#160; 371446&#160;&#160;&#160;&#160; 118861&#160;&#160;&#160;&#160;&#160; 36701      <br />Fetch&#160;&#160;&#160; 30680&#160;&#160;&#160;&#160; 23.21&#160;&#160;&#160;&#160;&#160; 24.20&#160;&#160;&#160;&#160;&#160; 21307&#160;&#160;&#160; 3083457&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160; 41171      <br />------- ------&#160; -------- ---------- ---------- ---------- ---------- ----------      <br />total&#160;&#160;&#160; 67615&#160;&#160;&#160;&#160; <font color="#ff0000"><strong>31.53</strong></font>&#160;&#160;&#160;&#160;&#160; 33.12&#160;&#160;&#160;&#160;&#160; 21592&#160;&#160;&#160; <strong><font color="#ff0000">3454903</font></strong>&#160;&#160;&#160;&#160; 118861&#160;&#160;&#160;&#160;&#160; 77872</font> </p>  <p>&#160;&#160;&#160;&#160;&#160; After making the changes: </p>  <p><font face="Courier New" size="2">call&#160;&#160;&#160;&#160; count&#160;&#160;&#160;&#160;&#160;&#160; cpu&#160;&#160;&#160; elapsed&#160;&#160;&#160;&#160;&#160;&#160; disk&#160;&#160;&#160;&#160;&#160; query&#160;&#160;&#160; current&#160;&#160;&#160;&#160;&#160;&#160; rows     <br />------- ------&#160; -------- ---------- ---------- ---------- ---------- ----------      <br />Parse&#160;&#160;&#160;&#160; 1018&#160;&#160;&#160;&#160;&#160; 0.18&#160;&#160;&#160;&#160;&#160;&#160; 0.24&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0      <br />Execute&#160; 36273&#160;&#160;&#160;&#160;&#160; 8.66&#160;&#160;&#160;&#160;&#160;&#160; 9.38&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 31&#160;&#160;&#160;&#160; 369674&#160;&#160;&#160;&#160; 106981&#160;&#160;&#160;&#160;&#160; 36701      <br />Fetch&#160;&#160;&#160; 30891&#160;&#160;&#160;&#160; 12.19&#160;&#160;&#160;&#160;&#160; 12.47&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160; 1464382&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 0&#160;&#160;&#160;&#160;&#160; 41352      <br />------- ------&#160; -------- ---------- ---------- ---------- ---------- ----------      <br />total&#160;&#160;&#160; 68182&#160;&#160;&#160;&#160; <font color="#0000ff"><strong>21.03</strong></font>&#160;&#160;&#160;&#160;&#160; 22.10&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 31&#160;&#160;&#160; <strong><font color="#0000ff">1834056 </font></strong>&#160;&#160;&#160; 106981&#160;&#160;&#160;&#160;&#160; 78053</font> </p>  <p>The new performance shows gets being about <em>half of the pre-change </em>value, and elapsed time is about two thirds of the previous performance. </p>  <p>Here's the code for the deletion of statistics and dropping the index: </p>  <p><font face="Courier New" size="2">&#160;&#160;&#160; BEGIN     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; dbms_stats.delete_table_stats(ownname =&gt; 'QP', tabname =&gt;&#160; 'QP_PREQ_QUAL_TMP_T', cascade_indexes =&gt; true);      <br />&#160;&#160;&#160; END;      <br />&#160;&#160;&#160; / </font></p>  <p><font face="Courier New" size="2">&#160;&#160; DROP INDEX QP.XXQP_QP_PREQ_QUAL_TMP_T_N1; </font></p>  <blockquote>   <p><font face="Courier New" size="2">To back out:. </font></p>    <p><font face="Courier New" size="2">&#160;&#160; CREATE INDEX QP.XXQP_QP_PREQ_QUAL_TMP_T_N1 ON       <br />&#160;&#160;&#160;&#160;&#160; QP.QP_PREQ_QUAL_TMP_T        <br />&#160;&#160;&#160;&#160;&#160; (UNIQUE_KEY, PRICING_STATUS_CODE, PRICING_PHASE_ID); </font></p> </blockquote>  <p><font face="Courier New" size="2">&#160;&#160;&#160; BEGIN     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fnd_stats.gather_table_stats(ownname =&gt; 'QP', tabname =&gt;&#160;&#160;&#160; 'QP_PREQ_QUAL_TMP_T', CASCADE =&gt; FALSE);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fnd_stats.gather_index_stats(ownname =&gt; 'QP', indname =&gt;&#160;&#160;&#160; 'XXQP_QP_PREQ_QUAL_TMP_T_N1');      <br />&#160;&#160;&#160; END;      <br />&#160;&#160;&#160; /</font></p>  <h2>Learning from this anecdote..</h2>  <p>One question could be: <em>why did we not create a 10g sql profile (9i's stored outline) for fixing the sql at hand?</em> The only caveat there is, you need a sql profile for every possible sql that would potentially use QP.QP_PREQ_QUAL_TMP_T, which is not an easy proposition. </p>  <p>Even though we may gather statistics on all related objects, the CBO may not choose the best sql plan for really high number of executions. On another note, it pays to have the history of sql plans of working scenarios. For promoting the CBO to choose the optimal plan, It may be required to drop some indexes to force a less costlier plan (over a million executions). </p>  <p><em>Note: This article is being produced with the explicit permission of Brian Fane, and is aimed at sharing tips in the Oracle world for other people who might be in the same situation.</em></p>]]>
      
   </content>
</entry>
<entry>
   <title>Out Of Time? - Use The Shotgun or Reboot..</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/11/out_of_time_use_the_shotgun_or.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.8729</id>
   
   <published>2008-11-23T19:54:43Z</published>
   <updated>2008-11-23T19:58:31Z</updated>
   
   <summary>Preface Last weekend was pretty exciting. We were upgrading our customer&apos;s production 11.5.9 Oracle Applications instance to 10.2.0.3 and part of the effort was applying the ATG Family pack H.RUP6 patch. We were getting some really weird errors while doing...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<h2><font color="#0000ff">Preface</font></h2>  <p>Last weekend was pretty exciting. We were upgrading our customer's production 11.5.9 Oracle Applications instance to 10.2.0.3 and part of the effort was applying the ATG Family pack H.RUP6 patch. We were getting some really weird errors while doing the production run, something we had never seen before in the pre-production rounds (we did 6 of them to be exact). The possibility of rolling back seemed quite real.</p>  <p>Essentially, the AD.I.6 patchset <em>failed</em> while running autoconfig implicitly (the patch completed, but autoconfig was failing). Interestingly, Autoconfig was running fine on the admin/concurrent tier, <em>but not working on the web/forms tier</em>. Just to add to the details, the APPL_TOPs for the middle tiers (shared across multiple tiers) and Admin/concurrent tier were different. </p>  <p>This article talks about how we came over this issue. It is hoped it will help someone else in the future too. </p>  <h2><font color="#0000ff">A Race against time..</font></h2>  <p>It was a perplexing situation. We were budgeted/negotiated 36 hrs for the entire downtime (Sun JRE Vista Patching, HRMS family pack K3 and 10g upgrade), and time was slipping by. We couldn't afford to lose more time.</p>  <h2><font color="#0000ff">Truncated Class File?</font></h2>  <p>The error we were getting on the web/forms tier was as follows:</p>  <p><font face="Courier New" size="2">middle_tier_1:web_prod&gt; ./adautocfg.sh     <br />Enter the APPS user password:      <br />The log file for this session is located at:      <br />/ORACLE/apps/prod/admin/prod_middle_tier_1/log/11151046/adconfig.log </font></p>  <p><font face="Courier New" size="2">AutoConfig is configuring the Applications environment... </font></p>  <p><font face="Courier New" size="2">AutoConfig will consider the custom templates if present.     <br />Using APPL_TOP location : /ORACLE/apps/prod      <br />Classpath : /usr/java/j2sdk1.4.2_07/jre/lib/rt.jar:/usr/java/j2sdk1.4.2_07/lib/dt.jar:/usr/java/j2sdk1.4.2_07/lib/tools.jar:/ORACLE/apps/prod/common/java/appsborg2.zip:/ORA      <br />CLE/apps/prod/common/java </font></p>  <p><font face="Courier New" size="2">Exception in thread &quot;main&quot; java.lang.ClassFormatError: oracle/apps/ad/autoconfig/InstantiateFile     <br />(Truncated class file)      <br />at java.lang.ClassLoader.defineClass0(Native Method)      <br />at java.lang.ClassLoader.defineClass(ClassLoader.java:539)      <br />at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)      <br />at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)      <br />at java.net.URLClassLoader.access$100(URLClassLoader.java:55)      <br />at java.net.URLClassLoader$1.run(URLClassLoader.java:194)      <br />at java.security.AccessController.doPrivileged(Native Method)      <br />at java.net.URLClassLoader.findClass(URLClassLoader.java:187)      <br />at java.lang.ClassLoader.loadClass(ClassLoader.java:289)      <br />at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)      <br />at java.lang.ClassLoader.loadClass(ClassLoader.java:235)      <br />at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)      <br />at oracle.apps.ad.tools.configuration.Customizer.getProdTopDrivers(Customizer.java:380)      <br />at oracle.apps.ad.tools.configuration.Customizer.getAllDrivers(Customizer.java:358)      <br />at oracle.apps.ad.tools.configuration.VersionConflictListGenerator.getAllConflicts(VersionConflictListGenerator.java:170)      <br />at oracle.apps.ad.tools.configuration.VersionConflictListGenerator.main(VersionConflictListGenerator.java:426)      <br />ERROR: Version Conflicts utility failed.      <br />Terminate.</font></p>  <h2><font color="#0000ff">Ideas, anyone?</font></h2>  <p>All right, so a class file is truncated. The very first thing that we thought about was that maybe regenerating the jar files through adadmin utility would fix it. But, it did not help. </p>  <p>Another thought was that a <em>Version </em><em>Conflicts utility failed </em>message typically means something is point to incorrect code. The most common reason is usually the version of JDK. Someone pointed that the JDK that we were using was 1.4.2_07, whereas 1.3.1 was certified with 11.5.9. But since our AD level was pretty high, we didn't think this was relevant. The application was working fine with JDK 1.4.2_07 before.</p>  <p>Yet another person thought of removing the entry for Web tier from the TNS topology model itself. But, as can be seen here, even that idea did not work.</p>  <p><font face="Courier New" size="2">$ perl $AD_TOP/bin/adgentns.pl appspass=XXXXXX contextfile=$APPL_TOP/admin/prod_middle_tier_1.xml     <br />##########################################################################      <br />Generate Tns Names </font></p>  <p><font face="Courier New" size="2">##########################################################################     <br />Logfile: /ORACLE/apps/prod/admin/prod_middle_tier_1/log/11151856/NetServiceHandler.log      <br />Classpath :      <br />/usr/java/j2sdk1.4.2_07/jre/lib/rt.jar:/usr/java/j2sdk1.4.2_07/lib/dt.jar:/usr/java/j2sdk1.4.2_07/lib/tools.jar:/ORACLE/apps/prod/common/java/appsborg2.zip:/ORACLE/apps/prod/common/java </font></p>  <p><font face="Courier New" size="2">Updating s_tnsmode to 'generateTNS'     <br />UpdateContext exited with status: 0      <br />Exception in thread &quot;main&quot; java.lang.ClassFormatError: oracle/apps/ad/tools/configuration/NetServiceHandler (Truncated class file)      <br />at java.lang.ClassLoader.defineClass(ClassLoader.java:539)      <br />at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)      <br />at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)      <br />at java.net.URLClassLoader.access$100(URLClassLoader.java:55)      <br />at java.net.URLClassLoader$1.run(URLClassLoader.java:194)      <br />at java.security.AccessController.doPrivileged(Native Method)      <br />at java.net.URLClassLoader.findClass(URLClassLoader.java:187)      <br />at java.lang.ClassLoader.loadClass(ClassLoader.java:289)      <br />at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)      <br />at java.lang.ClassLoader.loadClass(ClassLoader.java:235      <br />at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)      <br />Error generating tnsnames.ora from the database, temperory tnsnames.ora will be generated using      <br />templates      <br />Instantiating Tools tnsnames.ora      <br />Exception in thread &quot;main&quot; java.lang.ClassFormatError: oracle/apps/ad/autoconfig/InstantiateFile      <br />(Truncated class file)      <br />at java.lang.ClassLoader.defineClass0(Native Method)      <br />at java.lang.ClassLoader.defineClass(ClassLoader.java:539)      <br />at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)      <br />at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)      <br />at java.net.URLClassLoader.access$100(URLClassLoader.java:55)      <br />at java.net.URLClassLoader$1.run(URLClassLoader.java:194)      <br />at java.security.AccessController.doPrivileged(Native Method)      <br />at java.net.URLClassLoader.findClass(URLClassLoader.java:187)      <br />at java.lang.ClassLoader.loadClass(ClassLoader.java:289)      <br />at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)      <br />at java.lang.ClassLoader.loadClass(ClassLoader.java:235)      <br />at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)      <br />Error in instantiating tools tnsnames.ora:      <br />Exception in thread &quot;main&quot; java.lang.ClassFormatError: oracle/apps/ad/autoconfig/InstantiateFile (Truncated class file)      <br />at java.lang.ClassLoader.defineClass0(Native Method)      <br />at java.lang.ClassLoader.defineClass(ClassLoader.java:539)      <br />at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)      <br />at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)      <br />at java.net.URLClassLoader.access$100(URLClassLoader.java:55)      <br />at java.net.URLClassLoader$1.run(URLClassLoader.java:194)      <br />at java.security.AccessController.doPrivileged(Native Method)      <br />at java.net.URLClassLoader.findClass(URLClassLoader.java:187)      <br />at java.lang.ClassLoader.loadClass(ClassLoader.java:289)      <br />at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)      <br />at java.lang.ClassLoader.loadClass(ClassLoader.java:235)      <br />at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)      <br />Error in instantiating web tnsnames.ora: </font></p>  <p><font face="Courier New" size="2">adgentns.pl exiting with status 256     <br />ERRORCODE = 256 ERRORCODE_END</font></p>  <p>Well, so far, no luck. Then, we did realize that the context file is also uploaded into the Database by OAM functionality (<em>remember the OAM screen through which you can edit the autoconfig tokens?</em>). We <strong>had</strong> thoroughly checked the context file of the middle tier, but <em><strong>maybe</strong></em> there was a corruption in the database copy ? We came across some metalink notes (e.g. <strong>Note:463895.1, </strong><strong>Note:352916.1)</strong>, which talked about purging all uploaded context files (kept in applsys.FND_OAM_CONTEXT_FILES). So potentially, we could take a backup of applsys.FND_OAM_CONTEXT_FILES table, delete the entry corresponding to middle_tier_1 and then autoconfig on middle_tier_1 to reload the data. So, this was a realistic possibility.</p>  <h2><font color="#0000ff">Wait a minute .. Can we take the shotgun approach?</font></h2>  <p>OK, so while we were thinking of all these options, the thought came to my mind that we had 5 middle tiers, so why don't we try to run autoconfig on one of the other middle tiers. Most surprisingly, Autoconfig ran fine on another middle tier!! </p>  <p>Hmph, all of them were sharing the same $JAVA_TOP, so what could make the other middle tiers behave differently? Maybe a difference in an autoconfig token or environment variable? But, even after comparing all the entries in XML file and environment variables, there was no perceptible difference. Strange, very strange.</p>  <p>This was a good validation point for us, as we could conclude that there was something wrong with middle_tier_1, but not with the others. So, we could simply continue patching with another middle tier and hope to not get similar issues in the future. middle_tier_1 could be taken out of the load balancer, dealt with later and when fixed, put back in the load balancer. In the interim, it sounded like a workable strategy, so we took it. This is what saved us from spinning our wheels on this issue.</p>  <h2><font color="#0000ff">So what <em>was</em> it, really?</font></h2>  <p>We continued patching and successfully migrated the production instance to 10g (Yippee!).</p>  <p>One thing did strike me though much later: the versions of the InstantiateFile.class were <em>different</em> in $JAVA_TOP and $AD_TOP when we were getting this error. For example, this was the situation when we were having this error:</p>  <p><font face="Courier New" size="2">middle_tier_1:web_prod&gt; adident Header $JAVA_TOP/oracle/apps/ad/autoconfig/InstantiateFile.class     <br />/ORACLE/apps/prod/common/java/oracle/apps/ad/autoconfig/InstantiateFile.class:      <br />$Header InstantiateFile.java <strong>115.212</strong> 2007/07/10 11:20:16 schagant ship $ </font></p>  <p><font face="Courier New" size="2">middle_tier_1:web_prod&gt; adident Header $AD_TOP/java/oracle/apps/ad/autoconfig/InstantiateFile.class     <br />/ORACLE/apps/prod/ad/11.5.0/java/oracle/apps/ad/autoconfig/InstantiateFile.class:      <br />$Header InstantiateFile.java <strong><font color="#ff0000">115.203</font></strong> 2006/11/01 08:05:36 subhroy ship $</font> </p>  <p>Later on, after the outage, when I checked the versions again, this is what I saw:</p>  <p><font face="Courier New" size="2">middle_tier_1:web_prod&gt; adident Header $JAVA_TOP/oracle/apps/ad/autoconfig/InstantiateFile.class     <br />/ORACLE/apps/prod/common/java/oracle/apps/ad/autoconfig/InstantiateFile.class:      <br />$Header InstantiateFile.java <strong>115.212</strong> 2007/07/10 11:20:16 schagant ship $</font></p> <font face="Courier New" size="2">middle_tier_1:web_prod&gt; adident Header $AD_TOP/java/oracle/apps/ad/autoconfig/InstantiateFile.class   <br />/ORACLE/apps/prod/ad/11.5.0/java/oracle/apps/ad/autoconfig/InstantiateFile.class:    <br />$Header InstantiateFile.java <strong>115.212</strong> 2006/11/01 08:05:36 subhroy ship $</font>   <p>I am now forced to think that <em>maybe</em> this was a contributor to the issue at hand. If we had known that this .class file had multiple copies across the APPL_TOP and JAVA_TOP, we could have simply run adadmin with the <em>Maintain files</em>-&gt;<em>copy files to destination </em>option to sync up the duplicate copies. But then, why didn't the other middle tiers complain? The APPL_TOP and JAVA_TOP was shared amongst all of them. So maybe, it wasn't the real problem.</p>  <p>Later on, when we rebooted middle_tier_1 box (RHAS3 32bit linux), autoconfig ran successfully! This thought was based on <em>Note 556107.1 Java.Lang.Classformaterror: oracle/apps/ibe/store/StoreCurrency (Truncated class file). </em>If it was really this which resolved the issue, it must have been some corrupted shared module in memory, which got cleared off? </p>  <p>Come to think of it, when nothing seems to work on Windows, we do reboot it.</p>  <h2><font color="#0000ff">In Retrospect..</font></h2>  <p>So, I don't have all the answers, but a little lateral thinking saved us and enabled us to proceed. Sometimes, the shotgun approach does work. It pays to have multiple middle tiers in the architecture, so that there is no single point of failure. Also, sometimes, rebooting can resolve some really weird errors.</p>  <p>I'm reminded of a phrase in Hindi -- अकल बड़ी या भैंस ? (loose translation: <em>sometimes brute force is superior to elaborate reasoning</em>). You can be the judge.</p>]]>
      
   </content>
</entry>
<entry>
   <title>The CIO asked: How long has my production database been down?</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/06/the_cio_asked_how_long_has_my.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.2102</id>
   
   <published>2008-06-07T13:02:50Z</published>
   <updated>2008-06-24T06:44:45Z</updated>
   
   <summary>And I had no answer for him. I couldn&apos;t blame him. CIOs want to know this kind of information. Better still, he would have liked a pie chart depicting it like this:I wish..Well, for once, it would have been nice...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<p><br><font size="7">A</font>nd I had no answer for him. I couldn't blame him. CIOs want to know this kind of information. Better still, he would have liked a pie chart depicting it like this:<br><br><img src="http://blogs.oracle.com/gauravVerma/images/downtimepiechart.png" height="270" width="330" border="0" alt="downtimepiechart.png: "><br><h3>I wish..</h3>Well, for once, it would have been nice if Oracle 9i or 10g kept the historical startup or shutdown information in the v$ or some dba_* tables. A simple query off the table would have got me the answer.<br><br>Anyways, it set me thinking. There are always other ways to get the same information. Statspack or AWR was one possibility, but I was not sure if it really gathers the details information about when the instance was shutdown or started up (historically) -- they sure are aware if there was an instance restart between two snaps.<br><h3>An Aha moment..</h3>But wait, the database alert log has information about each startup and shutdown! So if we could mine the alert log for the right regular expressions, and then find the time difference between time stamps, it could be done.<br><br>This method would not give you the overall downtime for the production instance, including the downtime for the middle tiers or Apache web server, but the same idea could probably be extended for the other services, but in this article, the scope is just the database. There is an auxiliary script (get_epoch.sh) supplied here that would be useful in this quest.<br><br><h3>Auxiliary script: get_epoch.sh</h3><font size="2"><font size="3"><font size="2"><span style="font-family: Arial;">Also available for </span><a style="font-family: Arial;" href="http://blogs.oracle.com/gauravVerma/gems/getepoch.sh">download here</a><span style="font-family: Arial;">.</span></font><br></font><br style="font-family: Courier;"><span style="font-family: Courier;">#!/usr/bin/perl</span><br style="font-family: Courier;"><span style="font-family: Courier;">#</span><br style="font-family: Courier;"><span style="font-family: Courier;"># The format of input date is:&nbsp; Thu Jun&nbsp; 5 21:15:48 2008</span><br style="font-family: Courier;"><span style="font-family: Courier;">#</span><br style="font-family: Courier;"><span style="font-family: Courier;"># NOTE: The format of `date` command is:&nbsp; Thu Jun&nbsp; 5 21:15:48 EDT 2008<br># -- it has the timezone in the output as well</span><br style="font-family: Courier;"><span style="font-family: Courier;"># BUT this script does not assume that since the timestamps in<br># alert log dont have the timezone in it</span><br style="font-family: Courier;"><span style="font-family: Courier;">#</span><br style="font-family: Courier;"><span style="font-family: Courier;"># This script heavily uses this function to convert a UTC timestamp<br># into seconds after 1 jan 1970:</span><br style="font-family: Courier;"><span style="font-family: Courier;"># timelocal($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst);</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">use Time::Local;</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">my $wday = $ARGV[0];</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">my $month = $ARGV[1];</span><br style="font-family: Courier;"><span style="font-family: Courier;"># convert the month shortname into 0-11 number</span><br style="font-family: Courier;"><span style="font-family: Courier;">if ( $month eq "Jan" ) { $mon = 0 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "Feb" ) { $mon = 1 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "Mar" ) { $mon = 2 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "Apr" ) { $mon = 3 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "May" ) { $mon = 4 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "Jun" ) { $mon = 5 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "Jul" ) { $mon = 6 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "Aug" ) { $mon = 7 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "Sep" ) { $mon = 8 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "Oct" ) { $mon = 9 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "Nov" ) { $mon = 10 }</span><br style="font-family: Courier;"><span style="font-family: Courier;">elsif ( $month eq "Dec" ) { $mon = 11 };</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">my $mday = $ARGV[2];</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;"># initialize time varialble and split hours (24 hr format), minutes, seconds into an array</span><br style="font-family: Courier;"><span style="font-family: Courier;">my $time = $ARGV[3];</span><br style="font-family: Courier;"><span style="font-family: Courier;">@time = split /:/, $time;</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;"># if the timezone is left out of the input, the position of year becomes 5th in ARGV</span><br style="font-family: Courier;"><span style="font-family: Courier;">my $year = $ARGV[4];</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">#######################################################################################</span><br style="font-family: Courier;"><span style="font-family: Courier;"># I found that by excluding $wday, the seconds results (EPOCH) is more<br># accurate, so $wday</span><span style="font-family: Courier;"> parameter has been omitted from the call to<br># timelocal() function.</span><br style="font-family: Courier;"><span style="font-family: Courier;"></span><span style="font-family: Courier;">#######################################################################################</span><br style="font-family: Courier;"><span style="font-family: Courier;">$epoch= timelocal($time[2], $time[1], $time[0], $mday, $mon, $year);</span><br style="font-family: Courier;"><span style="font-family: Courier;">print "$epoch\n";</span></font><br><h3>The main script..</h3>Due to formatting issues, the main script is available for <a href="http://blogs.oracle.com/gauravVerma/gems/calculatedowntimev2.sh">download here</a>.<br><h3>Sample Usage and output..</h3><font size="2"><span style="font-family: Courier;"><span style="font-family: Arial;">I realized that it would probably make more sense to have an optional cutoff date to calculate the downtime from, so that was added to the version 2 of the script. The version 1 which calculates the downtime from the first database startup time is <a href="http://blogs.oracle.com/gauravVerma/gems/calculatedowntime.sh">uploaded here.</a><br><br></span><span style="font-weight: bold;">sandbox:sandbox&gt; ./calculate_downtime.sh &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  </span><br style="font-weight: bold;">Correct Usage: calculate_downtime.sh alertlogfilepath [cutoff_date in format Sat Jun 7 08:49:34 2008] <br></span></font><font size="2"><span style="font-family: Courier;"></span><span style="font-family: Courier;"></span><span style="font-family: Courier;"></span><span style="font-family: Courier;"></span><span style="font-family: Courier;"></span><span style="font-family: Courier;"></span><br></font><font style="font-weight: bold;" size="2"><span style="font-family: Courier;">sandbox:sandbox&gt; ./calculate_downtime.sh </span></font><font size="2"><span style="font-family: Courier; font-weight: bold;">$DATA_DIR/admin/bdump/alert*.log Fri Mar 28 15:20:59 2008</span><br><br><span style="font-family: Courier;">Cutoff date is : Fri Mar 28 15:20:59 2008<br><br>Shutdown times:<br><br>Timestamp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp; epoch (seconds)<br><br>Wed Jan 9 17:53:08 2008 - 1199919188<br>Wed Jan 16 12:05:09 2008 - 1200503109<br>Fri Jan 18 11:19:42 2008 - 1200673182<br>Thu Jan 24 17:34:15 2008 - 1201214055<br>Fri Feb 15 09:00:44 2008 - 1203084044<br>Wed Feb 20 16:50:14 2008 - 1203544214<br>Wed Mar 12 12:43:26 2008 - 1205340206<br>Fri Mar 28 15:21:59 2008 - 1206732119<br>Thu Apr 3 11:03:52 2008 - 1207235032<br>Thu Apr 3 11:10:20 2008 - 1207235420<br>Thu Apr 3 11:15:44 2008 - 1207235744<br>Thu Apr 3 11:22:38 2008 - 1207236158<br>Thu Apr 3 11:27:36 2008 - 1207236456<br>Thu Apr 3 11:34:35 2008 - 1207236875<br>Thu Apr 3 11:41:36 2008 - 1207237296<br>Mon May 12 14:17:13 2008 - 1210616233<br>Thu Jun 5 10:36:58 2008 - 1212676618<br>shutdown_counter=17<br><br>Startup times:<br><br>Timestamp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp; epoch (seconds)<br><br>Wed Jan 9 17:50:42 2008 -- 1199919042<br>Thu Jan 10 09:43:18 2008 -- 1199976198<br>Thu Jan 17 12:00:03 2008 -- 1200589203<br>Fri Jan 18 11:26:13 2008 -- 1200673573<br>Wed Jan 30 12:19:21 2008 -- 1201713561<br>Tue Feb 19 22:57:38 2008 -- 1203479858<br>Wed Mar 12 12:39:03 2008 -- 1205339943<br>Mon Mar 24 13:44:20 2008 -- 1206380660<br>Thu Apr 3 11:00:33 2008 -- 1207234833<br>Thu Apr 3 11:07:12 2008 -- 1207235232<br>Thu Apr 3 11:14:01 2008 -- 1207235641<br>Thu Apr 3 11:20:54 2008 -- 1207236054<br>Thu Apr 3 11:25:25 2008 -- 1207236325<br>Thu Apr 3 11:31:53 2008 -- 1207236713<br>Thu Apr 3 11:40:18 2008 -- 1207237218<br>Tue Apr 29 16:50:49 2008 -- 1209502249<br>Mon Jun 2 14:20:38 2008 -- 1212430838<br>Thu Jun 5 10:38:39 2008 -- 1212676719<br>startup_counter=18<br>&nbsp;As per the alert log, The instance is currently up<br><br><br>Here are the downtime windows ...<br><br>Wed Jan 9 17:50:42 2008 -- Wed Jan 9 17:53:08 2008<br>Thu Jan 10 09:43:18 2008 -- Wed Jan 16 12:05:09 2008<br>Thu Jan 17 12:00:03 2008 -- Fri Jan 18 11:19:42 2008<br>Fri Jan 18 11:26:13 2008 -- Thu Jan 24 17:34:15 2008<br>Wed Jan 30 12:19:21 2008 -- Fri Feb 15 09:00:44 2008<br>Tue Feb 19 22:57:38 2008 -- Wed Feb 20 16:50:14 2008<br>Wed Mar 12 12:39:03 2008 -- Wed Mar 12 12:43:26 2008<br>Mon Mar 24 13:44:20 2008 -- Fri Mar 28 15:21:59 2008<br>Thu Apr 3 11:00:33 2008 -- Thu Apr 3 11:03:52 2008<br>Thu Apr 3 11:07:12 2008 -- Thu Apr 3 11:10:20 2008<br>Thu Apr 3 11:14:01 2008 -- Thu Apr 3 11:15:44 2008<br>Thu Apr 3 11:20:54 2008 -- Thu Apr 3 11:22:38 2008<br>Thu Apr 3 11:25:25 2008 -- Thu Apr 3 11:27:36 2008<br>Thu Apr 3 11:31:53 2008 -- Thu Apr 3 11:34:35 2008<br>Thu Apr 3 11:40:18 2008 -- Thu Apr 3 11:41:36 2008<br>Tue Apr 29 16:50:49 2008 -- Mon May 12 14:17:13 2008<br>Mon Jun 2 14:20:38 2008 -- Thu Jun 5 10:36:58 2008<br>Thu Jun 5 10:38:39 2008 --<br><br><br>Downtime 1 : Wed Jan&nbsp; 9 17:53:08 2008 (1199919188)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Thu Jan 10 09:43:18 2008 (1199976198) = 57010 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &amp;lt; than shutdown time Wed Jan&nbsp; 9 17:53:08 2008 - so not accruing<br>Running Cumulative downtime = 0 seconds<br><br>Downtime 2 : Wed Jan 16 12:05:09 2008 (1200503109)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Thu Jan 17 12:00:03 2008 (1200589203) = 86094 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &amp;lt; than shutdown time Wed Jan 16 12:05:09 2008 - so not accruing<br>Running Cumulative downtime = 0 seconds<br><br>Downtime 3 : Fri Jan 18 11:19:42 2008 (1200673182)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Fri Jan 18 11:26:13 2008 (1200673573) = 391 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &amp;lt; than shutdown time Fri Jan 18 11:19:42 2008 - so not accruing<br>Running Cumulative downtime = 0 seconds<br><br>Downtime 4 : Thu Jan 24 17:34:15 2008 (1201214055)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Wed Jan 30 12:19:21 2008 (1201713561) = 499506 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &amp;lt; than shutdown time Thu Jan 24 17:34:15 2008 - so not accruing<br>Running Cumulative downtime = 0 seconds<br><br>Downtime 5 : Fri Feb 15 09:00:44 2008 (1203084044)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Tue Feb 19 22:57:38 2008 (1203479858) = 395814 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &amp;lt; than shutdown time Fri Feb 15 09:00:44 2008 - so not accruing<br>Running Cumulative downtime = 0 seconds<br><br>Downtime 6 : Wed Feb 20 16:50:14 2008 (1203544214)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Wed Mar 12 12:39:03 2008 (1205339943) = 1795729 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &amp;lt; than shutdown time Wed Feb 20 16:50:14 2008 - so not accruing<br>Running Cumulative downtime = 0 seconds<br><br>Downtime 7 : Wed Mar 12 12:43:26 2008 (1205340206)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Mon Mar 24 13:44:20 2008 (1206380660) = 1040454 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &amp;lt; than shutdown time Wed Mar 12 12:43:26 2008 - so not accruing<br>Running Cumulative downtime = 0 seconds<br><br>Downtime 8 : Fri Mar 28 15:21:59 2008 (1206732119)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Thu Apr&nbsp; 3 11:00:33 2008 (1207234833) = 502714 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &gt; shutdown time Fri Mar 28 15:21:59 2008 - greater than cutoff, so accruing<br>Running Cumulative downtime = 502714 seconds<br><br>Downtime 9 : Thu Apr&nbsp; 3 11:03:52 2008 (1207235032)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Thu Apr&nbsp; 3 11:07:12 2008 (1207235232) = 200 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &gt; shutdown time Thu Apr&nbsp; 3 11:03:52 2008 - greater than cutoff, so accruing<br>Running Cumulative downtime = 502914 seconds<br><br>Downtime 10 : Thu Apr&nbsp; 3 11:10:20 2008 (1207235420)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Thu Apr&nbsp; 3 11:14:01 2008 (1207235641) = 221 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &gt; shutdown time Thu Apr&nbsp; 3 11:10:20 2008 - greater than cutoff, so accruing<br>Running Cumulative downtime = 503135 seconds<br><br>Downtime 11 : Thu Apr&nbsp; 3 11:15:44 2008 (1207235744)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Thu Apr&nbsp; 3 11:20:54 2008 (1207236054) = 310 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &gt; shutdown time Thu Apr&nbsp; 3 11:15:44 2008 - greater than cutoff, so accruing<br>Running Cumulative downtime = 503445 seconds<br><br>Downtime 12 : Thu Apr&nbsp; 3 11:22:38 2008 (1207236158)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Thu Apr&nbsp; 3 11:25:25 2008 (1207236325) = 167 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &gt; shutdown time Thu Apr&nbsp; 3 11:22:38 2008 - greater than cutoff, so accruing<br>Running Cumulative downtime = 503612 seconds<br><br>Downtime 13 : Thu Apr&nbsp; 3 11:27:36 2008 (1207236456)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Thu Apr&nbsp; 3 11:31:53 2008 (1207236713) = 257 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &gt; shutdown time Thu Apr&nbsp; 3 11:27:36 2008 - greater than cutoff, so accruing<br>Running Cumulative downtime = 503869 seconds<br><br>Downtime 14 : Thu Apr&nbsp; 3 11:34:35 2008 (1207236875)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Thu Apr&nbsp; 3 11:40:18 2008 (1207237218) = 343 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &gt; shutdown time Thu Apr&nbsp; 3 11:34:35 2008 - greater than cutoff, so accruing<br>Running Cumulative downtime = 504212 seconds<br><br>Downtime 15 : Thu Apr&nbsp; 3 11:41:36 2008 (1207237296)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Tue Apr 29 16:50:49 2008 (1209502249) = 2264953 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &gt; shutdown time Thu Apr&nbsp; 3 11:41:36 2008 - greater than cutoff, so accruing<br>Running Cumulative downtime = 2769165 seconds<br><br>Downtime 16 : Mon May 12 14:17:13 2008 (1210616233)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Mon Jun&nbsp; 2 14:20:38 2008 (1212430838) = 1814605 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &gt; shutdown time Mon May 12 14:17:13 2008 - greater than cutoff, so accruing<br>Running Cumulative downtime = 4583770 seconds<br><br>Downtime 17 : Thu Jun&nbsp; 5 10:36:58 2008 (1212676618)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; Thu Jun&nbsp; 5 10:38:39 2008 (1212676719) = 101 seconds<br>the cutoff date Fri Mar 28 15:20:59 2008 is &gt; shutdown time Thu Jun&nbsp; 5 10:36:58 2008 - greater than cutoff, so accruing<br>Running Cumulative downtime = 4583871 seconds<br><br><br>Calculating lifetime of instance as per criteria specified..<br><br>Starting time being used = Fri Mar 28 15:20:59 2008 -- 1206732059<br>Ending time epoch = Sat Jun 7 11:49:49 2008 -- 1212853789<br>Total lifetime in seconds = 6121730<br><br><span style="font-weight: bold;">&nbsp;&nbsp; Beginning Fri Mar 28 15:20:59 2008, The instance was down 74 % of the time</span><br><br></span><br></font><h3 style="font-family: Arial;"><font size="3">Application of this data..</font></h3><font size="3"><font style="font-family: Arial;" size="2">Now, this data could be put in some kind of dashboard for CIO meetings. This would give them an approximate idea of how long do their databases and (the dependent middle tier or admin tier services) remain down due to maintenance. Sure, this method cannot distinguish between unplanned and planned maintenance, but its probably a good start.<br><br></font><br></font></p>]]>
      
   </content>
</entry>
<entry>
   <title>Yet another External XML parse error: for BATCH CLOSE processing of IBYSCHEDULER module .. this time</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/06/yet_another_external_xml_parse.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.2103</id>
   
   <published>2008-06-07T11:33:41Z</published>
   <updated>2008-06-24T06:44:46Z</updated>
   
   <summary>While I have written a previous article on XML parsing error for Online iPayment transactions in Oracle Applications 11i, For the want of XML parsing, iPayment was lost; for the want of not being able to take payment, business was...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
         <category term="11ioracleapps" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<p><font size="7"><br>W</font>hile I have written a previous article on XML parsing error for Online iPayment transactions in Oracle Applications 11i, <a href="http://blogs.oracle.com/gverma/2007/06/for_the_want_of_xml_parsing_ip.html">For the want of XML parsing, iPayment was lost; for the want of not being able to take payment, business was lost., </a>the customer had always suffered another issue with the batch close processing carried out by the IBYSCHEDULER module: iPayment Scheduler program. <br><br>Unknown to me, there was another person from the customer's production support who was working diligently with Oracle Support and development to have this addressed. This is the story of Patrick Baker, <img src="http://blogs.oracle.com/gauravVerma/images/patbakerheadshot.png" height="133" width="143" border="0" alt="pat baker headshot.PNG: ">, who gets the credit for having this resolved, over a period of one long year. Interestingly, the solution was to use another copy of the xmlparserv2 archive file on the concurrent manager tier.<br><br>The version of the Oracle Applications was 11.5.10.2 (as per FND &amp; ATG) and 11.5.9 for some other products.<br><h3>The problem and error message</h3>Almost every night, the customer would get this error in the BATCH CLOSE processing program (the details of the servers and domain name have been blurred out to protect the data integrity of the customer):<br><br><font size="2"><span style="font-family: Courier;">+---------------------------------------------------------------------------+</span><br style="font-family: Courier;"><span style="font-family: Courier;">iPayment: Version : 11.5.0 - Development</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">IBYSCHEDULER module: iPayment Scheduler</span><br style="font-family: Courier;"><span style="font-family: Courier;">+---------------------------------------------------------------------------+</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">Current system time is 28-MAR-2007 00:16:23</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">+---------------------------------------------------------------------------+</span><br style="font-family: Courier;"><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">Processing BATCH CLOSE operations ..</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">empty batch for account (payee id=087295,account id=XXXXXXX Corp:087295:944599:XXXXXX:944599:CORPORAT,batch id=3343)</span><br style="font-family: Courier;"><span style="font-family: Courier;">exception occured for (payee id=087295,account id=XXXXXXXX Corp:087295:944599:XXXXXXX:944599:CORPORAT,batch id=3344) External XML parse error.&nbsp; Document passed to iPayment by external application http://ipayment.xxxxxxxx.com:8000/servlet/oramipp_ptk generated XML parse error Start of root element expected. .</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">The Stack Trace is -</span><br style="font-family: Courier;"><span style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;">oracle.apps.iby.exception.PSException: External XML parse error.&nbsp; Document passed to iPayment by external application http://payment.xxxxxxxx.com:8000/servlet/oramipp_ptk generated XML parse error Start of root element expected. .</span><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><span style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;">&nbsp;&nbsp;&nbsp; at oracle.apps.iby.util.bpsUtil.raiseException(bpsUtil.java:159)</span><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><span style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;">&nbsp;&nbsp;&nbsp; at oracle.apps.iby.net.XMLMessenger.deliverDoc(XMLMessenger.java:138)</span><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><span style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;">&nbsp;&nbsp;&nbsp; at oracle.apps.iby.payment.proc.BatchCCPayment.closeBatch(BatchCCPayment.java:1147)</span><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><span style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;">&nbsp;&nbsp;&nbsp; at oracle.apps.iby.scheduler.SchedBatchClose.schedPmt(SchedBatchClose.java:124)</span><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><span style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;">&nbsp;&nbsp;&nbsp; at oracle.apps.iby.scheduler.Scheduler.doProcess(Scheduler.java:260)</span><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><span style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;">&nbsp;&nbsp;&nbsp; at oracle.apps.iby.scheduler.Scheduler.init(Scheduler.java:297)</span><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><span style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;">&nbsp;&nbsp;&nbsp; at oracle.apps.iby.scheduler.SchedInitiator.runProgram(SchedInitiator.java:200)</span><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><span style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;">&nbsp;&nbsp;&nbsp; at oracle.apps.fnd.cp.request.Run.main(Run.java:161)</span><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><br style="font-family: Courier; color: rgb(255, 0, 0); font-weight: bold;"><span style="font-family: Courier;">Finished processing BATCH CLOSE</span><br style="font-family: Courier;"><span style="font-family: Courier;">+---------------------------------------------------------------------------+</span><br style="font-family: Courier;"><span style="font-family: Courier;">Start of log messages from FND_FILE</span><br style="font-family: Courier;"><span style="font-family: Courier;">+---------------------------------------------------------------------------+</span><br style="font-family: Courier;"><span style="font-family: Courier;">+---------------------------------------------------------------------------+</span><br style="font-family: Courier;"><span style="font-family: Courier;">End of log messages from FND_FILE</span><br style="font-family: Courier;"><span style="font-family: Courier;">+---------------------------------------------------------------------------+</span><br style="font-family: Courier;"><span style="font-family: Courier;">Successfully resubmitted concurrent program IBYSCHEDULER with request ID 32185967 to start at 29-MAR-2007 00:15:56 (ROUTINE=AFPSRS)</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">+---------------------------------------------------------------------------+</span><br style="font-family: Courier;"><span style="font-family: Courier;">Executing request completion options...</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">Finished executing request completion options.</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">+---------------------------------------------------------------------------+</span><br style="font-family: Courier;"><span style="font-family: Courier;">Concurrent request completed</span><br style="font-family: Courier;"><span style="font-family: Courier;">Current system time is 28-MAR-2007 00:22:09</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">+---------------------------------------------------------------------------+</span><br style="font-family: Courier;"></font><br><h3>Lets think a bit..</h3>OK, lets try to make some sense out of it. Since this error was being received in the output of a concurrent manager, obviously, the xmlparser class file was on the concurrent manager tier and NOT on the iPayment tier (which was used by the online transactions). <br><h3>A different solution..</h3><font size="2"><span style="font-family: Arial;">On the dedicated iPayment tier, the same error message was resolved by using </span><span style="font-weight: bold; font-family: Arial;">$JAVA_TOP/xmlparserv2.zip</span><span style="font-family: Arial;"> file in the </span><span style="font-weight: bold; font-family: Arial;">$IAS_ORACLE_HOME/Apache/Jserv/etc/jserv.properties</span><span style="font-family: Arial;">, but in this case, the solution was to the use </span><span style="font-weight: bold; font-family: Arial;">$IAS_ORACLE_HOME/xdk/lib/xmlparserv2.jar</span><span style="font-family: Arial;"> instead in different files:</span></font><br><pre style="font-family: Times New Roman;"><font size="3"><font size="2"><span style="font-family: Arial;">To implement the solution, open the file </span><span style="font-weight: bold; font-family: Arial;">$APPL_TOP/admin/adovars.env </span><span style="font-family: Arial;">on the concurrent manager tier, </span><br style="font-family: Arial;"><span style="font-family: Arial;">and in the values of CLASSPATH  and AF_CLASSPATH variable, add </span><span style="font-weight: bold; font-family: Arial;">$IAS_ORACLE_HOME/xdk/lib/xmlparserv2.jar: </span><br style="font-family: Arial;"><span style="font-family: Arial;">before </span><span style="font-weight: bold; font-family: Arial;">$JAVA_TOP/appsborg2.zip: </span></font><br><br><span style="font-style: italic;">Note: this must be done in both: CLASSPATH and AF_CLASSPATH</span></font><br><br><font style="font-family: Arial;" size="2">To prevent the entries in <span style="font-weight: bold;">$APPL_TOP/admin/adovars.env </span> to be over-written, you can either add this at the "end of the file" <br>in the # BEGIN Customizations and # END Customizations tags or you can create your own <br>custom autoconfig template file for adovars.env with the changes. <br></font><br>E.g.<br><br><font size="2"><span style="font-family: Courier;"># Begin customizations</span><span style="font-family: Courier;"></span><br style="font-family: Courier;"><span style="font-family: Courier;">....</span><br style="font-family: Courier;"><span style="font-family: Courier;">CLASSPATH=......:$IAS_ORACLE_HOME/xdk/lib/xmlparserv2.jar:$JAVA_TOP/appsborg2.zip:....</span><br style="font-family: Courier;"><span style="font-family: Courier;">....</span><br style="font-family: Courier;"><span style="font-family: Courier;">....</span><br style="font-family: Courier;"><span style="font-family: Courier;">AF_CLASSPATH=......:$IAS_ORACLE_HOME/xdk/lib/xmlparserv2.jar:</span></font><font size="2"><span style="font-family: Courier;">$JAVA_TOP</span></font><font size="2"><span style="font-family: Courier;">/appsborg2.zip:....</span><br style="font-family: Courier;"></font><font><font size="2"><span style="font-family: Courier;">....</span></font></font><br style="font-family: Courier;"><font size="2"><span style="font-family: Courier;"># End customizations</span></font><font size="3"></font></pre><span style="font-style: italic;">Note: Make sure the content for CLASSPATH and AF_CLASSPATH is included in 1 line if you do a cut and paste. The entire value SHOULD BE 1 SINGLE LINE, otherwise the value will get corrupted.</span><br style="font-style: italic;"><br>After this, the concurrent managers do need to be bounced and then the IBYSCHEDULER module: iPayment Scheduler program gives expected results.<br><br><h3>A new learning..</h3>From this experience, It now seems that it is possible to make <span style="font-family: Courier;"></span><font size="2"><span style="font-family: Courier;">$IAS_ORACLE_HOME/xdk/lib/xmlparserv2.jar</span></font>&nbsp;<br />
work for the parsing needs on the dedicated iPayment tier for servicing online transactions too. <br><br>For that, you need to put the following entry in <span style="font-weight: bold;">$IAS_ORACLE_HOME/Apache/Jserv/etc/jserv.properties</span>:<br><pre><font style="font-family: Arial;" size="3">Put this entry in the # BEGIN customizations and # END customizations (should be done at the END of the file):</font><font style="font-family: Arial;" size="3"><br></font><br># BEGIN customizations<br>...<br>...<br>wrapper.classpath=/ORACLE/qa/9iAS/xdk/lib/xmlparserv2.jar<br>...<br>...<br># END customizations</pre><br></p>]]>
      
   </content>
</entry>
<entry>
   <title>Vrroom! Go (Con)Figure : Speeding up the model preloading in configurator...</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/06/vrroom_go_configure_speeding_u.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.2104</id>
   
   <published>2008-06-05T20:39:47Z</published>
   <updated>2008-07-01T18:46:38Z</updated>
   
   <summary>What got triggered as a human mistake in a cloned instance at a customer environment, caused a new discovery by the onsite senior DBA, Brian Fane Someone from the customer released a sysadmin custom job that caused the configurator servlet...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
         <category term="11ioracleapps" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Performance" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<p><font size="7">W</font>hat got triggered as a human mistake in a cloned instance at a customer environment, caused a new discovery by the onsite senior DBA, Brian Fane <img height="85" alt="smaller bfane.JPG: " src="http://blogs.oracle.com/gauravVerma/images/smallerbfane.jpg" width="88" border="0" />   <br />  <br />Someone from the customer released a sysadmin custom job that caused the configurator servlet JVMs in Production to get bounced! This was an unexpected situation and while the users sat twiddling their thumbs while the configurator models were pre-loading, Brian started digging into the current executing sql of the DB sessions doing the preloading.   <br />  <br />To give an idea of the patch levels, the CZ patchset installed was&#160; 11i.CZ.I(2690432) and the FND &amp; ATG patchsets were 11i.FND.H(3262159) and 11i.ATG_PF.H.5(5473858) respectively.   <br />  <br />He happened to note that the maximum time seemed to be taken by the following sql:   <br /><font size="2">   <br style="font-family: courier" /><span style="font-family: courier">SELECT&#160; cz_lce_load_specs.lce_header_id,</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160; cz_lce_texts.lce_text,</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160; cz_lce_headers.component_id</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160; FROM apps.cz_lce_load_specs,</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; apps.cz_lce_headers,</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; apps.cz_lce_texts</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160; WHERE cz_lce_load_specs.attachment_comp_id = :1</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160; AND cz_lce_load_specs.net_type = :2</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160; AND cz_lce_texts.lce_header_id = cz_lce_load_specs.lce_header_id</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160; AND cz_lce_texts.lce_header_id = cz_lce_headers.lce_header_id</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160; AND cz_lce_headers.deleted_flag = :3</span>     <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160; AND cz_lce_load_specs.deleted_flag = :4</span>     <br style="font-family: courier" /><span style="font-family: courier">ORDER BY cz_lce_texts.seq_nbr;      <br />      <br /><span style="font-family: arial">When he ran it a BCV copy of the PROD (which was a replica of PROD as of that morning - daily process), it did ~37,400 gets/execution, and almost all of them were physical reads. Most of this comes from a full table scan on CZ_LCE_LOAD_SPECS, which right around 37,150 blocks. Query time was between 1 and 2 seconds (TOAD doesn't get any more precise when dealing with values &gt; 1 second).        <br /></span></span></font>  <h3><strong>His Solution...</strong></h3>  <h3><font size="2"><span style="font-family: courier"><span style="font-family: arial"></span></span></font></h3> <font size="2"><span style="font-family: courier"><span style="font-family: arial">So well, he thought, why not add an index to <span style="font-weight: bold">cz_lce_load_specs</span> that may speed up the query:         <br />        <br style="font-family: courier" /><span style="font-family: courier">CREATE INDEX cz.blf_test ON cz.cz_lce_load_specs</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160; (attachment_comp_id, net_type, deleted_flag)</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160; COMPUTE STATISTICS;</span>         <br />        <br />This reduced the gets from 37,400 to 20. Execution dropped to ~10 ms.         <br />        <br /></span></span></font>  <h3><font size="3"><span style="font-family: courier"><span style="font-family: arial">Some more data points...</span></span></font></h3> <font size="2"><span style="font-family: courier"><span style="font-family: arial">Let's try some testing in DEV and see how this index performs in the wild :)        <br />        <br style="font-family: courier" /><span style="font-family: courier">DECLARE</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160; CURSOR c_driver IS</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160; SELECT attachment_comp_id, net_type </span>        <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160; FROM apps.cz_lce_load_specs</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160; WHERE deleted_flag = '0'</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND ROWNUM &amp;lt; 100;</span>         <br style="font-family: courier" />        <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160; counter NUMBER := 0;</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160; v4 varchar2(10) := '0';</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160; v1 number;</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160; v2 varchar2(2000);</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160; v3 number;</span>         <br style="font-family: courier" /><span style="font-family: courier">BEGIN</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160; FOR r_driver IN c_driver LOOP</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160; BEGIN</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SELECT&#160;&#160; cz_lce_load_specs.lce_header_id,</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; cz_lce_texts.lce_text,</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; cz_lce_headers.component_id</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; INTO v1, v2, v3</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FROM apps.cz_lce_load_specs,</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; apps.cz_lce_headers,</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; apps.cz_lce_texts</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WHERE cz_lce_load_specs.attachment_comp_id = r_driver.attachment_comp_id</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND cz_lce_load_specs.net_type = r_driver.net_type</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND cz_lce_texts.lce_header_id = cz_lce_load_specs.lce_header_id</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND cz_lce_texts.lce_header_id = cz_lce_headers.lce_header_id</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND cz_lce_headers.deleted_flag = v4</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AND cz_lce_load_specs.deleted_flag = v4</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ORDER BY cz_lce_texts.seq_nbr;</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; EXCEPTION</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; WHEN others THEN NULL;</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160;&#160;&#160;&#160; END;</span>         <br style="font-family: courier" /><span style="font-family: courier">&#160;&#160; END LOOP;</span>         <br style="font-family: courier" /><span style="font-family: courier">END;</span>         <br style="font-family: courier" /><span style="font-family: courier">/</span>         <br /></span></span></font>  <h3><font size="3"><span style="font-family: courier"><span style="font-family: arial">Observation data for <span style="font-weight: bold; text-decoration: underline">without the index creation</span> on </span></span></font><font size="3"><span style="font-family: courier"><span style="font-family: arial"><span style="font-family: courier">cz_lce_load_specs</span></span></span></font><font size="3"><span style="font-family: courier"><span style="font-family: arial">:</span></span></font></h3> <font size="2"><span style="font-family: courier"><span style="font-family: arial">1) First passive configurator model loading (preloading)</span></span></font><font size="2"><span style="font-family: courier"><span style="font-family: arial"><span style="font-family: courier"><span style="font-family: arial">:</span></span></span></span></font>   <br />  <br />  <table style="width: 420.75pt" cellpadding="0" width="561" border="1"><tbody>     <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Web response                <br />time</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Buffer&#160; gets</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Disk reads</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Executions</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Sql time                <br />for execution</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Buffer gets/                <br />execution</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>       </td>     </tr>      <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">2:14.6</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">2,403,145</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">35,551</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">68</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">110.45</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">35,340</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>     </tr>      <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">2:02.0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">2,367,735 </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">67</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">94.66</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">35,340</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>     </tr>      <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">2:03.3</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">2,367,735</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">68</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">94.7</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">35,340</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>     </tr>   </tbody></table> <font size="2"><span style="font-family: courier"><span style="font-family: arial">       <br /></span></span></font><font size="2"><span style="font-family: courier"><span style="font-family: arial">2) The models are already preloaded now and they are being launched</span></span></font><font size="2"><span style="font-family: courier"><span style="font-family: arial"><span style="font-family: courier"><span style="font-family: arial">:</span></span></span></span></font>   <br />  <br />  <table style="width: 265.85pt" cellpadding="0" width="354" border="1"><tbody>     <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Web response                <br />time</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Buffer&#160; gets</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Disk reads</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Executions</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>     </tr>      <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p style="margin: 0in 0in 0pt; text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0:05.6</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>     </tr>      <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0:06.4</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0 </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>     </tr>      <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0:05.5</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>     </tr>   </tbody></table>  <p>   <br /><font size="2"><span style="font-family: courier"><span style="font-family: arial">3) Launch a configurator model, change an attribute of a selection for an item or sub-item and save the configuration (do not submit an order yet)</span></span></font><font size="2"><span style="font-family: courier"><span style="font-family: arial"><span style="font-family: courier"><span style="font-family: arial"></span></span></span></span></font><font size="2"><span style="font-family: courier"><span style="font-family: arial">:</span></span></font></p>  <p><font size="2"><span style="font-family: courier"><span style="font-family: arial"></span></span></font></p>  <table style="width: 557px; height: 151px" cellpadding="0" border="1"><tbody>     <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Web response                <br />time</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Buffer&#160; gets</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Disk reads</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <h1><font style="font-weight: normal; font-family: courier" size="2">Executions</font><span></span></h1>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Sql time                <br />for execution</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Buffer gets/                <br />execution</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>     </tr>      <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p style="margin: 0in 0in 0pt; text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0:30.1</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">600,259</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">3</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">17</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">23.76</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">35,309</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>     </tr>      <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0:05.9</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0 </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <br /></td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">         <br /></td>     </tr>      <tr>       <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0:04.3</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>       </td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <br /></td>        <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">         <br /></td>     </tr>   </tbody></table> <font size="2"><span style="font-family: courier"><span style="font-family: arial">       <br /></span></span></font>  <h3><font size="3"><span style="font-family: courier"><span style="font-family: arial">Observation data for <span style="font-weight: bold; text-decoration: underline">WITH the index creation</span> on </span></span></font><font size="3"><span style="font-family: courier"><span style="font-family: arial"><span style="font-family: courier">cz_lce_load_specs</span></span></span></font><font size="3"><span style="font-family: courier"><span style="font-family: arial">:</span></span></font></h3>  <h3><font size="3"><span style="font-family: courier"><span style="font-family: arial"></span></span></font><font size="2"><span style="font-family: courier"><span style="font-family: arial">         <br /></span></span></font><font size="2"><span style="font-family: courier"><span style="font-family: arial">1) First passive load of the configurator model (preloading):<span style="font-weight: bold"></span></span></span></font></h3>  <h3>   <table style="width: 420.75pt" cellpadding="0" width="561" border="1"><tbody>       <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Web response                  <br />time</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Buffer&#160; gets</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Disk reads</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Executions</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Sql time                  <br />for execution</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Buffer gets/                  <br />execution</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>       </tr>        <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0:22.7</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">3,240</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">3</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">67</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0.03</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">48</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>       </tr>        <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0:23.1</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">3,141</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">67</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0.04</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">47</span></p>         </td>       </tr>        <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0:26.1</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">3,141</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">67</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0.02</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">47</span></p>         </td>       </tr>     </tbody></table> </h3> <font size="2"><span style="font-family: courier"><span style="font-family: arial">       <h3>         <br /></h3>     </span></span></font>  <p>2) First WebUI launch, after the preloading with the index:</p>  <h3>   <table style="width: 268.25pt" cellpadding="0" width="358" border="1"><tbody>       <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Web response                  <br />time</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Buffer&#160; gets</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Disk reads</span></b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <h1><font style="font-weight: normal" size="2"><span style="font-family: courier">Executions</span></font><span></span></h1>         </td>       </tr>        <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier">           <p style="margin: 0in 0in 0pt; text-align: center" align="center"><span style="font-size: 10pt">0.04.3</span><span style="font-size: 10pt"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0</span><span style="font-size: 10pt"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0</span><span style="font-size: 10pt"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0</span><span style="font-size: 10pt"></span></p>         </td>       </tr>        <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0.04.4</span><span style="font-size: 10pt"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0 </span><span style="font-size: 10pt"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0</span><span style="font-size: 10pt"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0</span><span style="font-size: 10pt"></span></p>         </td>       </tr>        <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0.04.8</span><span style="font-size: 10pt"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0</span><span style="font-size: 10pt"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0</span><span style="font-size: 10pt"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt; font-family: courier" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt">0</span><span style="font-size: 10pt"></span></p>         </td>       </tr>     </tbody></table> </h3>  <h3>   <br />3) <font size="2"><span style="font-family: courier"><span style="font-family: arial">Launch a configurator model, change an attribute of a selection for an item or sub-item and save the configuration (do not submit an order yet):</span></span></font><font size="2"><span style="font-family: courier"></span></font><font size="2"><span style="font-family: courier"><span style="font-family: arial">          <br /></span></span></font>    <br /></h3>  <h3>   <table style="width: 420.75pt" cellpadding="0" width="561" border="1"><tbody>       <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Web response                  <br />time</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Buffer&#160; gets</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Disk reads</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Executions</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Sql time                  <br />for execution</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal"><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">Buffer gets/                  <br />execution</span></b><b><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></b></p>         </td>       </tr>        <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0.05.1</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">209</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">17</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0.01</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">12</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>       </tr>        <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0.04.8</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <br /></td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt">           <br /></td>       </tr>        <tr>         <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0.04.0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <p class="MsoNormal" style="text-align: center" align="center"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;">0</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;"></span></p>         </td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <br /></td>          <td style="padding-right: 1.5pt; padding-left: 1.5pt; padding-bottom: 1.5pt; padding-top: 1.5pt" valign="top">           <br /></td>       </tr>     </tbody></table> </h3> <font size="2"><span style="font-family: courier"><font size="3"><span style="font-family: arial">         <h3>           <br /></h3>       </span></font></span></font>  <h3><strong>Real time benefits..</strong></h3> To illustrate this point better after putting it in production, here is a quick comparision of the preload timings of a some configurator models that were grouped in 2 configurator servlets JVMs:   <br />  <br style="font-weight: bold; text-decoration: underline" /><span style="font-weight: bold; text-decoration: underline">Before the index:</span>   <br />  <br />  <table cellspacing="2" cellpadding="2" border="1"><tbody>     <tr>       <td>GROUP29          <br /></td>        <td><span style="font-size: 10pt; font-family: arial">Max preloading time was 857 secs taken by M91R            <br /><span>&#160;</span>Min preloading time was 852 secs taken by M91             <br /><span>&#160;</span>Avg preloading time was 0:14:13 ( 853 seconds ) secs/model over a total of 6 models</span></td>     </tr>      <tr>       <td>GROUP30          <br /></td>        <td><span style="font-size: 10pt; font-family: arial">Max preloading time was 1684 secs taken by TDXSR-CG            <br /><span></span>Min preloading time was 1302 secs taken by TDXSCSEAT             <br /><span></span>Avg preloading time was 0:25:56 ( 1556 seconds ) secs/model over a total of 13 models</span></td>     </tr>   </tbody></table>  <br style="font-weight: bold; text-decoration: underline" /><span style="font-weight: bold; text-decoration: underline">After the index:</span>   <br />  <br />  <table cellspacing="2" cellpadding="2" border="1"><tbody>     <tr>       <td>GROUP29          <br /></td>        <td><span style="font-size: 10pt; font-family: arial">Max preloading time was 54 secs taken by M91R            <br /><span></span>Min preloading time was 53 secs taken by M91-C             <br /><span></span>Avg preloading time was 0:0:53 ( 53 seconds ) secs/model over a total of 6 models</span></td>     </tr>      <tr>       <td>GROUP30          <br /></td>        <td><span style="font-size: 10pt; font-family: arial">Max preloading time was 96 secs taken by TDXSC2-CG            <br />Min preloading time was 82 secs taken by TDXSR-HD             <br />Avg preloading time was 0:1:30 ( 90 seconds ) secs/model over a total of 14 models</span></td>     </tr>   </tbody></table>  <br />  <h3><font size="2"><span style="font-family: courier"><font size="3"><span style="font-family: arial"></span></font></span></font></h3>  <h3><font size="2"><span style="font-family: courier"><font size="3"><span style="font-family: arial">Conclusion</span></font></span></font></h3> Although this index could have been provided by Oracle, it was a lucky discovery to speeden up the preloading time for configurator models. With the new index, it is now possible for the client to bounce anytime and have 10-20 most popular models preloaded in within 2-3 mins, as compared to 10-15 mins before, which is really something.   <br />  <br />Interestingly, the same columns got indexes in the 11.5.10 release as seen from <a href="http://etrm.oracle.com">http://etrm.oracle.com</a>:   <br />  <br /><img height="357" alt="cz_lce_load_specs_indexes in 11.5.10.PNG: " src="http://blogs.oracle.com/gauravVerma/images/czlceloadspecsindexesin1151.png" width="600" border="0" />   <br />  <br /><span style="font-style: italic">Note: This article is being produced with the explicit permission of Brian Fane, <img height="85" alt="smaller bfane.JPG: " src="http://blogs.oracle.com/gauravVerma/images/smallerbfane.jpg" width="88" border="0" /> and is aimed at sharing tips in the Oracle world for other people who might be in the same situation.</span>   <br />  <br />  <br /><font size="2"><span style="font-family: courier">     <br /></span></font></p>]]>
      
   </content>
</entry>
<entry>
   <title>The right combination of options to trace configurator servlet..</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/06/the_right_combination_of_optio.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.2105</id>
   
   <published>2008-06-02T11:57:58Z</published>
   <updated>2008-06-24T06:44:47Z</updated>
   
   <summary>A long while back, we had faced a weird situation with configurator and desperately needed to trace it to find out what was happening behind the scenes. After consulting many a metalink notes, however hard I tried, the tracing would...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
         <category term="11ioracleapps" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<p><font style="font-family: Arial;" size="2">A long while back, we had faced a weird situation with configurator and desperately needed to trace it to find out what was happening behind the scenes. <br><br>After consulting many a metalink notes, however hard I tried, the tracing would simply not happen. The right sequence of character and options is quite tricky and not very well documented. (<span style="font-style: italic;">Not surprising, as Configurator is an acquired product</span>)<br><br>After many attempts, the tracing did work and this article is more as a reminder to myself and any other people out there who want to trace the confiurator servlet. Be reminded though, that this tracing is more like FRD log tracing (for Oracle Forms) and is <span style="font-weight: bold;">NOT </span>sql tracing.<br><br>Having said so, here are the magical options that you need to add to <span style="font-style: italic;">$IAS_ORACLE_HOME/Apache/Jserv/etc/zone.properties</span> file:<br><br>zone.properties<br>==========<br>....<br>....<br>servlets.default.initArgs=cz.activemodel=<span style="font-weight: bold;">|/tl=@$TRACEDIR/ciotracesupport.lce| </span>/gt=$TRACEDIR/ciotracesupport.java|/nolp|/nodp|/noatp|<br></font><font style="font-family: Arial;" size="2">....<br><br />
....<br><br><span style="font-style: italic;">where, $TRACEDIR is the directory where the trace (.lce) file will be produced. Also, please note that the /gt= option was just wrapped around to the below line for reading purposes. In reality, it needs to be in the same line as the /tl= option.</span><br><br>If anyone of you reading this article has a better idea than this, please let me know through the comment mechanism.<br><br><br></font></p>]]>
      
   </content>
</entry>
<entry>
   <title>So you thought you upgraded your OLAP database to 10g..</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/05/so_you_thought_you_upgraded_yo.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.2106</id>
   
   <published>2008-05-31T15:01:03Z</published>
   <updated>2008-06-24T06:44:47Z</updated>
   
   <summary><![CDATA[Well, so did we. In fact, the dba_registry view showed the version of OLAP option as 10.2.0.3. Here, see it for yourself:&nbsp; 1&nbsp; select comp_name , version, status from dba_registry&nbsp; 2* where comp_name like&nbsp; '%Analytic%'SQL&gt; /COMP_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VERSION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STATUS-------------------------- ------------ -------OLAP...]]></summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
         <category term="Miscellenous" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<p><font size="7"><br>W</font>ell, so did we. In fact, the dba_registry view showed the version of OLAP option as 10.2.0.3. Here, see it for yourself:<br><font size="2"><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 1&nbsp; select comp_name , version, status from dba_registry</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 2* where comp_name like&nbsp; '%Analytic%'</span><br style="font-family: Courier;"><span style="font-family: Courier;">SQL&gt; /</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">COMP_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VERSION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STATUS</span><br style="font-family: Courier;"><span style="font-family: Courier;">-------------------------- ------------ -------</span><br style="font-family: Courier;"><span style="font-family: Courier;">OLAP Analytic Workspace&nbsp;&nbsp;&nbsp; 10.2.0.3.0&nbsp;&nbsp; VALID</span></font><br><br>Seems pretty convincing, does it not? One would think so.<br><h3>An unexpected error..</h3>But, a month later, when the customer tried to do an archive and restore of a demand plan, they received the following error:<br><br><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Demand Planning: Version : 11.5.0</span></font></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Copyright (c) 1979, 1999, Oracle Corporation. All rights<br />
reserved.</span></font></p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><span style="font-weight: bold;">MSDRESTORE module: Restore demand plan</span></span></font><br><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">+---------------------------------------------------------------------------+</span></font></p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Current system time is 30-MAY-2008 08:24:19</span></font><br><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">+---------------------------------------------------------------------------+</span></font></p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">**Starts**30-MAY-2008 08:24:19</span></font><br><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">**Ends**30-MAY-2008 08:24:21</span></font><br></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><span style="color: rgb(255, 0, 0); font-weight: bold;">ORA-35071: EIF file ARCH4027.eif cannot be imported because<br />
analytic workspace ODPCODE has not been upgraded to version 10.0.0.0.</span></span></font></p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">+---------------------------------------------------------------------------+</span></font><br><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Start of log messages from FND_FILE</span></font><br></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">+---------------------------------------------------------------------------+</span></font><br></p><p style="color: rgb(255, 0, 0); font-weight: bold;" class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Error in restore process: see batch log for details</span></font><br></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"><span style="color: rgb(255, 0, 0); font-weight: bold;">ORA-35071: EIF file ARCH4027.eif cannot be imported because<br />
analytic workspace ODPCODE has not been upgraded to version 10.0.0.0.</span></span></font><br></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">+---------------------------------------------------------------------------+</span></font><br></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">End of log messages from FND_FILE</span></font></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">+---------------------------------------------------------------------------+</span></font><br></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Executing request completion options...</span></font><br></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Finished executing request completion options.</span></font></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">+---------------------------------------------------------------------------+</span></font></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Exceptions posted by this request:</span></font><br></p><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Concurrent Request for "<span style="font-weight: bold;">Restore demand plan</span>" has<br />
completed with error.</span></font></p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">+---------------------------------------------------------------------------+</span></font><br><h3>Metalink, our friend in need..</h3>So we turned to our friend, Metalink and came across <a href="https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&amp;p_id=390004.1">Note <font face="helvetica"><strong>390004.1</strong></font></a>, which says that Imported the Analytic Workspace in an different database release, but the AWs are still of the old version.<br><br>Eh! So we tried to confirm the same and found that there were indeed 4 analytical workspaces that were still of 9.1 version, including the ODPCODE AW:<br><br><font size="2"><span style="font-family: Courier;">SQL&gt; select aw_name , aw_version </span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp;&nbsp;&nbsp;&nbsp; from all_aws </span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp;&nbsp;&nbsp;&nbsp; where aw_version like '9%';</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">AW_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AW_V</span><br style="font-family: Courier;"><span style="font-family: Courier;">------------------------------ ----</span><br style="font-family: Courier;"><span style="font-family: Courier;">ZPBANNOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9.1</span><br style="font-family: Courier;"><span style="font-family: Courier;">ZPBDATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9.1</span><br style="font-family: Courier;"><span style="font-family: Courier;">MSD4029&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9.1</span><br style="font-family: Courier;"><span style="font-family: Courier;">ODPCODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9.1</span></font><br><br>Strangely, the other AWs were all 10.2:<br><font size="2"><br style="font-family: Courier;"><span style="font-family: Courier;">SQL&gt; select aw_name , aw_version </span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp;&nbsp;&nbsp;&nbsp; from all_aws </span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp;&nbsp;&nbsp;&nbsp; where aw_version like '10%';</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">AW_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AW_V</span><br style="font-family: Courier;"><span style="font-family: Courier;">------------------------------ ----</span><br style="font-family: Courier;"><span style="font-family: Courier;">EXPRESS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">AWMD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">AWCREATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">AWCREATE10G&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">AWXML&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">AWREPORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">XWDEVKIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;"></span><span style="font-family: Courier;"></span><span style="font-family: Courier;">MMSD4027&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">MSD4027&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">MMMSD4027&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A58&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">MSD4027A58&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A79&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A86&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A87&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A88&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A93&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4027A95&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4029A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4029A5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4029A3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">PMMSD4029A1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">MMMSD4029&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">MMSD4029&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><span style="font-family: Courier;">ZPBCODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">35 rows selected.</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">SQL&gt;<br><br></span></font><h3><font size="4"><span style="font-family: Courier;"><span style="font-family: Times New Roman;">Where did our OLAP upgrade procedure go wrong..</span></span></font></h3><font size="2"><span style="font-family: Arial;">So the question before us was that how did our production upgrade procedure, the one which we thought was so meticulously planned and executed, go wrong?</span><br style="font-family: Arial;"><br><font style="font-family: Arial;" size="2">For upgrading the ODP workspaces, we had followed <a href="https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&amp;p_id=412800.1">Note 418200.1 - ODP: Steps When Upgrading the RDBMS Version Used With ODP</a>.</font></font><font style="font-family: Arial;" color="black" face="Times New Roman" size="2"><span style="font-size: 12pt;"> </span></font><font size="2"><span style="font-family: Arial;">We had even<br />
got a<br />
clarification from the author of that note about what steps were needed<br />
for ODP<br />
workspaces upgrade.</span><br style="font-family: Arial;"><br style="font-family: Arial;"><span style="font-family: Arial;">Unfortunately, The following note </span><span style="font-weight: bold; text-decoration: underline; color: rgb(0, 0, 153); font-family: Arial;">does not</span><span style="font-family: Arial;"> have any direct reference to upgrading OLAP workspaces:</span><br style="font-family: Arial;"><br style="font-family: Arial;"></font><table style="font-family: Arial;" border="1" width="677"><tbody><tr valign="top"><br />
<td width="126"><font size="2"><b>Note 362203.1</b></font><br />
</td><br />
<td width="485"><font size="2"><b>Interopratbility notes Oracle Applications Release 11i with Oracle 10g Release 2 (10.2.0)</b></font></td></tr></tbody></table> <font size="2"><br style="font-family: Arial;"><span style="font-family: Arial;">We had found the following Notes on OLAP upgrade/exporting/clone:</span><br style="font-family: Arial;"></font><font style="font-family: Arial;" size="2"><br></font><font style="font-family: Arial;" face="Times New Roman" size="2"><b>472215.1 </b></font><font style="font-family: Arial;" face="Times New Roman" size="2">How to Export AWs or a Plan in Demand Planning<b><br></b></font><font style="color: rgb(0, 0, 153); font-family: Arial;" face="Times New Roman" size="2"><b>418200.1 </b></font><font size="2"><span style="color: rgb(0, 0, 153); font-family: Arial;"></span></font><font style="font-family: Arial;" face="Times New Roman" size="2"><span style="color: rgb(0, 0, 153);">ODP Steps When Upgrading the RDBMS Version Used With ODP</span><br></font><font style="font-family: Arial;" face="Times New Roman" size="2"><b>412308.1 </b></font><font style="font-family: Arial;" face="Times New Roman" size="2">How to Check the Version for ODP 11.5.10?<br></font><font style="font-family: Arial;" face="Times New Roman" size="2"><b>339110.1 </b></font><font face="Times New Roman" size="3"><font size="2"><span style="font-family: Arial;">How To Clone the OLAP Portion of ODP 11.5.10</span><br style="font-family: Arial;"><br style="font-family: Arial;"><span style="font-family: Arial;">Note 418200.1 is the most relevant for the upgrade activity, but unfortunately, even that does not have any reference to </span><span style="font-weight: bold; font-family: Arial;">dba_aws </span><span style="font-family: Arial;">view to check the </span><span style="font-weight: bold; font-family: Arial;">aw_version</span><span style="font-family: Arial;"> column of each workspace and use the </span><span style="font-weight: bold; font-family: Arial;">dbms_aw.convert</span><span style="font-family: Arial;"> API for the workspaces that could not be upgraded due to some reason.</span><br style="font-family: Arial;"><br style="font-family: Arial;"><span style="font-family: Arial;">So that is definitely one thing that should be part of that note. We would be sending a note to the author to include these steps into note </span></font></font><font style="color: rgb(0, 0, 153); font-family: Arial;" face="Times New Roman" size="2"><b><span style="font-family: Arial;">418200.1.</span><br></b></font><span style="font-family: Arial;"><span style="font-weight: bold;"><br></span></span>Another gotcha while implementing the solution (<span style="font-style: italic;">exec dbms_aw.convert API</span>) is that it does not accept the OWNER name of the workspace in the first argument. Note 390004.1 actually sets a false expectation on this front.<br><br>Also, you need to be logged in as the owner of the workspace while issuing the dbms_aw API or you would get this error:<br><font size="2"><br style="font-family: Courier;"><span style="font-family: Courier;">SQL&gt; show user</span><br style="font-family: Courier;"><span style="font-family: Courier;">USER is "SYS"</span><br style="font-family: Courier;"><span style="font-family: Courier;">SQL&gt; exec dbms_aw.convert('ODPCODE');</span><br style="font-family: Courier;"><span style="font-family: Courier;">BEGIN dbms_aw.convert('</span></font><font size="2"><span style="font-family: Courier;">ODPCODE</span></font><font size="2"><span style="font-family: Courier;">'); END;</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">*</span><br style="font-family: Courier;"><span style="font-family: Courier;">ERROR at line 1:</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-33262: Analytic workspace </span></font><font size="2"><span style="font-family: Courier;">ODPCODE</span></font><font size="2"><span style="font-family: Courier;"> does not exist.</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-06512: at "SYS.DBMS_AW", line 58</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-06512: at "SYS.DBMS_AW", line 134</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-06512: at "SYS.DBMS_AW", line 1245</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-06512: at line 1</span></font><br><br><h3><span style="font-family: Arial;"><span style="font-weight: bold;">Oh, Oh.. A Gotcha while implementing the solution..</span></span></h3><br>To make matters worse, by a copy-paste, I specified the owner name along with the workspace like this: <br><br><font size="2"><span style="font-family: Courier;">SQL&gt; exec dbms_aw.convert('<span style="font-weight: bold;">apps.</span>odpcode'); </span></font><br><br>It came back with an  error like you cant specify the owner name of the table. &nbsp;&nbsp;  <br><br>After that, the name  of the aw got changed to<span style="font-weight: bold;"> ODPCODE_ </span>(with the _ in the end), but it upgraded to 10.2 as per <span style="font-style: italic;">dba_aws</span> or <span style="font-style: italic;">all_aws.<br><font size="2"><br style="font-family: Courier;"></font></span><font size="2"><span style="font-family: Courier;">SQL&gt;  select aw_name, aw_version <br>&nbsp;&nbsp;&nbsp;&nbsp; from all_aws <br>&nbsp;&nbsp;&nbsp;&nbsp; where aw_name like 'ODP%';</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">AW_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AW_V</span><br style="font-family: Courier;"><span style="font-family: Courier;">------------------------------ ----</span><br style="font-family: Courier;"><span style="font-family: Courier;">ODPCODE_                       &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span></font><br><br>Essentially, the <font size="2"><span style="font-family: Courier;">dbms_aw.convert</span></font> had left the ODPCODE workspace in a transient state and not done a good job of cleaning up after the exception.<br><h3>A workaround for cleaning up...</h3>Well, there is an API called <span style="font-weight: bold;">dbms_aw.aw_rename </span>that would do the trick of putting the name back to ODPCODE like this:<br><font size="2"><br style="font-family: Courier;"><span style="font-family: Courier;"></span></font><font size="2"><span style="font-family: Courier;">SQL&gt; show user<br>USER is APPS<br style="font-family: Courier;"></span><br></font><font size="2"><span style="font-family: Courier;">SQL&gt; exec dbms_aw.aw_rename('ODPCODE_','ODPCODE');</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">PL/SQL procedure successfully completed.</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">SQL&gt; select aw_name, aw_version from all_aws where aw_name='ODPCODE';</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">AW_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                        AW_V</span><br style="font-family: Courier;"><span style="font-family: Courier;">------------------------------ ----</span><br style="font-family: Courier;"><span style="font-family: Courier;">ODPCODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.2</span><br style="font-family: Courier;"><br style="font-family: Courier;"><font style="font-family: Arial;" size="2">Now just to make sure that it was really 10.2, we ran the dbms_aw.convert API again and got this message, which implied that it was already in 10.2 format:</font><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">SQL&gt; exec dbms_aw.convert('ODPCODE');</span><br style="font-family: Courier;"><span style="font-family: Courier;">BEGIN dbms_aw.convert('ODPCODE'); END;</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">*</span><br style="font-family: Courier;"><span style="font-family: Courier;">ERROR at line 1:</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-33298: Analytic Workspace ODPCODE is already in the newest format allowed</span><br style="font-family: Courier;"><span style="font-family: Courier;">by the current compatibility setting</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-06512: at "SYS.DBMS_AW", line 1267</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-06512: at line 1</span></font><br><span style="font-family: Arial;"><span style="font-weight: bold;"><br></span></span><p style="font-family: Arial;"><font size="2">After this, the MSDRESTORE module: Restore demand plan concurrent job completed successfully.</font></p><p><span style="font-family: Arial;"><span style="font-weight: bold;"></span></span></p><span style="font-family: Arial;"><span style="font-weight: bold;"></span></span><h3>Conclusion...</h3><font size="2"><span style="font-family: Arial;">There were multiple learnings from this Sev 1 experience in production instance:</span><br style="font-family: Arial;"></font><ul style="font-family: Arial;"><li><font size="2">Ask your customer to test exhaustively. In this case, the customer is a very small shop with an IT department of 5-6 people and yet to graduate to the enterprise level thinking for managing their IT systems. <br></font></li></ul><div style="margin-left: 40px; font-family: Arial;"><font size="2">Any testing was good testing for them and this error was discovered when they were going to go live with another project phase implementation. <br><br>Unfortunately, in this case, we had very little say in their testing plan.</font></div><ul style="font-family: Arial;"><li><font size="2">In this case, we were caught a little off guard because we did not have exhaustive expertise in OLAP upgrades and had to rely on published metalink notes, which did not cross link all the known upgrade issues.&nbsp;</font></li></ul><div style="margin-left: 40px; font-family: Arial;"><font size="2">In this case, it would have paid to check the output of all_aws view too. Similarly, other Oracle Server options may have their own views. </font></div><ul style="font-family: Arial;"><li><font size="2">While executing the dbms_aw APIs, it is best to be logged in as the owner of the analytical workspace being worked on, or you might land up in a worse soup than you signed up for. <br></font></li></ul><div style="margin-left: 40px;"><font size="2"><span style="font-family: Arial;">As per our observation, even the </span><span style="font-style: italic; font-family: Arial;">alter session set current_schema=&amp;lt;OWNER&gt; </span><span style="font-family: Arial;">sql does not work on dbms_aw APIs.</span></font><br></div><br><br><font><strong></strong></font></p>]]>
      
   </content>
</entry>
<entry>
   <title>Time saving tactic: How we saved 6 hrs of downtime in production 10g upgrade</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/05/time_saving_tactic_how_we_save.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.2107</id>
   
   <published>2008-05-24T16:57:02Z</published>
   <updated>2008-06-24T06:44:47Z</updated>
   
   <summary>PrefaceSo you want to upgrade your database to 10g from 9i. Well, welcome to the club. If you have RAC, then you will definitely need to install the CRS and database binaries, along with some RDBMS patches. When we were...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
         <category term="Performance" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="unix" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<h3 style="font-family: Arial;"><font size="2">Preface</font></h3><font style="font-family: Arial;" size="2">So you want to upgrade your database to 10g from 9i. Well, welcome to the club. <br><br>If you have RAC, then you will definitely need to install the CRS and database binaries, along with some RDBMS patches. <br><br>When we were challenged with keeping the downtime to within 24 hrs by a customer, that set us thinking as to what time saving tactics could be employed to achieve this end.<br></font><h3 style="font-family: Arial;"><font size="2">Divide and conquer the downtime..</font></h3><font size="3"><font size="2"><span style="font-family: Arial;">The old strategy of divide and conquer is really time tested and works well in most paradigms. In this article, we demonstrate how its possible to split the 10g upgrade downtime into two logical parts:</span><br style="font-family: Arial;"><br style="font-family: Arial;"><span style="font-family: Arial;"><span style="text-decoration: underline;">Part 1)</span> <br><br>Install the 10g technology stack ahead of time, including the database, any patchsets (usually 10.2.0.3) and rdbms patches. Before doing this, we shutdown the 9i RAC/DB binaries. After the 10g CRS/DB technology stack installation, you shutdown the 10g CRS , bring up the 9i RAC processes and carry on as it nothing happened.</span><br style="font-family: Arial;"><br style="font-family: Arial;"><span style="font-family: Arial;">&nbsp;&nbsp; At this stage, 9i and 10g technology stack will co-exist peacefully with each other. The production system can run on 9i RAC for a week or more till you decide to do the actual upgrade.</span><br style="font-family: Arial;"><br style="font-family: Arial;"><span style="font-family: Arial;"><span style="text-decoration: underline;">Part 2)<br><br style="text-decoration: underline;"></span>In the subsequent main upgrade outage, you can shutdown the 9i RAC/DB, bring up DB using 10g CRS/DB oracle home&nbsp; and do the actual upgrade. This outage could last anywhere from 10-24 hrs or even upto 32 hrs depending on your pre-production timing practice. It is assumed that one would do at least 2-3 rounds of upgrade before gaining the confidence of doing the production round.</span><br style="font-family: Arial;"><br style="font-family: Arial;"><span style="font-family: Arial;">Adopting this split strategy saved us about 6 hrs in the main upgrade downtime window and we were able to do the upgrade in a window of 16-20 hrs. The size of the database was ~1 TB on HP-UX PA RISC 64 bit OS.</span></font><br style="font-family: Times New Roman;"></font><h3 style="font-family: Times New Roman;"><font size="3">How was it done..</font></h3>When you do an 9i-&gt;10g upgrade for RAC, the following happens:<br><br>1) OCR device location is automatically picked up from <font size="2"><span style="font-family: Courier;">/var/opt/oracle/srvConfig.loc</span></font> (9i&nbsp; setup file)<br><br>2) The OCR device's contents is upgraded to 10g format<br><br>3) A new file called <font size="2"><span style="font-family: Courier;">/var/opt/oracle/ocr.loc</span></font> is created with the OCR device name<br><br>Since we had to preserve the 9i OCR device for running 9i RAC after the 10g CRS/DB techstack installation, we did the following:<br><br>1) Got a new set of OCR and Voting device for 10g. This was a separate set of devices in addition to the 9i OCR and voting disks. Then we brought down the 9i CRS processes. <br><br><div style="margin-left: 40px;"><span style="font-style: italic;">A caveat here was that the HP service guard (vendor cluster solution) was required to be up to perform the 10g CRS installation.</span><br></div><br>2) copied the contents of 9i OCR into the 10g OCR device using the dd command:<br><br><font size="2"><span style="font-family: Courier;">$ whoami</span><br style="font-family: Courier;"><span style="font-family: Courier;">oracle<br><br style="font-family: Courier;"></span><span style="font-family: Courier;">$ dd if=/dev/rawdev/raw_9i_ocr.dbf&nbsp; of=/dev/rawdev/raw_10g_ocr.dbf&nbsp;&nbsp; bs=1024</span></font><br><br>3) Edited the srvConfig.loc file to point to the<font size="2"><span style="font-family: Courier;"> /dev/rawdev/raw_10g_ocr.dbf</span></font> file<br><br>4) Did the 10g CRS installation and ran root.sh that upgraded the OCR device to 10g format<br><br><div style="text-align: left;">5) We then installed the 10.2.0.1 DB binaries and applied the 10.2.0.3 patchset, along with RDBMS patches. This was the major activity and took about 4-5 hrs. <br><br><div style="margin-left: 40px;"><span style="font-style: italic;">Another option to save time here was that we could have cloned the 10.2.0.3 ORACLE_HOME from the UAT servers, but since this was production, we wanted to do everything with a clean start and not carry on any mistakes from UAT.</span><br style="font-style: italic;"></div></div><br>6) Brought down 10g CRS services with <font size="2"><span style="font-family: Courier;">$ORA_CRS_HOME/bin/crsctl stop crs</span></font> and also disabled the automatic startup of CRS with <font size="2"><span style="font-family: Courier;">/etc/init.d/init.crs crs disable</span></font><br><br>7) Re-pointed the 9i OCR device back in <font size="2"><span style="font-family: Courier;">/var/opt/oracle/srvConfig.loc </span></font>as&nbsp; <font size="2"><span style="font-family: Courier;">/dev/rawdev/raw_9i_ocr.dbf</span></font><span style="font-family: Courier;"> <br><br></span>Then we brought up the 9i CRS services again and then brought up the Database with 9i binaries.<br><br><div style="margin-left: 40px;"><span style="font-style: italic;">At this point, the 9i and 10g binaries co-existed with each other peacefully as if 10g techstack was never there. <br></span></div><h3>Conclusion</h3>There might be better ways of reducing downtime during the upgrade, but this was one of the selling points of projecting a successful 10g upgrade to the customer by reducing the downtime, especially when we were under extreme pressure to keep the main downtime window to less than 24 hrs.<br><br><span style="font-style: italic;"></span><br><span style="font-style: italic;"></span><br><br>]]>
      
   </content>
</entry>
<entry>
   <title>puzzling RMAN: No channel to restore a backup or copy of datafile?</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/05/puzzling_rman_no_channel_to_re.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.2108</id>
   
   <published>2008-05-23T19:43:06Z</published>
   <updated>2008-06-24T06:44:48Z</updated>
   
   <summary><![CDATA[An RMAN puzzle&nbsp;&nbsp; In this article, we will look at a puzzling situation that happened at one of our environments, when we were carrying out an RMAN restoration. The RMAN backup was taken using a catalog (not using controlfile) and...]]></summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<h3>An RMAN puzzle</h3>&nbsp;&nbsp;  <br>In this article, we will look at a puzzling situation that happened at one of our environments, when we were carrying out an RMAN restoration. The RMAN backup was taken using a catalog (not using controlfile) and our mission was to restore PROD to UAT. Simple, right?<br><br>Wrong!<br><h3>An Arrrgh! Moment..</h3><p>We were using the following restoration script:<br></p><font size="2"><span style="font-family: Courier;">RMAN&gt;</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN&gt; run</span><br style="font-family: Courier;"><span style="font-family: Courier;">2&gt; {</span><br style="font-family: Courier;"><span style="font-family: Courier;">3&gt; set until time&nbsp; "to_date('05/13/08 14:40:00','MM/DD/YY hh24:mi:ss')";</span><br style="font-family: Courier;"><span style="font-family: Courier;">4&gt; allocate auxiliary channel 'adisk_0' type DISK;</span><br style="font-family: Courier;"><span style="font-family: Courier;">5&gt; allocate auxiliary channel 'adisk_1' type DISK;</span><br style="font-family: Courier;"><span style="font-family: Courier;">6&gt; allocate auxiliary channel 'adisk_2' type DISK;</span><br style="font-family: Courier;"><span style="font-family: Courier;">7&gt; allocate auxiliary channel 'adisk_3' type DISK;</span><br style="font-family: Courier;"><span style="font-family: Courier;">8&gt; DUPLICATE TARGET DATABASE TO UAT;</span><br style="font-family: Courier;"><span style="font-family: Courier;">9&gt; }</span></font><br><br>The backup location was available and so were adequate backup channels, but we always ended up getting this laconic error:<span style="font-family: Courier;"><br><br></span><font size="2"><span style="font-family: Courier;">...</span><br style="font-family: Courier;"><span style="font-family: Courier;">...</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">Starting restore at 13-MAY-08</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">released channel: adisk_0</span><br style="font-family: Courier;"><span style="font-family: Courier;">released channel: adisk_1</span><br style="font-family: Courier;"><span style="font-family: Courier;">released channel: adisk_2</span><br style="font-family: Courier;"><span style="font-family: Courier;">released channel: adisk_3</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-00571: ===========================================================</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-00571: ===========================================================</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-03002: failure of Duplicate Db command at 05/13/2008 15:25:38</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-03015: error occurred in stored script Memory Script</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-06026: some targets not found - aborting restore</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-06100: no channel to restore a backup or copy of datafile 471</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-06100: no channel to restore a backup or copy of datafile 466</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN&gt;</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN&gt; **end-of-file**</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN&gt;</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">Recovery Manager complete.</span></font><br><br><h3>No channel to restore?...</h3><font size="3"></font>Huh? Well, as you can see, the channels were very well defined and even the rman log showed that the channels were being allocated. We even tried increasing the channels to 8 or 10, and also tried allocating auxiliary channels (was irrelevant), but to no avail.<br><br>Another option that was tried was plain and simple restoration using the <span style="font-weight: bold;">RMAN&gt; restore datafile 1; </span>command. Although that failed since the paths of datafile 1 was not switched to UAT's convention, it did not prove anything.<br><br>My teammates, <span style="font-weight: bold;">Dhandapani Perungulam</span> <img src="http://blogs.oracle.com/gauravVerma/images/D.png" height="89" width="80" border="0" alt="D.PNG: ">&nbsp; and <span style="font-weight: bold;">Sandeep Rebba </span><img src="http://blogs.oracle.com/gauravVerma/images/sandeep.png" height="89" width="73" border="0" alt="sandeep.PNG: "> were trying out different options. Then someone had the bright idea of checking the timestamp of the completed backup. It was possible that we were trying to restore to a point in time before the backup had completed.<br><h3>Verifying the rman backup completion time from catalog</h3>First of all, we needed to set the NLS_DATE_FORMAT variable to include the HH24:MI format:<br><br><font size="2"><span style="font-family: Courier;">$&nbsp; export NLS_DATE_FORMAT='dd-mon-rr hh24:mi'<br></span></font><font size="2"><br></font>Then we needed to connect to the target (source instance for replication in RMAN terminology) and RMAN catalog:<br><br style="font-family: Courier;"><font size="2"><span style="font-family: Courier;">$&nbsp; rman catalog rman@rman target sys@prd</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">Recovery Manager: Release 10.2.0.3.0 - Production on Fri May 23 14:34:02 2008</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">Copyright (c) 1982, 2005, Oracle.&nbsp; All rights reserved.</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">rman database Password: </span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">target database Password: </span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">connected to target database: PRD (DBID=2530951715)</span><br style="font-family: Courier;"><span style="font-family: Courier;">connected to recovery catalog database</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN&gt; <br><br><font size="3"><span style="font-family: Times New Roman;">This command will give us details of the backupsets and the time when the backup completed:</span></font><br style="font-family: Courier;"></span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN&gt; list backup of database completed between '12-may-2008' and '14-may-2008;</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">...</span><br style="font-family: Courier;"><span style="font-family: Courier;">...</span><br style="font-family: Courier;"><span style="font-family: Courier;">...</span><br style="font-family: Courier;"><span style="font-family: Courier;">BS Key&nbsp; Type LV Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Device Type Elapsed Time Completion Time</span><br style="font-family: Courier;"><span style="font-family: Courier;">------- ---- -- ---------- ----------- ------------ ---------------</span><br style="font-family: Courier;"><span style="font-family: Courier;">2794098 Incr 0&nbsp; 53.28G&nbsp;&nbsp;&nbsp;&nbsp; SBT_TAPE&nbsp;&nbsp;&nbsp; 00:38:54&nbsp;&nbsp;&nbsp;&nbsp; 13-may-08 23:11</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BP Key: 2794121&nbsp;&nbsp; Status: AVAILABLE&nbsp; Compressed: NO&nbsp; Tag: TAG20080513T203101</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Handle: racprod1_PRD&amp;lt;PRD_116563:654647578:1&gt;.dbf&nbsp;&nbsp; Media: </span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; List of Datafiles in backup set 2794098</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; File LV Type Ckp SCN&nbsp;&nbsp;&nbsp; Ckp Time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; ---- -- ---- ---------- --------------- ----</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 7&nbsp;&nbsp;&nbsp; 0&nbsp; Incr 7247000051870 13-may-08 22:32 /u01/oracle/prdracdata/owad01.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 295&nbsp; 0&nbsp; Incr 7247000051870 13-may-08 22:32 /u01/oracle/prdracdata/system06.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 379&nbsp; 0&nbsp; Incr 7247000051870 13-may-08 22:32 /u01/oracle/prdracdata/rbs11.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 459&nbsp; 0&nbsp; Incr 7247000051870 13-may-08 22:32 /u01/oracle/prdracdata/apps_ts_interface01.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 460&nbsp; 0&nbsp; Incr 7247000051870 13-may-08 22:32 /u01/oracle/prdracdata/apps_ts_summary01.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 481&nbsp; 0&nbsp; Incr 7247000051870 13-may-08 22:32 /u01/oracle/prdracdata/apps_ts_tx_data12.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 509&nbsp; 0&nbsp; Incr 7247000051870 13-may-08 22:32 /u01/oracle/prdracdata/apps_ts_archive02.dbf</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">BS Key&nbsp; Type LV Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Device Type Elapsed Time Completion Time</span><br style="font-family: Courier;"><span style="font-family: Courier;">------- ---- -- ---------- ----------- ------------ ---------------</span><br style="font-family: Courier;"><span style="font-family: Courier;">2794099 Incr 0&nbsp; 55.62G&nbsp;&nbsp;&nbsp;&nbsp; SBT_TAPE&nbsp;&nbsp;&nbsp; 00:39:54&nbsp;&nbsp;&nbsp;&nbsp; 13-may-08 23:12</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BP Key: 2794122&nbsp;&nbsp; Status: AVAILABLE&nbsp; Compressed: NO&nbsp; Tag: TAG20080513T203101</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Handle: racprod1_PRD&amp;lt;PRD_116562:654647562:1&gt;.dbf&nbsp;&nbsp; Media: </span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; List of Datafiles in backup set 2794099</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; File LV Type Ckp SCN&nbsp;&nbsp;&nbsp; Ckp Time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; ---- -- ---- ---------- --------------- ----</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 5&nbsp;&nbsp;&nbsp; 0&nbsp; Incr 7247000051797 <span style="font-weight: bold;">13-may-08 22:32</span> /u01/oracle/prdracdata/system05.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 17&nbsp;&nbsp; 0&nbsp; Incr 7247000051797 <span style="font-weight: bold;">13-may-08 22:32</span> /u01/oracle/prdracdata/rbs15.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 18&nbsp;&nbsp; 0&nbsp; Incr 7247000051797 <span style="font-weight: bold;">13-may-08 22:32</span> /u01/oracle/prdracdata/apps_ts_interface03.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 22&nbsp;&nbsp; 0&nbsp; Incr 7247000051797 <span style="font-weight: bold;">13-may-08 22:32</span> /u01/oracle/prdracdata/apps_ts_summary05.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 398&nbsp; 0&nbsp; Incr 7247000051797 <span style="font-weight: bold;">13-may-08 22:32</span> /u01/oracle/prdracdata/discoverer01.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 480&nbsp; 0&nbsp; Incr 7247000051797 <span style="font-weight: bold;">13-may-08 22:32</span> /u01/oracle/prdracdata/apps_ts_tx_data11.dbf</span><br style="font-family: Courier;"><span style="font-family: Courier;">&nbsp; 508&nbsp; 0&nbsp; Incr 7247000051797 <span style="font-weight: bold;">13-may-08 22:32</span> /u01/oracle/prdracdata/apps_ts_nologging02.dbf</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN&gt; </span><br style="font-family: Courier;"><br><font size="3"><span style="font-family: Times New Roman;">As we can see, </span></font></font><font style="font-family: Times New Roman;" size="3"><span style="font-weight: bold;">13-may-08 22:32</span> is the golden time. Anything after that in the until time statement will do.<br></font><h3><font style="font-family: Times New Roman;" size="4">Further progress..</font></h3><font style="font-family: Times New Roman;" size="3">So then, we tried with this script:<br><br><font size="2"><span style="font-family: Courier;">RMAN&gt;</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN&gt; run {</span><br style="font-family: Courier;"><span style="font-family: Courier;">2&gt; allocate auxiliary channel 'adisk_0' type DISK;</span><br style="font-family: Courier;"><span style="font-family: Courier;">3&gt; allocate auxiliary channel 'adisk_1' type DISK;</span><br style="font-family: Courier;"><span style="font-family: Courier;">4&gt; allocate auxiliary channel 'adisk_2' type DISK;</span><br style="font-family: Courier;"><span style="font-family: Courier;">5&gt; allocate auxiliary channel 'adisk_3' type DISK;</span><br style="font-family: Courier;"><span style="font-family: Courier;">6&gt; allocate auxiliary channel 'adisk_4' type DISK;</span><br style="font-family: Courier;"><span style="font-family: Courier;">7&gt;</span><br style="font-family: Courier;"><span style="font-family: Courier;">8&gt; set until time&nbsp; "to_date('09/013/2008 22:40:00','DD/MM/YYYY HH24:MI:SS')";</span><br style="font-family: Courier;"><span style="font-family: Courier;">9&gt;</span><br style="font-family: Courier;"><span style="font-family: Courier;">10&gt; DUPLICATE TARGET DATABASE TO UAT;</span><br style="font-family: Courier;"><span style="font-family: Courier;">11&gt; }</span><br style="font-family: Courier;"></font><br>Although, we got the following error for the archivelogs, we were able to open the database after manually supplying them and then doing an <span style="font-weight: bold;">SQL&gt; alter database open resetlogs; </span>:<br><br>.<font size="2"><span style="font-family: Courier;">..</span><br style="font-family: Courier;"><span style="font-family: Courier;">...</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">Starting recover at 13-MAY-08</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">starting media recovery</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">Oracle Error:</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-01194: file 1 needs more recovery to be consistent</span><br style="font-family: Courier;"><span style="font-family: Courier;">ORA-01110: data file 1: '/u01/oracle/uatracdata/system01.dbf'</span><br style="font-family: Courier;"><br style="font-family: Courier;"><span style="font-family: Courier;">released channel: adisk_0</span><br style="font-family: Courier;"><span style="font-family: Courier;">released channel: adisk_1</span><br style="font-family: Courier;"><span style="font-family: Courier;">released channel: adisk_2</span><br style="font-family: Courier;"><span style="font-family: Courier;">released channel: adisk_3</span><br style="font-family: Courier;"><span style="font-family: Courier;">released channel: adisk_4</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-00571: ===========================================================</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-00571: ===========================================================</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-03002: failure of Duplicate Db command at 05/13/2008 22:47:51</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-03015: error occurred in stored script Memory Script</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-06053: unable to perform media recovery because of missing log</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-06102: no channel to restore a backup or copy of log thread 2 seq 111965 lowscn 7246877796511</span><br style="font-family: Courier;"><span style="font-family: Courier;">RMAN-06102: no channel to restore a backup or copy of log thread 1 seq 143643 lowscn 7246877796417</span><br></font></font><h3><font style="font-family: Times New Roman;" size="4">Conclusion</font></h3><font style="font-family: Times New Roman;" size="3"><font size="2"><font size="3"><span style="font-family: Times New Roman;">Some RMAN errors can be really hard to understand or debug. Especially, it seems that the </span><span style="font-weight: bold; font-style: italic; font-family: Times New Roman;">no channel to restore a backup or copy</span></font></font></font><font size="3"><span style="font-family: Times New Roman;"> seems to be a very generic error message in RMAN, which could really mean anything and can be very misleading. <br><br>For example, we can see that at the end, it gave the </span></font><font style="font-family: Times New Roman;" size="3"><font size="2"><span style="font-family: Courier;"><font size="3"><span style="font-family: Times New Roman;"><span style="font-style: italic; font-weight: bold;">RMAN-06102: no channel to restore a backup or copy of log thread 2 seq 111965 lowscn 7246877796511</span> error, but that meant that it could not find the archive logs. After supplying the archive logs, the database opened up fine with the resetlogs option.</span></font><br><br><br></span></font></font>]]>
      
   </content>
</entry>
<entry>
   <title>10gR2 CRS case study: CRS would not start after reboot - stuck at /etc/init.d/init.cssd startcheck</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/05/10gr2_crs_case_study_crs_would.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.2109</id>
   
   <published>2008-05-19T17:25:52Z</published>
   <updated>2008-06-24T06:44:48Z</updated>
   
   <summary>PrefaceI had recently done a 10gR2 CRS installation on SuSE linux 9.3 (2.6.5.7-244 kernel) and noticed that after a reboot of the RAC nodes, the CRS would not come up! The CSS daemon was stuck at the /etc/init.d/init.cssd startcheck command:raclinux1:/tmp...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<h3 style="font-family: Times New Roman;"><font size="3">Preface</font></h3><font size="3"><span style="font-family: Times New Roman;">I had recently done a 10gR2 CRS installation on SuSE linux 9.3 (2.6.5.7-244 kernel) and noticed that after a reboot of the RAC nodes, the CRS would not come up! </span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">The CSS daemon was stuck at the /etc/init.d/init.cssd startcheck command:</span><br style="font-family: Times New Roman;"></font><font style="font-family: Times New Roman;" size="3"><br></font><font style="font-family: Times New Roman;" size="3">raclinux1:/tmp # ps -ef | grep css<br>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6929&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 0 13:56 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /bin/sh /etc/init.d/init.cssd fatal<br>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6960&nbsp; 6928&nbsp; 0 13:56 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /bin/sh /etc/init.d/init.cssd startcheck<br>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6963&nbsp; 6929&nbsp; 0 13:56 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /bin/sh /etc/init.d/init.cssd startcheck<br>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7064&nbsp; 6935&nbsp; 0 13:56 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /bin/sh /etc/init.d/init.cssd startcheck<br><br></font><h3 style="font-family: Times New Roman;"><font style="font-family: Times New Roman;" size="3">Debugging..</font></h3><font style="font-family: Times New Roman;" size="3">To debug this more, I went to the $ORA_CRS_HOME/log/&amp;lt;nodename&gt;/client and checked the latest files there:<br><br>raclinux1:/opt/oracle/product/10.2.0/crs/log/raclinux1/client # ls -ltr<br>total 435<br>-rw-r-----&nbsp; 1 root&nbsp;&nbsp; root 2561 May 18 23:20 ocrconfig_8870.log<br>-rw-r--r--&nbsp; 1 root&nbsp;&nbsp; root&nbsp; 195 May 18 23:22 clscfg_8924.log<br>-rw-r-----&nbsp; 1 root&nbsp;&nbsp; root&nbsp; 172 May 18 23:29 ocr_15307_3.log<br>-rw-r-----&nbsp; 1 root&nbsp;&nbsp; root&nbsp; 172 May 18 23:29 ocr_15319_3.log<br>-rw-r-----&nbsp; 1 root&nbsp;&nbsp; root&nbsp; 172 May 18 23:29 ocr_15447_3.log<br>...<br>...<br>...<br>drwxr-x---&nbsp; 2 oracle dba&nbsp; 3472 May 19 08:10 .<br>drwxr-xr-t&nbsp; 8 root&nbsp;&nbsp; dba&nbsp;&nbsp; 232 May 19 13:50 ..<br><span style="font-weight: bold;">-rw-r--r--&nbsp; 1 root&nbsp;&nbsp; root 2946 May 19 14:11 clsc.log</span><br style="font-weight: bold;"><span style="font-weight: bold;">-rw-r--r--&nbsp; 1 root&nbsp;&nbsp; root 7702 May 19 14:11 css.log</span><br><br>I did a more of the clsc.log &amp; css.log and saw the following errors:<br><br>$ more clsc.log<br>...<br>...<br>...<br>2008-05-19 14:11:29.912: [ COMMCRS][1094672672]clsc_connect: (0x81c74b8) no listener at (ADDRESS=(PROTOCOL=IPC)(KEY=CRSD_UI_SOCKET))<br><br>2008-05-19 14:11:31.582: [ COMMCRS][1094672672]clsc_connect: (0x817e3f0) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=SYSTEM.evm.acceptor.auth))<br><br>2008-05-19 14:11:31.583: [ default][1094672672]Terminating clsd session<br><br>$ more css.log<br>...<br>...<br>...<br>2008-05-19 02:42:48.307: [&nbsp; OCROSD][1094672672]utopen:7:failed to open OCR file/disk /var/opt/oracle/ocr1 /var/opt/oracle/oc<br>r2, errno=19, os err string=No such device<br>2008-05-19 02:42:48.308: [&nbsp; OCRRAW][1094672672]proprinit: Could not open raw device<br>2008-05-19 02:42:48.308: [ default][1094672672]a_init:7!: Backend init unsuccessful : [26]<br>2008-05-19 02:42:48.308: [ CSSCLNT][1094672672]clsssinit: Unable to access OCR device in OCR init.<br><br>2008-05-19 02:43:41.982: [&nbsp; OCROSD][1094672672]utopen:7:failed to open OCR file/disk /var/opt/oracle/ocr1 /var/opt/oracle/oc<br>r2, errno=19, os err string=No such device<br>2008-05-19 02:43:41.983: [&nbsp; OCRRAW][1094672672]proprinit: Could not open raw device<br>2008-05-19 02:43:41.983: [ default][1094672672]a_init:7!: Backend init unsuccessful : [26]<br>2008-05-19 02:43:41.983: [ CSSCLNT][1094672672]clsssinit: Unable to access OCR device in OCR init.<br><br>2008-05-19 02:46:40.204: [ CSSCLNT][1094672672]clsssInitNative: connect failed, rc 9<br><br>2008-05-19 14:11:28.217: [ CSSCLNT][1094672672]clsssInitNative: connect failed, rc 9<br><br>2008-05-19 14:11:37.186: [ CSSCLNT][1094672672]clsssInitNative: connect failed, rc 9<br></font><font size="3"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">So it was pointing towards the OCR being not available, as could be verified by the /tmp/crsctl.&amp;lt;PID&gt; files too:</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">raclinux1:/tmp # ls -ltr crsctl*</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 02:44 crsctl.6826</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 02:44 crsctl.6679</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 02:44 crsctl.6673</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 02:49 crsctl.7784</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 02:49 crsctl.7890</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 02:49 crsctl.7794</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 13:55 crsctl.7034</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 13:55 crsctl.6886</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 13:55 crsctl.6883</span><br style="font-family: Times New Roman;"><span style="font-weight: bold; font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 14:18 crsctl.6960</span><br style="font-weight: bold; font-family: Times New Roman;"><span style="font-weight: bold; font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 14:18 crsctl.7064</span><br style="font-weight: bold; font-family: Times New Roman;"><span style="font-weight: bold; font-family: Times New Roman;">-rw-r--r--&nbsp; 1 oracle dba 148 May 19 14:18 crsctl.6963</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">raclinux1:/tmp # more crsctl.6963</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">OCR initialization failed accessing OCR device: PROC-26: Error while accessing the physical storage Operating System error [Permission denied] [13]</span><br style="font-family: Times New Roman;"></font><h3 style="font-family: Times New Roman;"><font size="3">Permission issue!</font></h3><font size="3"><span style="font-family: Times New Roman;">Duh! So it was a permission issue on the OCR disk (at this moment), which could expand into a permissions issue for Voting and asm disks later:</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">raclinux1:/tmp # ls -ltr /dev/raw/raw*</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162,&nbsp; 9 Nov 18&nbsp; 2005 /dev/raw/raw9</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162,&nbsp; 8 Nov 18&nbsp; 2005 /dev/raw/raw8</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162,&nbsp; 7 Nov 18&nbsp; 2005 /dev/raw/raw7</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162,&nbsp; 6 Nov 18&nbsp; 2005 /dev/raw/raw6</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162,&nbsp; 5 Nov 18&nbsp; 2005 /dev/raw/raw5</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162,&nbsp; 4 Nov 18&nbsp; 2005 /dev/raw/raw4</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162,&nbsp; 3 Nov 18&nbsp; 2005 /dev/raw/raw3</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162,&nbsp; 2 Nov 18&nbsp; 2005 /dev/raw/raw2</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162, 15 Nov 18&nbsp; 2005 /dev/raw/raw15</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162, 14 Nov 18&nbsp; 2005 /dev/raw/raw14</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162, 13 Nov 18&nbsp; 2005 /dev/raw/raw13</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162, 12 Nov 18&nbsp; 2005 /dev/raw/raw12</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162, 11 Nov 18&nbsp; 2005 /dev/raw/raw11</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162, 10 Nov 18&nbsp; 2005 /dev/raw/raw10</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">crw-rw-r--&nbsp; 1 root disk 162,&nbsp; 1 Nov 18&nbsp; 2005 /dev/raw/raw1</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">I enabled read and write permission for the raw devices using the # chmod +rw /dev/raw/raw* devices. but even after that the latest /tmp/crsctl.&amp;lt;PID&gt; files being generated were showing this message:</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">raclinux1:/tmp # more crsctl.6960</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">Failure -2 opening file handle for (vote1)</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">Failure 1 checking the CSS voting disk 'vote1'.</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">Failure -2 opening file handle for (vote2)</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">Failure 1 checking the CSS voting disk 'vote2'.</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">Failure -2 opening file handle for (vote3)</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">Failure 1 checking the CSS voting disk 'vote3'.</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">Not able to read adequate number of voting disks</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">At this point, I just chowned /dev/raw/raw* to oracle:dba like this:</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">raclinux1:/tmp # chown oracle:dba /dev/raw/raw*</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">After 1-2 mins, the CSS came up:</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">raclinux1:/tmp # ps -ef | grep css</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6929&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 0 13:56 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /bin/sh /etc/init.d/init.cssd fatal</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">root&nbsp;&nbsp;&nbsp;&nbsp; 10900&nbsp; 6929&nbsp; 0 14:39 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /bin/sh /etc/init.d/init.cssd daemon</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">oracle&nbsp;&nbsp; 10980 10900&nbsp; 0 14:40 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /bin/su -l oracle -c /bin/sh -c 'ulimit -c unlimited; cd /opt/oracle/product/10.2.0/crs/log/raclinux1/cssd;&nbsp; /opt/oracle/product/10.2.0/crs/bin/ocssd&nbsp; || exit $?'</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">oracle&nbsp;&nbsp; 10981 10980&nbsp; 0 14:40 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /bin/sh -c ulimit -c unlimited; cd /opt/oracle/product/10.2.0/crs/log/raclinux1/cssd;&nbsp; /opt/oracle/product/10.2.0/crs/bin/ocssd&nbsp; || exit $?</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">oracle&nbsp;&nbsp; 11007 10981&nbsp; 2 14:40 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /opt/oracle/product/10.2.0/crs/bin/ocssd.bin</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">root&nbsp;&nbsp;&nbsp;&nbsp; 12013&nbsp; 7414&nbsp; 0 14:40 pts/2&nbsp;&nbsp;&nbsp; 00:00:00 grep css</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">raclinux1:/tmp #</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">The CRS components came up fine automatically:</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">raclinux1:/opt/oracle/product/10.2.0/crs/bin # ./crsctl check crs</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">CSS appears healthy</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">CRS appears healthy</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">EVM appears healthy</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">The ASM and RAC instances also came up fine:</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">raclinux1:/opt/oracle/product/10.2.0/crs/bin # ps -ef |grep smon</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">oracle&nbsp;&nbsp; 12257&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 0 14:41 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 asm_smon_+ASM1</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">oracle&nbsp;&nbsp; 13100&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 0 14:41 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:02 ora_smon_o10g1</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">root&nbsp;&nbsp;&nbsp;&nbsp; 32282&nbsp; 7414&nbsp; 0 14:55 pts/2&nbsp;&nbsp;&nbsp; 00:00:00 grep smon</span><br style="font-family: Times New Roman;"></font><h3 style="font-family: Times New Roman;"><font size="3">For the long term..</font></h3><font size="3"><span style="font-family: Times New Roman;">To make this change permanent, I put it in  /etc/init.d/boot.local file, along with the modprobe hangcheck-timer&nbsp; command:</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">raclinux1:/opt/oracle/product/10.2.0/crs/bin # more /etc/init.d/boot.local</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">#! /bin/sh</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">#</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;"># Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.&nbsp; All rights reserved.</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">#</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;"># Author: Werner Fink &amp;lt;werner@suse.de&gt;, 1996</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Burchard Steinbild, 1996</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">#</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;"># /etc/init.d/boot.local</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">#</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;"># script with local commands to be executed from init on system startup</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">#</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;"># Here you should add things, that should happen directly after booting</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;"># before we're going to the first run level.</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">#</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">chown oracle:dba /dev/raw/raw*</span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"></font><h3 style="font-family: Times New Roman;"><font size="3">Conclusion</font></h3><font size="3"><span style="font-family: Times New Roman;">If simple things are permissions are not correct on the OCR devices, it can hold down the CRS daemons and the ASM/DB instances. It may be needed to put workarounds in /etc/init.d/boot.local for getting around the situation.</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"></font>]]>
      
   </content>
</entry>
<entry>
   <title>Considerations for virtual IP setup before doing the 10gR2 CRS install</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/05/considerations_for_virtual_ip.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.2110</id>
   
   <published>2008-05-01T22:52:01Z</published>
   <updated>2008-07-01T19:01:58Z</updated>
   
   <summary>Preface Many a times, simple things can bite you when you are planning something really important, like a jumping the gun for virtual IP installing 10gR2 CRS. The CRS installation assumes that the virtual IP hostname and IP information should...</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
         <category term="unix" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<h2>Preface</h2>  <br />Many a times, simple things can bite you when you are planning something really important, like a jumping the gun for virtual IP installing 10gR2 CRS.  <br />  <br />The CRS installation assumes that the virtual IP hostname and IP information should be either in the DNS or in local /etc/hosts file ONLY.&#160; It <span style="font-weight: bold; text-decoration: underline">does not</span> assume that the virtual IP is already tied up to a network interface on the RAC nodes.   <br />  <h2>A cryptic error...</h2> If the virtual IP is already attached to network interface during the CRS install, it throws a cryptc error, saying &quot;<span style="font-weight: bold"> <span style="color: rgb(255,0,0)">the virtual interface seems to be already assigned to another system in the network </span>&quot;, </span>which can be pretty misleading. We faced this situation recently during one of our upgrades:  <br />  <br /><img height="510" alt="10gRAC error1.jpg: " src="http://blogs.oracle.com/gauravVerma/images/10gRACerror1.jpg" width="659" border="0" />,  <br />  <h2>The problem...</h2> The problem was that the racprod1-vip virtual hostname was already associated with a network interface alias lan1:801:  <br />  <br /><img height="460" alt="10gRAC error2.jpg: " src="http://blogs.oracle.com/gauravVerma/images/10gRACerror2.jpg" width="663" border="0" />  <br />  <br style="font-style: italic" /><span style="font-style: italic">Please note: The hostnames, domain and IPs mentioned in this diagram are completely fictional and have been fudged from their original values. The current representation is enough for the sake of illustration.</span>  <br />  <h2>The solution...</h2> Needless to say, the solution was to dis-associate the racprod1-vip with lan1:801, after which the 10gR2 CRS installation proceeded fine.  <br />  <h2>Conclusion..</h2> Many people do not appreciate the fineties involved in CRS installation, especially around virtual IP. The actual association of virtual IP hostname and network interface is done by the $ORA_CRS_HOME/bin/vipca script, which is automatically run as part of $ORA_CRS_HOME/root.sh  ]]>
      
   </content>
</entry>
<entry>
   <title>crsctl start crs does not work in 10gR2</title>
   <link rel="alternate" type="text/html" href="http://blogs.oracle.com/gverma/2008/04/crsctl_start_crs_does_not_work.html" />
   <id>tag:blogs.oracle.com,2008:/gverma//49.2111</id>
   
   <published>2008-04-17T21:33:30Z</published>
   <updated>2008-06-24T06:44:48Z</updated>
   
   <summary>PrefaceNowadays, we are doing a 10g upgrade for one of our clients and hit upon the idea of pre-staging the 10gR2 CRS + DB technology stack on their RAC servers that are running 9iR2 RAC on HP service gaurd already....</summary>
   <author>
      <name>gaurav.verma</name>
      <uri>gaurav.verma@oracle.com</uri>
   </author>
         <category term="Miscellenous" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="en" xml:base="http://blogs.oracle.com/gverma/">
      <![CDATA[<h3>Preface<br></h3><pre wrap=""><font size="4"><span style="font-family: Times New Roman;">Nowadays, we are doing a 10g upgrade for  one of our clients and hit upon the idea of pre-staging the 10gR2 CRS + DB technology stack on their RAC servers that are running 9iR2 RAC on HP service gaurd already. This is nothing but a downtime reduction technique, that saved about 5-6 hours. Thankfully, the idea worked, but not before some excitement.</span></font><br></pre><h3>Suprise, surprise..</h3><pre wrap=""><font size="4"><span style="font-family: Times New Roman;">A week after doing the 10gR2 CRS + DB installation on the pre-production servers, when we were starting the real Database upgrade, we had to bring up the 10gR2 CRS.</span><br style="font-family: Times New Roman;"><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">I was surprised to see that the 10gR2 CRS services would not come up. We had tried the following three things:<br><br>1) Uncommenting the crs, css, and evm daemons in /etc/inittab<br>2) Issued /etc/init.d/init.crs enable<br></span></font><font size="4"><span style="font-family: Times New Roman;">3) Issued /etc/init.d/init.crs start<br></span></font><font size="4"><span style="font-family: Times New Roman;">4) Isused $ORA_CRS_HOME/bin/crsctl start crs</span></font><br style="font-family: Times New Roman;"><font size="4"><span style="font-family: Times New Roman;"></span><br style="font-family: Times New Roman;"><span style="font-family: Times New Roman;">I was pretty aghast. Apart from thinking of logging a tar, on searching metalink, we came across a new command that I had not tried in 10gR1.</span></font><br><br>raclinux1:/opt/oracle/product/10.2.0/CRS/bin # ./crsctl start crs<br>Attempting to start CRS stack<br>The CRS stack will be started shortly
<br>raclinux1:/opt/oracle/product/10.2.0/CRS/bin # ./crsctl check crs<br>Failure 1 contacting CSS daemon<br>Cannot communicate with CRS<br>Cannot communicate with EVM<br><br>raclinux1:/opt/oracle/product/10.2.0/CRS/bin # ./crsctl check crs<br>Failure 1 contacting CSS daemon<br>Cannot communicate with CRS<br>Cannot communicate with EVM<br><br>raclinux1:/opt/oracle/product/10.2.0/CRS/bin # ./srvctl status nodeapps -n raclinux1<br>PRKH-1010 : Unable to communicate with CRS services.<br>  [Communications Error(Native: prsr_initCLSS:[3])]<br><br>raclinux1:/opt/oracle/product/10.2.0/CRS/bin # ./srvctl start nodeapps -n raclinux1<br>PRKH-1010 : Unable to communicate with CRS services.<br>  [Communications Error(Native: prsr_initCLSS:[3])]<br><br>raclinux1:/opt/oracle/product/10.2.0/CRS/bin # ./srvctl status nodeapps -n raclinux1<br>PRKH-1010 : Unable to communicate with CRS services.<br>  [Communications Error(Native: prsr_initCLSS:[3])]<br><br>raclinux1:/opt/oracle/product/10.2.0/CRS/bin # ./crsctl check crs<br>Failure 1 contacting CSS daemon<br>Cannot communicate with CRS<br>Cannot communicate with EVM<br></pre><h3>Redemption</h3><pre wrap=""><font size="4"><span style="font-family: Times New Roman;">This is then when we tried the crsctl start resources and the CRS actually came up:</span></font><br><br>raclinux1:/opt/oracle/product/10.2.0/CRS/bin # ./crsctl start resources<br>Starting resources.<br>Successfully started CRS resources<br><br>raclinux1:/opt/oracle/product/10.2.0/CRS/bin # ./crsctl check crs<br>CSS appears healthy<br>CRS appears healthy<br>EVM appears healthy<br></pre><h4><font size="4">Conclusion</font><br></h4><pre wrap=""><font size="4"><span style="font-family: Times New Roman;">At this point, I am not sure why the behaviour changed in 10gR2, whether it was intentional or un-intentional or whether this is a bug. But I am glad that we have a workaround. Everyday is a new learning.</span></font><br><br><br></pre>]]>
      
   </content>
</entry>

</feed>
