<!-- $Header: emdb/sysman/admin/metadata/rac_database.xml /st_emdbsa_11.2/18 2009/06/16 03:55:24 mperugu Exp $
   MODIFIED    (MM/DD/YY)
      mperugu   06/12/09 - add metrics textIndexLogContent and
                           textIndexLogRemover
      sksantha  06/11/09 - increment metadata version
      pardutta  04/01/09 - Remove dynamic property for server pool change
      shasingh  03/24/09 - added config metric instance_names for evaluation db
                           instance list
      rsamaved  03/17/09 - fix qos query
      rsamaved  03/05/09 - fix psm metric
      sksantha  02/27/09 - To add wlm_status_metric
      rsamaved  12/04/08 - change DBVersion optional to false
      rsamaved  11/30/08 - remove timestamp from wlm metric
      shasingh  11/23/08 - change WLM to QoS
      rsamaved  10/24/08 - add validif for wlm metric
      rsamaved  10/20/08 - change property for rac_dyna_props
      prjaiswa  08/19/08 - bug 6733346
      anosriva  07/06/08 - Added new Metrics for streams and AQ. Changing the
                           META_VER
      rsamaved  05/31/08 - 
      pboopath  04/27/08 - change wait_bottleneck sample time
      ajdsouza  04/17/08 - remove dbGuid from OracleClusterDatabase
      rsamaved  03/13/08 - change max_cpu to cpu_cores
      shasingh  05/08/08 - Added new dynamic property DatabaseType
      dchakumk  03/10/08 - XbranchMerge dchakumk_6752_xbmsrc from
      sresrini  03/06/08 - update version
      ajdsouza  02/04/08 - sql for openMode for OracleClusterDatabase 
      yma       01/31/08 - bug 6522269 
      ajdsouza  12/03/07 - add cmdb collection for OracleClusterDatabase
      jsoule    07/06/07 - add AdrBase/AdrHome properties
      kdas      06/08/07 - XbranchMerge kdas_bug-5897821 from st_emdbsa_11.1
      rsamaved  05/23/07 - XbranchMerge rsamaved_bug-5933072 from
                           st_emdbsa_11.1
      gapadman  01/02/08 - Add wlm metrics
      kdas      04/02/07 - fixes for 5897821
      loliu     04/03/07 - Added AdrHome and AdrBase properties
      rsamaved  03/22/07 - fix cpu count
      rsamaved  02/18/07 - add incident_meter metric
      vkothand  01/30/07 - Remove CLUSTERLIBRARY
      kramarat  01/12/07 - XbranchMerge kramarat_cluster_db_services_fix from
                           main
      sadattaw  01/10/07 - modifying service_performance metric to include cpu
                           load %
      kdas      01/03/07 - fix for 5726782
      sadattaw  11/16/06 - 
      vkothand  12/04/06 - Introducer CLUSTERLIBRARY
      jsoule    09/18/06 - add new hanganalyze metric
      kdas      09/21/06 - fix for ADDM metric
      sadattaw  10/04/06 - add service performance metrics
      jsoule    08/29/06 - add 11gR1 version
      gapadman  08/21/06 - bug5415082
      kdas      04/26/06 - support Global aDDM 
      jsoule    03/13/06 - add 10.2.0.3 version support 
      ysun      09/28/05 - backward compatibility
      ysun      09/14/05 - update the version
      ysun      08/09/05 - remove unneccessary binding
      ysun      07/22/05 - include more dyn props using reference
      ysun      07/11/05 - add assoctarget info
      dsukhwal  05/23/05 - add ESA dynamic properties 
      ysun      03/18/05 - add DBVersion to rac_database
      ysun      02/14/05 - seperate using include 
      mnihalan  02/04/05 - Exclude TSMSYS 
      ysun      02/01/05 - update cardinality
      xshen     01/17/05 - modifying config metrics 
      rreilly   01/18/05 - add failed login metric for audit 
      pkantawa  12/15/04 - Fix CredentialInfo to add display info 
      gallison  12/01/04 - Fix RAC metric 
      rreilly   11/18/04 - move fix for bug 3950666 into emdbgc branch 
      gallison  11/13/04 - Change PDL to RNA 
      rreilly   11/11/04 - add tbspAllocation metric 
      rreilly   11/11/04 - bug 3377171 Invalid Objects - filter out sys 
                           invalid objects 
      rreilly   11/04/04 - bug 3978294 fix db_tablespaces collection 
      gallison  10/29/04 - DG Support 
      ysun      10/14/04 - update alias 
      ysun      10/08/04 - across target reference
      dkjain    10/08/04 - ESA 10gR2 impl 
      pbantis   10/01/04 - Add more HA collections. 
      ysun      10/01/04 - change resource bundle
      ysun      09/21/04 - host metrics
      ysun      09/14/04 - add database level active sessions
      pbantis   09/15/04 - Update ha_backup. 
      ysun      09/03/04 - 3851142
      rreilly   08/12/04 - bug 3581777 3377171 
      rreilly   08/12/04 - bug 32646676 remove Invalid Objects metric 
      rreilly   07/28/04 - enh 3062024 tblspc free space (mb) 
      ajdsouza  07/22/04 - Changed the db_datafiles, db_redologs, db_controlfiles to oslinetoken executions
      rreilly   07/16/04 - bug 3548431 db_recSegmentSettings_sysseg perf fix 
      ychan     07/09/04 - Remove 10gBeta 
      jstone    06/11/04 - composite key for db_FeatureUsage (3669601) 
      jochen    05/26/04 - Add 10gR2 
      sbadrina  05/24/04 - comment out cfsize for 10gR1
      sbadrina  05/06/04 - add used tbsp size col and cfsize metric 
      jochen    04/30/04 - Add minSegSize to wastedSpace
      pbantis   04/05/04 - Update ha_init_params metric 
      xshen     02/18/04 - fix bug 3451403 
      hmulling  01/07/04 - do not report default pwd of expired accounts 
      abodge    12/29/03 - Fix JAVASNM ref in invalid objects query 
      abodge    11/13/03 - Add KEYS_ONLY to invalidObjects policy metric 
      abodge    11/06/03 - Perf improvement to recseq query 
      abodge    11/03/03 - Add Storage, Objects metrics to RAC 
      xshen     11/04/03 - split db_datafiles query to hidden metrics 
      ysun      11/03/03 - update statistics_level
      ysun      10/31/03 - add statistics level
      jsoule    10/30/03 - revert Recovery_Area.Free_Space one last time 
      jochen    10/27/03 - Add wastedSpace 
      pbantis   10/24/03 - Add log_mode column to ha_info 
      gallison  10/19/03 - Add DataGuardStatus to metadata (3202444) 
      jaysmith  10/16/03 - add Role property to PushDescriptors 
      jsoule    10/14/03 - remove key attribute from recovery area 
      kmckeen   10/14/03 - Bug 3191581 - update problemTbsp 10i SQL query to 
                           use new view 
      ysun      10/13/03 - fix ilint srgs
      jsoule    10/10/03 - 
      hmulling  10/10/03 - undo removal of validif because of oci bug 
      jsoule    10/04/03 - support beta2 and release 
      ysun      10/08/03 - add UserBlock
      hmulling2 10/03/03 - remove ValidIf from testPrivileges 
      gallison  09/30/03 - Add dataguardstatus dynprop 
      ysun      10/03/03 - remove unecessary preferre column
      eujang    09/22/03 - ESM integration 
      kmckeen   09/17/03 - Bug 3115742 - fix performance of 10i problemTbsp 
      skini     09/02/03 - Add credential info 
      jsoule    08/27/03 - add Recovery_Area data, problemTbsp reversion
      jaysmith  08/21/03 - add KeyColumn property to AQ PushDescriptor 
      kmckeen   08/20/03 - Add tbspc space-used metric for 10i db dictionary 
                           mngd tbspc 
      ysun      08/13/03 - NLS handling
      ysun      08/11/03 - add database level server generated alerts
-->
<!DOCTYPE TargetMetadata SYSTEM "../dtds/TargetMetadata.dtd" [
<!ENTITY database_metrics SYSTEM "./database.xmlp">
<!ENTITY credentials SYSTEM "./creds.xmlp">
<!ENTITY dynamic_properties SYSTEM "./dyn_props.xmlp">
<!ENTITY esa_db_dynamic_properties SYSTEM "./esa_database_dyn_props.xmlp">
]>

<TargetMetadata META_VER="5.4" TYPE="rac_database" CATEGORY_PROPERTIES="VersionCategory;DataGuardStatus;MetricScope;OTSchemaExists" 
 RESOURCE_BUNDLE_PACKAGE="oracle.sysman.db.rsc">
  <Display>
    <Label NLSID="rac_database_name">Cluster Database</Label>
  </Display>

 <AssocTarget ASSOC_TARGET_TYPE="oracle_database" ASSOCIATION_NAME="rac_instance" COMPUTE_RULE="MEMBER" />

  <MonitoringMode MEDIATOR="OMSMediated">
  </MonitoringMode>

  <AltSkipCondition METRIC="Response" COLUMN="Status" ASSOC_TARGET="rac_instance">
  </AltSkipCondition>

<!--
  <MonitoringMode MEDIATOR="AgentMediated">
   <ValidIf>
     <CategoryProp NAME="VersionCategory" CHOICES="10gR1;10gR2;10gR203;11gR1;11gR2"/>
   </ValidIf>
  </MonitoringMode>
-->

    &database_metrics;

  <!--
    ======================================================================
    == Hang Analyze Metric (11g RAC database)
    ======================================================================
    -->
  <Metric NAME="session_wait_chains" TYPE="TABLE" USAGE_TYPE="HIDDEN">
    <ValidIf>
      <CategoryProp NAME="VersionCategory" CHOICES="11gR1;11gR2"/>
    </ValidIf>
    <TableDescriptor>
      <ColumnDescriptor NAME="total_sessions"/>
      <ColumnDescriptor NAME="chain_graph" TYPE="STRING"/>
    </TableDescriptor>
    <QueryDescriptor FETCHLET_ID="OSLineToken">
      <Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
      <Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
      <Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
      <Property NAME="Port" SCOPE="INSTANCE">Port</Property>
      <Property NAME="SID" SCOPE="INSTANCE">SID</Property>
      <Property NAME="ENVEM_TARGET_ADDRESS" SCOPE="GLOBAL">
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=%MachineName%)(Port=%Port%))(CONNECT_DATA=(SID=%SID%)))
      </Property>
      <Property NAME="OracleHome" SCOPE="INSTANCE">OracleHome</Property>
      <Property NAME="STDINEM_SYSDBA_USERNAME" SCOPE="USER" OPTIONAL="TRUE">SYSDBAUserName</Property>
      <Property NAME="STDINEM_SYSDBA_PASSWORD" SCOPE="USER" OPTIONAL="TRUE">SYSDBAPassword</Property>
      <Property NAME="command" SCOPE="GLOBAL">
%perlBin%/perl %scriptsDir%/db/waitChains.pl %OracleHome%
      </Property>
      <Property NAME="startsWith" SCOPE="GLOBAL">em_result=</Property>
      <Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
    </QueryDescriptor>
  </Metric>

  <!--
  ======================================================================
  == Category:         User Block
  == Collection Level: Minimum
  == Purpose:          Alerts
  ======================================================================
    -->
	<Metric NAME="UserBlock" TYPE="TABLE">
		<Display>
			<Label NLSID="userBlock">User Block</Label>
		</Display>
		<TableDescriptor>
			<ColumnDescriptor NAME="sid" TYPE="STRING" IS_KEY="TRUE">
				<Display>
					<Label NLSID="userBlock_blocking_sid">Instance Name - Blocking Session ID</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="count" TYPE="NUMBER" IS_KEY="FALSE">
				<Display>
					<Label NLSID="userBlock_count">Blocking Session Count</Label>
				</Display>
			</ColumnDescriptor>
		</TableDescriptor>
		<QueryDescriptor FETCHLET_ID="SQL">
			<Property NAME="STATEMENT" SCOPE="GLOBAL"><![CDATA[
            SELECT blocking_sid, num_blocked 
            FROM ( SELECT blocking_sid, SUM(num_blocked) num_blocked 
            FROM ( SELECT l.id1, l.id2,
                          MAX(DECODE(l.block, 1, i.instance_name||'-'||l.sid, 
                          2, i.instance_name||'-'||l.sid, 0 )) blocking_sid,
                          SUM(DECODE(l.request, 0, 0, 1 )) num_blocked
                    FROM gv$lock l, gv$instance i
                    WHERE ( l.block!= 0 OR l.request > 0 ) AND 
                            l.inst_id = i.inst_id 
                            GROUP BY l.id1, l.id2)
            GROUP BY blocking_sid 
            ORDER BY num_blocked DESC) 
            WHERE num_blocked != 0 
            AND blocking_sid != '0' 
]]></Property>
			<Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
			<Property NAME="Port" SCOPE="INSTANCE">Port</Property>
			<Property NAME="SID" SCOPE="INSTANCE">SID</Property>
			<Property NAME="UserName" SCOPE="INSTANCE">UserName</Property>
			<Property NAME="password" SCOPE="INSTANCE">password</Property>
			<Property NAME="Role" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
		</QueryDescriptor>
	</Metric>

  <!--
  ======================================================================
  == Category:         Cardinality
  == Collection Level: Minimum
  == Purpose:          Alerts
  ======================================================================
    -->
  <Metric NAME="cardinality" TYPE="TABLE">
    <Display>
      <Label NLSID="cardinality">Database Cardinality</Label>
    </Display>
    <TableDescriptor>
      <ColumnDescriptor NAME="instance_count" TYPE="NUMBER" IS_KEY="FALSE">
        <Display>
          <Label NLSID="cardinality_active_instance_count">Open Instance Count</Label>
        </Display>
      </ColumnDescriptor>
       <ColumnDescriptor NAME="total_count" TYPE="NUMBER" IS_KEY="FALSE">
        <Display>
          <Label NLSID="cardinality_total_instance_count">Total Instance Count</Label>
        </Display>
      </ColumnDescriptor>
    </TableDescriptor>
    <QueryDescriptor FETCHLET_ID="SQL">
      <Property NAME="STATEMENT" SCOPE="GLOBAL">
<![CDATA[
SELECT up.count, total.total FROM 
(SELECT COUNT(*) count
  FROM gv$instance WHERE status='OPEN') up, 
(select count(*) total from v$thread where enabled = 'PUBLIC') total
]]>
      </Property>
      <Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
      <Property NAME="Port" SCOPE="INSTANCE">Port</Property>
      <Property NAME="SID" SCOPE="INSTANCE">SID</Property>
      <Property NAME="UserName" SCOPE="INSTANCE">UserName</Property>
      <Property NAME="password" SCOPE="INSTANCE">password</Property>
      <Property NAME="Role" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
    </QueryDescriptor>
  </Metric>



  <!--
  ======================================================================
  == Category:         Suspended Session
  == Collection Level: Recommended
  == Purpose:          Alerts
  ======================================================================
    -->
  <Metric NAME="suspended_session" TYPE="TABLE">
     <ValidIf>
      <CategoryProp NAME="VersionCategory" CHOICES="9i;9iR2"/>
    </ValidIf>
    <Display>
      <Label NLSID="suspended_session">Suspended Session</Label>
    </Display>
    <TableDescriptor>
      <ColumnDescriptor NAME="count" TYPE="NUMBER" IS_KEY="FALSE">
        <Display>
          <Label NLSID="suspended_session_count">Suspended Session Count</Label>
        </Display>
      </ColumnDescriptor>
    </TableDescriptor>
    <QueryDescriptor FETCHLET_ID="SQL">
      <Property NAME="STATEMENT" SCOPE="GLOBAL">
<![CDATA[
SELECT COUNT(*)
  FROM gv$resumable
 WHERE status = 'SUSPENDED'
   AND enabled = 'YES'
]]>
      </Property>
      <Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
      <Property NAME="Port" SCOPE="INSTANCE">Port</Property>
      <Property NAME="SID" SCOPE="INSTANCE">SID</Property>
      <Property NAME="UserName" SCOPE="INSTANCE">UserName</Property>
      <Property NAME="password" SCOPE="INSTANCE">password</Property>
      <Property NAME="Role" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
    </QueryDescriptor>
  </Metric>



 <!--
  ======================================================================
  == Category:         Wait Bottlenecks 
  == Collection Level: Minimum
  == Purpose:          Alerts, Trending
  ======================================================================
    -->
  <Metric NAME="wait_bottlenecks" TYPE="TABLE">
    <ValidIf>
       <CategoryProp NAME="VersionCategory" CHOICES="10gR1;10gR2;10gR203;11gR1;11gR2"/>
    </ValidIf>
    <Display>
      <Label NLSID="wait_bottlenecks">Database Wait Bottlenecks</Label>
    </Display>

    <TableDescriptor>

      <!-- columns provided by the query descriptor's fetchlet call -->
      <!-- Note: The order of these columns must match the output ADT. -->
      <!--       The field name matches the column name only for clarity. -->
      <ColumnDescriptor NAME="time" TYPE="STRING" IS_TIMESTAMP="TRUE" TRANSIENT="TRUE" HELP="NO_HELP">
        <Display>
          <Label NLSID="time_series_time">Time</Label>
        </Display>
      </ColumnDescriptor>
      <ColumnDescriptor NAME="user_wait_time_pct" TYPE="NUMBER">
        <Display>
          <Label NLSID="wait_bottlenecks_user_wait_time_pct">Wait Time (%)</Label>
          <ShortName NLSID="wait_bottlenecks_user_wait_time_pct_short">Wait Time %</ShortName>
        </Display>
      </ColumnDescriptor>
      <ColumnDescriptor NAME="db_time_users" TYPE="NUMBER"
                        TRANSIENT="TRUE" HELP="NO_HELP" />
      <ColumnDescriptor NAME="db_cpu_users" TYPE="NUMBER"
                        TRANSIENT="TRUE" HELP="NO_HELP" />
      <ColumnDescriptor NAME="host_cpu_usage_pct" TYPE="NUMBER">
        <Display>
          <Label NLSID="wait_bottlenecks_host_cpu_usage_pct">Host CPU Utilization (%)</Label>
        </Display>
      </ColumnDescriptor>
      <ColumnDescriptor NAME="userio_users" TYPE="NUMBER"
                        TRANSIENT="TRUE" HELP="NO_HELP" />
      <ColumnDescriptor NAME="load_average" TYPE="NUMBER">
        <Display>
          <Label NLSID="wait_bottlenecks_load_average">Load Average</Label>
        </Display>                      
      </ColumnDescriptor>
        <ColumnDescriptor NAME="max_cpu_cnt" TYPE="NUMBER">
        <Display>
             <Label NLSID="wait_bottlenecks_max_cpu">Maximum CPU</Label>
        </Display>
       </ColumnDescriptor>
      <!-- columns based on deltas or other computations from counters -->

      <ColumnDescriptor NAME="user_cpu_time_cnt" TYPE="NUMBER"
                        COMPUTE_EXPR="0 > db_cpu_users ? 1/0 : (db_cpu_users > max_cpu_cnt ? 1/0 : db_cpu_users)">
        <Display>
          <Label NLSID="wait_bottlenecks_user_cpu_time_cnt">Active Sessions Using CPU</Label>
          <ShortName NLSID="wait_bottlenecks_user_cpu_time_cnt_short">Sessions: CPU</ShortName>
        </Display>
      </ColumnDescriptor>
      <ColumnDescriptor NAME="userio_wait_cnt" TYPE="NUMBER"
                        COMPUTE_EXPR="0 > userio_users ? 1/0 : userio_users">
        <Display>
          <Label NLSID="wait_bottlenecks_userio_wait_cnt">Active Sessions Waiting: I/O</Label>
          <ShortName NLSID="wait_bottlenecks_userio_wait_cnt_short">Sessions: I/O</ShortName>
        </Display>
      </ColumnDescriptor>
      <ColumnDescriptor NAME="active_sessions" TYPE="NUMBER"
                        COMPUTE_EXPR="db_cpu_users + userio_users > db_time_users ? 1/0 : db_time_users"
                        TRANSIENT="TRUE">
        <Display>
          <Label NLSID="wait_bottlenecks_active_sessions">Active Sessions</Label>
        </Display>
      </ColumnDescriptor>
      <ColumnDescriptor NAME="other_wait_cnt" TYPE="NUMBER"
                        COMPUTE_EXPR="active_sessions - user_cpu_time_cnt - userio_wait_cnt">
        <Display>
          <Label NLSID="wait_bottlenecks_other_wait_cnt">Active Sessions Waiting: Other</Label>
          <ShortName NLSID="wait_bottlenecks_other_wait_cnt_short">Sessions: Other</ShortName>
        </Display>
      </ColumnDescriptor>
      <ColumnDescriptor NAME="avg_user_cpu_time_pct" TYPE="NUMBER"
                        COMPUTE_EXPR="100*user_cpu_time_cnt/max_cpu_cnt">
        <Display>
          <Label NLSID="wait_bottlenecks_avg_user_cpu_time_pct">Average Database CPU (%)</Label>
          <ShortName NLSID="wait_bottlenecks_avg_user_cpu_time_pct_short">Database CPU (%)</ShortName>
        </Display>
      </ColumnDescriptor>

    </TableDescriptor>

    <QueryDescriptor FETCHLET_ID="SQL">
      <ValidIf>
        <CategoryProp NAME="VersionCategory" CHOICES="10gR1;10gR2;10gR203;11gR1;11gR2"/> 
      </ValidIf>
      <Property NAME="STATEMENT" SCOPE="GLOBAL">
      <![CDATA[
        SELECT TO_CHAR(CAST(md.end_time AS TIMESTAMP) AT TIME ZONE 'GMT',
                       'YYYY-MM-DD HH24:MI:SS TZD') time,
               md.user_wait_time_pct,
               md.db_time_ps db_time_users,
               md.cpu_time_ps db_cpu_users,
               NVL(md.host_cpu_usage_pct,
                                  0)/inst.instCount host_cpu_usage_pct,
               wcd.users userio_users,
               md.load_average load_average,
               p.cpu max_cpu_cnt
          FROM (SELECT DISTINCT wait_class_id
                  FROM v$event_name, v$parameter p
                 WHERE wait_class = 'User I/O'
                   AND p.name='timed_statistics' and p.value='TRUE') wcn,
               (SELECT wait_class_id,
                       min(end_time) end_time,
                       sum(time_waited / intsize_csec) users
                  FROM gv$waitclassmetric
                 WHERE intsize_csec > 5900
                 GROUP BY wait_class_id ) wcd,
                 (SELECT sum(value) cpu 
                    FROM gv$parameter 
                   WHERE name='cpu_count'
                     AND inst_id in 
                         (SELECT min(inst_id) 
                          FROM gv$instance 
                          GROUP BY host_name)) p,
                 (SELECT count(*) instCount from gv$instance) inst,
                 (SELECT min(end_time) end_time,
                       SUM(CASE WHEN metric_name = 'Database Wait Time Ratio'
                                THEN value
                                ELSE 0 END) user_wait_time_pct,
                       SUM(CASE WHEN metric_name = 'Database Time Per Sec'
                                THEN value / 100
                                ELSE 0 END) db_time_ps,
                       SUM(CASE WHEN metric_name = 'CPU Usage Per Sec'
                                 THEN value / 100
                                 ELSE 0 END) cpu_time_ps,
                       SUM(CASE WHEN metric_name = 'Host CPU Utilization (%)'
                                 THEN value
                                 ELSE 0 END) host_cpu_usage_pct,
                       SUM(CASE WHEN metric_name = 'Current OS Load'
                                 THEN value
                                 else 0 END) load_average 
                  FROM gv$sysmetric
                 WHERE metric_name IN ('Database Wait Time Ratio',
                                       'Database Time Per Sec',
                                        'CPU Usage Per Sec',
                                        'Host CPU Utilization (%)',
                                        'Current OS Load') 
                   AND group_id = 2
                   AND intsize_csec > 5900 ) md, v$parameter pp
         WHERE wcn.wait_class_id = wcd.wait_class_id
          AND pp.name='statistics_level' and pp.value!='BASIC' 
         ]]>
      </Property>
      <Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
      <Property NAME="Port" SCOPE="INSTANCE">Port</Property>
      <Property NAME="SID" SCOPE="INSTANCE" OPTIONAL="TRUE">SID</Property>
      <Property NAME="UserName" SCOPE="INSTANCE">UserName</Property>
      <Property NAME="password" SCOPE="INSTANCE">password</Property>
      <Property NAME="Role" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
    </QueryDescriptor>
  </Metric>

  	  	<Metric NAME="latest_hdm_db_findings" TYPE="RAW">
	        
		<ValidIf>
			<CategoryProp NAME="VersionCategory" CHOICES="11gR1;11gR2"/>
		</ValidIf>
		<Display>
			<Label NLSID="hdm_findings_1">Latest HDM Findings</Label>
		</Display>
		<TableDescriptor TABLE_NAME="mgmt_db_latest_hdm_findings" SKIP_COLLTIME_PK="TRUE" SKIP_METRIC_COLUMN="TRUE">
			<ColumnDescriptor NAME="task_id" TYPE="NUMBER" COLUMN_NAME="task_id" IS_KEY="TRUE">
				<Display>
					<Label NLSID="latest_hdm_findings_task_id">Task ID</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="finding_id" TYPE="NUMBER" COLUMN_NAME="finding_id" IS_KEY="TRUE">
				<Display>
					<Label NLSID="latest_hdm_findings_finding_id">Finding ID</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="rec_type" TYPE="STRING" COLUMN_NAME="rec_type" IS_KEY="TRUE">
				<Display>
					<Label NLSID="latest_hdm_findings_rec_type">Rec Type</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="rec_count" TYPE="NUMBER" COLUMN_NAME="rec_count" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_rec_count">Rec Count</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="impact_pct" TYPE="NUMBER" COLUMN_NAME="impact_pct" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_impact_pct">Impact (%)</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="message" TYPE="STRING" COLUMN_NAME="message" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_message">Finding Message</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="start_time" TYPE="STRING" IS_DATE="TRUE" COLUMN_NAME="start_time" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_start_time">Start Time</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="end_time" TYPE="STRING" IS_DATE="TRUE" COLUMN_NAME="end_time" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_end_time">End Time</Label>
				</Display>
			</ColumnDescriptor>
		  	                	<ColumnDescriptor NAME="finding_count" TYPE="NUMBER" COLUMN_NAME="finding_count" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_finding_count">Finding Count</Label>
				</Display>
			</ColumnDescriptor>
                                 	<ColumnDescriptor NAME="finding_name" TYPE="STRING" COLUMN_NAME="finding_name" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_finding_name">Finding Name</Label>
				</Display>
			</ColumnDescriptor>
                        	<ColumnDescriptor NAME="active_sessions" TYPE="NUMBER" COLUMN_NAME="active_sessions" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_finding_active_sessions">Active Sessions</Label>
				</Display>
			</ColumnDescriptor>
		        	<ColumnDescriptor NAME="instance_count" TYPE="NUMBER" COLUMN_NAME="instance_count" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_finding_instance_count">Instance Count</Label>
				</Display>
			</ColumnDescriptor>

		</TableDescriptor>
		<QueryDescriptor FETCHLET_ID="SQL">
			<Property NAME="STATEMENT" SCOPE="GLOBAL"><![CDATA[
DECLARE
        instance_number NUMBER;
	latest_task_id NUMBER;
        db_elapsed_time NUMBER;
	start_time VARCHAR2(1024);
	end_time VARCHAR2(1024);
	db_id NUMBER;
        TYPE        data_cursor_type IS REF CURSOR;
        data_cursor data_cursor_type;


        CURSOR get_latest_task_id  IS
        SELECT TASK_LIST.TASK_ID
   FROM (SELECT /*+ NO_MERGE(T) ORDERED */ T.TASK_ID
        FROM   (select * from dba_advisor_tasks order by task_id desc) T,
             dba_advisor_parameters_proj P1,
             dba_advisor_parameters_proj P2
        WHERE T.ADVISOR_NAME='ADDM'
          AND T.STATUS = 'COMPLETED'
          AND T.EXECUTION_START >= (sysdate - 1)
          AND T.HOW_CREATED = 'AUTO'
          AND T.TASK_ID = P1.TASK_ID
          AND P1.PARAMETER_NAME = 'INSTANCE'
          AND P1.PARAMETER_VALUE = 'UNUSED' 
          AND T.TASK_ID = P2.TASK_ID
          AND P2.PARAMETER_NAME = 'DB_ID'
          AND P2.PARAMETER_VALUE = to_char(db_id)
        ORDER BY T.TASK_ID DESC) TASK_LIST
WHERE ROWNUM = 1;
BEGIN

	SELECT dbid INTO db_id from v$database;

	OPEN get_latest_task_id;
	FETCH get_latest_task_id INTO latest_task_id;
	CLOSE get_latest_task_id;

    FOR param_info IN
        (SELECT parameter_value, parameter_name
         FROM dba_advisor_parameters_proj WHERE task_id= latest_task_id AND (parameter_name='START_TIME'
         OR parameter_name='END_TIME' OR parameter_name='DB_ELAPSED_TIME') ORDER BY 2)

	 LOOP
		IF param_info.parameter_name = 'DB_ELAPSED_TIME' THEN
		    db_elapsed_time:= param_info.parameter_value;
		ELSIF param_info.parameter_name = 'END_TIME' THEN
		   end_time := param_info.parameter_value;
		ELSIF param_info.parameter_name = 'START_TIME' THEN
		   start_time := param_info.parameter_value;


		END IF;
	END LOOP;
	  -- open the cursor to return
         OPEN data_cursor FOR
	SELECT DISTINCT latest_task_id task_id, f.finding_id finding_id, DECODE(recInfo.type,NULL, 'Uncategorized',recInfo.type) rec_type, recInfo.recCount rec_count,
          f.perc_active_sess impact_pct, f.message message,
          TO_DATE(start_time ,'MM-DD-YYYY HH24:MI:SS') start_time,
          TO_DATE(end_time,'MM-DD-YYYY HH24:MI:SS') end_time,
	  history.findingCount  findingCount,
	  f.finding_name finding_name,
	  f.active_sessions active_sessions,
	 instances.instance_count instCount 
     FROM dba_addm_findings f,
     (SELECT finding_id, count(r.rec_id) recCount,r.type
     FROM dba_advisor_recommendations r WHERE task_id=latest_task_id GROUP BY r.finding_id, r.type) recInfo,

	 (select count(DISTINCT f_all.task_id) findingCount, f_curr.finding_name FROM 
	(select DISTINCT finding_name from dba_advisor_findings where task_id=latest_task_id AND type<>'INFORMATION' AND type<>'WARNING' AND parent=0) f_curr,
   (select task_id,end_time  from dba_addm_tasks where end_time>sysdate -1
     AND requested_analysis='DATABASE')  tasks,
 (SELECT DISTINCT finding_name, 
task_id FROM dba_advisor_findings) f_all
 WHERE f_all.task_id=tasks.task_id 
 AND f_all.finding_name=f_curr.finding_name 
 GROUP BY f_curr.finding_name) history,
	(SELECT 
f.task_id,f.finding_id, count(b.instance_number) instance_count FROM dba_addm_fdg_breakdown b, dba_addm_findings f WHERE b.task_id= latest_task_id AND b.task_id=f.task_id AND b.finding_id =f.finding_id AND f.type<>'INFORMATION' AND f.type<>'WARNING'  AND f.parent=0 GROUP BY f.finding_id,f.task_id ORDER BY f.finding_id ) instances 
     WHERE f.task_id=latest_task_id AND f.type<>'INFORMATION' AND f.type<>'WARNING' AND f.filtered<>'Y' AND f.parent=0 AND  f.finding_id=recInfo.finding_id (+)
   AND f.finding_name=history.finding_name(+) AND f.task_id=instances.task_id(+) AND f.finding_id=instances.finding_id (+) 
     ORDER BY f.finding_id;

  :2 := data_cursor;
END;
]]></Property>
			<Property NAME="SQLOUTPARAMPOS" SCOPE="GLOBAL">2</Property>
			<Property NAME="SQLOUTPARAMTYPE" SCOPE="GLOBAL">SQL_CURSOR</Property>
			<Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
			<Property NAME="Port" SCOPE="INSTANCE">Port</Property>
			<Property NAME="SID" SCOPE="INSTANCE">SID</Property>
			<Property NAME="UserName" SCOPE="INSTANCE">UserName</Property>
			<Property NAME="password" SCOPE="INSTANCE">password</Property>
			<Property NAME="Role" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
		</QueryDescriptor>
	</Metric>

	<Metric NAME="latest_hdm_db_metric_helper" TYPE="RAW">
	
		<ValidIf>
			<CategoryProp NAME="VersionCategory" CHOICES="10gR1;10gR2;10gR203;11gR1;11gR2"/>
		</ValidIf>
		<Display>
			<Label NLSID="latest_hdm_metric_helper">latest_hdm_db_metric_helper</Label>
		</Display>
		<TableDescriptor TABLE_NAME="mgmt_db_hdm_metric_helper" SKIP_COLLTIME_PK="TRUE" SKIP_METRIC_COLUMN="TRUE">
			<ColumnDescriptor NAME="task_available" TYPE="NUMBER" COLUMN_NAME="task_available" IS_KEY="FALSE">
				<Display>
					<Label NLSID="mgmt_db_hdm_metric_helper_task_available">Task Available</Label>
				</Display>
			</ColumnDescriptor>
		  		                <ColumnDescriptor NAME="task_count" TYPE="NUMBER" COLUMN_NAME="task_count" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_task_count">Task Count</Label>
				</Display>
			</ColumnDescriptor>

                        <ColumnDescriptor NAME="requested_analysis" TYPE="STRING" COLUMN_NAME="requested_analysis" IS_KEY="FALSE">
				<Display>
					<Label NLSID="latest_hdm_findings_requested_analysis">Requested Analysis</Label>
				</Display>
			</ColumnDescriptor>
		</TableDescriptor>
		<QueryDescriptor FETCHLET_ID="SQL">
			<Property NAME="STATEMENT" SCOPE="GLOBAL"><![CDATA[
DECLARE
        instance_number NUMBER;
        task_id NUMBER;
	requested_analysis  VARCHAR2(8);						db_id NUMBER;
        TYPE        data_cursor_type IS REF CURSOR;
        data_cursor data_cursor_type;

        CURSOR get_task_id IS
SELECT task_id, requested_analysis 
FROM   dba_addm_tasks WHERE
  dbid = to_char(db_id) 
  AND (requested_analysis='DATABASE' OR requested_analysis='PARTIAL') 
  AND  rownum = 1
  ORDER BY 1 DESC;
BEGIN
	SELECT dbid INTO db_id from v$database;

        task_id:=-1;
	OPEN get_task_id;
	FETCH get_task_id INTO task_id,requested_analysis;
	CLOSE get_task_id;

	  -- open the cursor to return
OPEN data_cursor FOR
	SELECT task_id task_available, latest_tasks.task_count,requested_analysis  FROM dual,
	(SELECT count(task_id) task_count FROM dba_addm_tasks 
 WHERE end_time>sysdate -1 AND requested_analysis='DATABASE')  latest_tasks;
  :1 := data_cursor;
END;
]]></Property>
			<Property NAME="SQLOUTPARAMPOS" SCOPE="GLOBAL">1</Property>
			<Property NAME="SQLOUTPARAMTYPE" SCOPE="GLOBAL">SQL_CURSOR</Property>
			<Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
			<Property NAME="Port" SCOPE="INSTANCE">Port</Property>
			<Property NAME="SID" SCOPE="INSTANCE">SID</Property>
			<Property NAME="UserName" SCOPE="INSTANCE">UserName</Property>
			<Property NAME="password" SCOPE="INSTANCE">password</Property>
			<Property NAME="Role" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
		</QueryDescriptor>
	</Metric>

    <!--
  ======================================================================
  == Category:         Service Performance metrics
  == Collection Level: Recommended
  == Purpose:          Performance, Availability
  ==
  == Comments:         Upload 1 min average value every 5 minutes
  ======================================================================
    -->
   
	<Metric NAME="service_performance" TYPE="TABLE">
		<ValidIf>
			<CategoryProp NAME="VersionCategory" CHOICES="10gR1;10gR2;10gR203;11gR1;11gR2"/>
		</ValidIf>
		<Display>
			<Label NLSID="service_performance">Cluster Managed Database Services</Label>
		</Display>
		<TableDescriptor>
			<ColumnDescriptor NAME="dbname" TYPE="STRING" IS_KEY="TRUE">
				<Display>
					<Label NLSID="database_name">Database Name</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="name" TYPE="STRING" IS_KEY="TRUE">
				<Display>
					<Label NLSID="service_name">Service Name</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="min_response_time" TYPE="NUMBER" IS_KEY="FALSE">
				<Display>
					<Label NLSID="service_min_response_time">Minimum Response Time (msec/call, in last 5 min)</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="min_response_inst" TYPE="STRING" IS_KEY="FALSE">
				<Display>
					<Label NLSID="service_min_response_inst">Instance with Minimum Response Time</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="max_response_time" TYPE="NUMBER" IS_KEY="FALSE">
				<Display>
					<Label NLSID="service_max_response_time">Maximum Response Time (msec/call, in last 5 min)</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="max_response_inst" TYPE="STRING" IS_KEY="FALSE">
				<Display>
					<Label NLSID="service_max_response_inst">Instance with Maximum Response Time</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="avg_response_time" TYPE="NUMBER" IS_KEY="FALSE">
				<Display>
					<Label NLSID="service_avg_response_time">Average Response Time (msec/call in last 5 min)</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="cpuload" TYPE="NUMBER" IS_KEY="FALSE">
				<Display>
					<Label NLSID="service_cpuload">% CPU Time Load (in last 5 min)</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="status" TYPE="STRING" IS_KEY="FALSE">
				<Display>
					<Label NLSID="service_status">Service Status</Label>
				</Display>
			</ColumnDescriptor>
			<ColumnDescriptor NAME="running_instlist" TYPE="STRING" IS_KEY="FALSE">
				<Display>
					<Label NLSID="service_running_instlist">Running Instances</Label>
				</Display>
			</ColumnDescriptor>
		</TableDescriptor>

		<QueryDescriptor FETCHLET_ID="OSLineToken">
                   <ValidIf>
                     <CategoryProp NAME="VersionCategory" CHOICES="10gR1;10gR2;10gR203;11gR1;11gR2"/>
                   </ValidIf>
                        <Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
                        <Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
                        <Property NAME="command" SCOPE="GLOBAL">
        %perlBin%/perl %scriptsDir%/rac/servicePerf.pl
      </Property>
                        <Property NAME="startsWith" SCOPE="GLOBAL">em_result=</Property>
                        <Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
                        <Property NAME="ENVEM_TARGET_NAME" SCOPE="INSTANCE">NAME</Property>
                        <Property NAME="STDINEM_TARGET_USERNAME" SCOPE="INSTANCE">UserName</Property>
                        <Property NAME="STDINEM_TARGET_PASSWORD" SCOPE="INSTANCE">password</Property>
                        <Property NAME="STDINEM_TARGET_DBNAME" SCOPE="INSTANCE">DBName</Property>
                        <Property NAME="ENVEM_TARGET_ROLE" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
                        <Property NAME="ENVEM_TARGET_ORACLE_HOME" SCOPE="INSTANCE">OracleHome</Property>
                        <Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
                        <Property NAME="Port" SCOPE="INSTANCE">Port</Property>
                        <Property NAME="SID" SCOPE="INSTANCE">SID</Property>
                        <Property NAME="ENVEM_TARGET_ADDRESS" SCOPE="GLOBAL">(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=%MachineName%)(Port=%Port%))(CONNECT_DATA=(SID=%SID%)))
      </Property>
                </QueryDescriptor>

	</Metric>


        <!--
        ======================================================================
        == Category:         Incident Meter
        == Collection Level: Minimum
        == Purpose:          To upload the incident meter to the repository
        ======================================================================
        -->

        <Metric NAME="incident_meter" TYPE="TABLE" USAGE_TYPE="COLLECT_UPLOAD"  IS_METRIC_LONG_RUNNING="FALSE">

        <ValidIf>
        <CategoryProp NAME="VersionCategory" CHOICES="11gR1;11gR2" />
        </ValidIf>
        <TableDescriptor>
        <ColumnDescriptor NAME="SEVERITY_INDEX" TYPE="STRING" IS_KEY="FALSE" TRANSIENT="FALSE" IS_LONG_TEXT="FALSE" IS_DATE="FALSE" IS_TIMESTAMP="FALSE" HELP="NO_HELP"/>
        <ColumnDescriptor NAME="CRITICAL_INCIDENTS" TYPE="NUMBER" IS_KEY="FALSE" TRANSIENT="FALSE" IS_LONG_TEXT="FALSE" IS_DATE="FALSE" IS_TIMESTAMP="FALSE" HELP="NO_HELP"/>
        <ColumnDescriptor NAME="WARNING_INCIDENTS" TYPE="NUMBER" IS_KEY="FALSE" TRANSIENT="FALSE" IS_LONG_TEXT="FALSE" IS_DATE="FALSE" IS_TIMESTAMP="FALSE" HELP="NO_HELP"/>

        </TableDescriptor>

        <QueryDescriptor FETCHLET_ID="SQL">
        <Property NAME="STATEMENT" SCOPE="GLOBAL" OPTIONAL="FALSE">
        <![CDATA[
        select (case when sum(critical_inicdents) > 0 then 'CRITICAL' 
                     when sum(warning_incidents) > 0 then 'WARNING' 
                     else 'NORMAL' end) SEVERITY_INDEX, 
               sum(critical_inicdents) CRITICAL_INICDENTS, 
               sum(warning_incidents) WARNING_INCIDENTS 
        from gv$incmeter_summary
        ]]>
        </Property>
        <Property NAME="MachineName" SCOPE="INSTANCE" OPTIONAL="FALSE">MachineName</Property>
        <Property NAME="Port" SCOPE="INSTANCE" OPTIONAL="FALSE">Port</Property>
        <Property NAME="SID" SCOPE="INSTANCE" OPTIONAL="FALSE">SID</Property>
        <Property NAME="UserName" SCOPE="INSTANCE" OPTIONAL="FALSE">UserName</Property>
        <Property NAME="password" SCOPE="INSTANCE" OPTIONAL="FALSE">password</Property>
        <Property NAME="Role" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
        </QueryDescriptor>


        </Metric>
	
	
	
	
	 <!--
        ======================================================================
        == Category:         qos_status
        == Collection Level: Minimum
        == Purpose:          To upload the incident meter to the repository
        ======================================================================
        -->

        <Metric NAME="qos_status" TYPE="TABLE" USAGE_TYPE="COLLECT_UPLOAD"  IS_METRIC_LONG_RUNNING="FALSE">

        <ValidIf>
        <CategoryProp NAME="VersionCategory" CHOICES="11gR2" />
        </ValidIf>
	<Display>
	<Label NLSID="QOS_STATUS">QoS Status</Label>
	</Display>
	<TableDescriptor>
        <ColumnDescriptor NAME="STATUS" TYPE="STRING" />
        </TableDescriptor>
        <QueryDescriptor FETCHLET_ID="SQL">
        <Property NAME="STATEMENT" SCOPE="GLOBAL" OPTIONAL="FALSE">
        <![CDATA[
        select (case when (select count(*) from dba_users where username = 'APPQOSSYS' 
		           and account_status = 'OPEN') = 0 then 'DISABLED'
                     else (case when (select count(*) from wlm_classifier_plan where active = 'Y') > 0 then 'ACTIVE'
				else 'ENABLED' end)
          end) STATUS from dual
        ]]>
        </Property>
        <Property NAME="MachineName" SCOPE="INSTANCE" OPTIONAL="FALSE">MachineName</Property>
        <Property NAME="Port" SCOPE="INSTANCE" OPTIONAL="FALSE">Port</Property>
        <Property NAME="SID" SCOPE="INSTANCE" OPTIONAL="FALSE">SID</Property>
        <Property NAME="UserName" SCOPE="INSTANCE" OPTIONAL="FALSE">UserName</Property>
        <Property NAME="password" SCOPE="INSTANCE" OPTIONAL="FALSE">password</Property>
        <Property NAME="Role" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
        </QueryDescriptor>
        </Metric>


    <Metric NAME="qos_psm" TYPE="TABLE">
     <ValidIf>
       <CategoryProp NAME="VersionCategory" CHOICES="11gR2"/>
     </ValidIf>
        <Display>
            <Label NLSID="qos_psm">QoS Management - Performance Satisfaction Metric</Label>
        </Display>
        <TableDescriptor>
            <ColumnDescriptor NAME="PC" TYPE="STRING" IS_KEY="TRUE">
                <Display>
                    <Label NLSID="PC">Performance Class</Label>
                </Display>
            </ColumnDescriptor>
            <ColumnDescriptor NAME="NEG_PSM_DURATION" TYPE="NUMBER">
                <Display>
                    <Label NLSID="NEG_PSM_DURATION">Negative PSM Duration (seconds)</Label>
                </Display>
            </ColumnDescriptor>
        </TableDescriptor>
        <QueryDescriptor FETCHLET_ID="SQL">
            <Property NAME="STATEMENT" SCOPE="GLOBAL"><![CDATA[
                SELECT PC, NEGATIVE_INTERVAL
                FROM   WLM_METRICS_STREAM
]]></Property>
                        <Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
                        <Property NAME="Port" SCOPE="INSTANCE">Port</Property>
                        <Property NAME="SID" SCOPE="INSTANCE">SID</Property>
                        <Property NAME="UserName" SCOPE="INSTANCE">UserName</Property>
                        <Property NAME="password" SCOPE="INSTANCE">password</Property>
                        <Property NAME="Role" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
                </QueryDescriptor>
    </Metric>


 <Metric NAME="current_inst_list" TYPE="TABLE" CONFIG="TRUE" USAGE_TYPE="HIDDEN">
  <ValidIf>
   <CategoryProp NAME="VersionCategory" CHOICES="11gR2" />
  </ValidIf>
  <TableDescriptor>
	<ColumnDescriptor NAME="instance_names"
		COLUMN_NAME="instance_names" TYPE="STRING" IS_KEY="FALSE" />
  </TableDescriptor>
  <QueryDescriptor FETCHLET_ID="OSLineToken">
	<Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
	<Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
	<Property NAME="command" SCOPE="GLOBAL"><![CDATA[%perlBin%/perl %scriptsDir%/rac/db_inst_names.pl]]></Property>
	<Property NAME="startsWith" SCOPE="GLOBAL">em_result=</Property>
	<Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
	<Property NAME="STDINEM_TARGET_DBNAME" SCOPE="INSTANCE">DBName</Property>
	<Property NAME="STDINEM_TARGET_ORACLE_HOME" SCOPE="INSTANCE">OracleHome</Property>
  </QueryDescriptor>
 </Metric>


<!--
  ======================================================================
  == Category:         Text Index Log Content
  == Collection Level: {Not Collected}
  == Purpose:          On-Demand
  ======================================================================
    -->
        <Metric NAME="textIndexLogContent" TYPE="TABLE" HELP="NO_HELP" USAGE_TYPE="COLLECT_UPLOAD">
                <Display>
                        <Label NLSID="textIndexLogContent">Text Index Log Content</Label>
                </Display>
                <TableDescriptor>
                        <ColumnDescriptor NAME="textIndexLogContent" TYPE="STRING" IS_KEY="FALSE">
                                <Display>
                                        <Label NLSID="textIndexLog_content">Content</Label>
                                </Display>
                        </ColumnDescriptor>
                </TableDescriptor>
                <QueryDescriptor FETCHLET_ID="OS">
                        <Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
                        <Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
                        <Property NAME="startsWith" SCOPE="GLOBAL">em_result=</Property>
                        <Property NAME="logFileToView" SCOPE="USER">logFileToView</Property>
                        <Property NAME="sizeToView" SCOPE="USER">sizeToView</Property>
                        <Property NAME="startTime" SCOPE="USER" OPTIONAL="TRUE">startTime</Property>
                        <Property NAME="endTime" SCOPE="USER" OPTIONAL="TRUE">endTime</Property>
                        <Property NAME="command" SCOPE="GLOBAL">
         %perlBin%/perl %scriptsDir%/txt/textIndexLogViewer.pl %logFileToView%  %sizeToView% %startTime% %endTime%
      </Property>
                </QueryDescriptor>
        </Metric>
<!--
  ======================================================================
  == Category:         Text Index Remove Log
  == Collection Level: {Not Collected}
  == Purpose:          On-Demand
  ======================================================================
    -->
        <Metric NAME="textIndexLogRemover" TYPE="TABLE" HELP="NO_HELP" USAGE_TYPE="COLLECT_UPLOAD">
                <Display>
                        <Label NLSID="textIndexLogRemover">Text Index Log Remover</Label>
                </Display>
                <TableDescriptor>
                        <ColumnDescriptor NAME="textIndexLogRemover" TYPE="STRING" IS_KEY="FALSE">
                                <Display>
                                        <Label NLSID="textIndexLog_content">Content</Label>
                                </Display>
                        </ColumnDescriptor>
                </TableDescriptor>
                <QueryDescriptor FETCHLET_ID="OS">
                        <Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
                        <Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
                        <Property NAME="startsWith" SCOPE="GLOBAL">em_result=</Property>
                        <Property NAME="logFileToRemove" SCOPE="USER">logFileToRemove</Property>
                        <Property NAME="command" SCOPE="GLOBAL">
         %perlBin%/perl %scriptsDir%/txt/textIndexLogRemover.pl %logFileToRemove%
      </Property>
                </QueryDescriptor>
        </Metric>
  

   &credentials;

  <!--  
  ========================================================
  ==
  ==             Instance Properties 
  ==
  ========================================================
  -->
  <InstanceProperties>
    <InstanceProperty NAME="ClusterName" CREDENTIAL="FALSE" OPTIONAL="FALSE">
      <Display>
        <Label NLSID="rac_database_cluster_iprop">Cluster Name</Label>
      </Display>
    </InstanceProperty>
    <InstanceProperty NAME="ServiceName" CREDENTIAL="FALSE" OPTIONAL="FALSE">
      <Display>
        <Label NLSID="rac_database_service_iprop">Service Name</Label>
      </Display>
    </InstanceProperty>
    <InstanceProperty NAME="emdPerlTraceLevel" CREDENTIAL="FALSE" OPTIONAL="TRUE">
      <Display>
        <Label NLSID="rac_database_trace_iprop">Perl Trace Level</Label>
      </Display>
    </InstanceProperty>

 	<InstanceProperty NAME="DBVersion" CREDENTIAL="FALSE" WAS_REQUIRED="TRUE" IS_COMPUTED="TRUE">
			<Display>
				<Label NLSID="DBVersion_nlsid">Version</Label>
			</Display>
	</InstanceProperty>

   <InstanceProperty NAME="OracleHome" CREDENTIAL="FALSE" IS_COMPUTED="TRUE" WAS_REQUIRED="TRUE">
      <Display>
        <Label NLSID="rac_database_OracleHome_iprop">Oracle home path</Label>
      </Display>
    </InstanceProperty>
    <InstanceProperty NAME="UserName" CREDENTIAL="TRUE" IS_COMPUTED="TRUE" WAS_REQUIRED="TRUE">
      <Display>
        <Label NLSID="rac_database_UserName_iprop">Username</Label>
      </Display>
    </InstanceProperty>
    <InstanceProperty NAME="password" CREDENTIAL="TRUE" IS_COMPUTED="TRUE" WAS_REQUIRED="TRUE">
      <Display>
        <Label NLSID="rac_database_password_iprop">Password</Label>
      </Display>
    </InstanceProperty>
    <InstanceProperty NAME="Role" CREDENTIAL="FALSE" IS_COMPUTED="TRUE" WAS_REQUIRED="TRUE">
      <Display>
        <Label NLSID="rac_database_role_iprop">Role</Label>
      </Display>
    </InstanceProperty>
    <InstanceProperty NAME="MachineName" CREDENTIAL="FALSE" IS_COMPUTED="TRUE" WAS_REQUIRED="TRUE">
      <Display>
        <Label NLSID="rac_database_MachineName_iprop">Machine name</Label>
      </Display>
    </InstanceProperty>
    <InstanceProperty NAME="Port" CREDENTIAL="FALSE" IS_COMPUTED="TRUE" WAS_REQUIRED="TRUE">
      <Display>
        <Label NLSID="rac_database_Port_iprop">Port</Label>
      </Display>
    </InstanceProperty>
    <InstanceProperty NAME="SID" CREDENTIAL="FALSE" IS_COMPUTED="TRUE" WAS_REQUIRED="TRUE">
      <Display>
        <Label NLSID="rac_database_SID_iprop">Database SID</Label>
      </Display>
    </InstanceProperty>

 <DynamicProperties NAME="from_instance" FORMAT="ROW" PROP_LIST="OracleHome;UserName;password;MachineName;Port;SID" OPT_PROP_LIST="Role">
    <QueryDescriptor FETCHLET_ID="PropsFromAssocTgt">
      <Property NAME="TARGET_NAME" SCOPE="INSTANCE">NAME</Property>
      <Property NAME="TARGET_TYPE" SCOPE="INSTANCE">TYPE</Property>
      <Property NAME="ASSOC_TARGET" SCOPE="GLOBAL">rac_instance</Property>
      <Property NAME="PROP_LIST" SCOPE="GLOBAL">OracleHome;UserName;password;MachineName;Port;SID;Role</Property>
     </QueryDescriptor>
    </DynamicProperties> 

    &dynamic_properties;
 

 <DynamicProperties NAME="dyn_from_instance" FORMAT="ROW" PROP_LIST="DBName;InstanceName;TimeFormat;Version;TimedStatistics;OpenMode;CPUTimingEnabled;StatisticsLevel;VersionBanner">
    <QueryDescriptor FETCHLET_ID="PropsFromAssocTgt">
      <Property NAME="TARGET_NAME" SCOPE="INSTANCE">NAME</Property>
      <Property NAME="TARGET_TYPE" SCOPE="INSTANCE">TYPE</Property>
      <Property NAME="ASSOC_TARGET" SCOPE="GLOBAL">rac_instance</Property>
      <Property NAME="PROP_LIST" SCOPE="GLOBAL">DBName;InstanceName;TimeFormat;Version;TimedStatistics;OpenMode;CPUTimingEnabled;StatisticsLevel;VersionBanner</Property>
     </QueryDescriptor>
    </DynamicProperties> 

    <!--
      This dynamic property is obsoleted.
      ======================================================================
      == Dynamic Properties: DatabaseType = Capture database type (service/db centric), server pool name and server pool max size in "<db_type>:<server_pool_name>:<server_pool_max_size>" format
      ======================================================================

    <DynamicProperties NAME="GetDBType" FORMAT="ROW" PROP_LIST="DatabaseType">
     <ValidIf>
       <CategoryProp NAME="VersionCategory" CHOICES="11gR2"/>
     </ValidIf>
     <QueryDescriptor FETCHLET_ID="OSLineToken">
      <Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
      <Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
      <Property NAME="command" SCOPE="GLOBAL"><![CDATA[%perlBin%/perl %scriptsDir%/rac/rac_dyna_props.pl ]]></Property>
      <Property NAME="startsWith" SCOPE="GLOBAL">em_result=</Property>
      <Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
      <Property NAME="STDINEM_TARGET_DBNAME" SCOPE="INSTANCE">DBName</Property>
      <Property NAME="STDINEM_TARGET_ORACLE_HOME" SCOPE="INSTANCE">OracleHome</Property>
     </QueryDescriptor>
    </DynamicProperties>
    -->

    <!--
    ======================================================================
    == Dynamic Properties: GetAdrBase
    ======================================================================
    -->
    <DynamicProperties NAME="GetAdrBase" FORMAT="ROW" PROP_LIST="AdrBase">
      <ValidIf>
        <CategoryProp NAME="VersionCategory" CHOICES="11gR1;11gR2"/>
      </ValidIf>
      <QueryDescriptor FETCHLET_ID="OSLineToken">
        <Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
        <Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
        <Property NAME="command" SCOPE="GLOBAL"><![CDATA[
%perlBin%/perl %scriptsDir%/dbGetAdrBase.pl
]]></Property>
        <Property NAME="startsWith" SCOPE="GLOBAL">em_result=</Property>
        <Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
        <Property NAME="ENVEM_TARGET_GUID" SCOPE="INSTANCE">GUID</Property>
        <Property NAME="ENVEM_AGENT_STATE_DIR" SCOPE="SYSTEMGLOBAL">agentStateDir</Property>
        <Property NAME="ENVEM_TARGET_NAME" SCOPE="INSTANCE">NAME</Property>
        <Property NAME="STDINEM_TARGET_USERNAME" SCOPE="INSTANCE">UserName</Property>
        <Property NAME="STDINEM_TARGET_PASSWORD" SCOPE="INSTANCE">password</Property>
        <Property NAME="ENVEM_TARGET_ROLE" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
        <Property NAME="ENVEM_TARGET_ORACLE_HOME" SCOPE="INSTANCE">OracleHome</Property>
        <Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
        <Property NAME="Port" SCOPE="INSTANCE">Port</Property>
        <Property NAME="SID" SCOPE="INSTANCE">SID</Property>
        <Property NAME="ENVEM_TARGET_ADDRESS" SCOPE="GLOBAL">(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=%MachineName%)(Port=%Port%))(CONNECT_DATA=(SID=%SID%)))</Property>
      </QueryDescriptor>
    </DynamicProperties>

    <!--
    ======================================================================
    == Dynamic Properties: GetAdrHome
    ======================================================================
    -->
    <DynamicProperties NAME="GetAdrHome" FORMAT="ROW" PROP_LIST="AdrHome">
      <ValidIf>
        <CategoryProp NAME="VersionCategory" CHOICES="11gR1;11gR2"/>
      </ValidIf>
      <QueryDescriptor FETCHLET_ID="OSLineToken">
        <Property NAME="perlBin" SCOPE="SYSTEMGLOBAL">perlBin</Property>
        <Property NAME="scriptsDir" SCOPE="SYSTEMGLOBAL">scriptsDir</Property>
	<Property NAME="command" SCOPE="GLOBAL"><![CDATA[
%perlBin%/perl %scriptsDir%/dbGetAdrHome.pl
]]></Property>
	<Property NAME="startsWith" SCOPE="GLOBAL">em_result=</Property>
	<Property NAME="delimiter" SCOPE="GLOBAL">|</Property>
        <Property NAME="ENVEM_TARGET_GUID" SCOPE="INSTANCE">GUID</Property>
        <Property NAME="ENVEM_AGENT_STATE_DIR" SCOPE="SYSTEMGLOBAL">agentStateDir</Property>
        <Property NAME="ENVEM_TARGET_NAME" SCOPE="INSTANCE">NAME</Property>
        <Property NAME="STDINEM_TARGET_USERNAME" SCOPE="INSTANCE">UserName</Property>
        <Property NAME="STDINEM_TARGET_PASSWORD" SCOPE="INSTANCE">password</Property>
        <Property NAME="ENVEM_TARGET_ROLE" SCOPE="INSTANCE" OPTIONAL="TRUE">Role</Property>
        <Property NAME="ENVEM_TARGET_ORACLE_HOME" SCOPE="INSTANCE">OracleHome</Property>
        <Property NAME="MachineName" SCOPE="INSTANCE">MachineName</Property>
        <Property NAME="Port" SCOPE="INSTANCE">Port</Property>
        <Property NAME="SID" SCOPE="INSTANCE">SID</Property>
        <Property NAME="ENVEM_TARGET_ADDRESS" SCOPE="GLOBAL">(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=%MachineName%)(Port=%Port%))(CONNECT_DATA=(SID=%SID%)))</Property>
      </QueryDescriptor>
    </DynamicProperties>

    &esa_db_dynamic_properties;
   
   </InstanceProperties>


</TargetMetadata>
