<?xml version='1.0' encoding='UTF-8' ?>
    
<!--
This is the configuration file for the DMS aggregator MBean.

   MODIFIED    (MM/DD/YY)
   cramanuj     09/28/06 - XbranchMerge cramanuj_bug-5529795 from
                           st_emdw_as10.1.3.1.0
   cramanuj     09/22/06 - fixing jms topic metrics
   echolank     02/01/06 - support multiple jvms 
   echolank     12/13/05 - jta metric changes 
   echolank     11/17/05 - fix typo in ws metric 
   echolank     11/07/05 - webservice metrics renamed 
   echolank     11/01/05 - bug 4712148: fix MDB avgMsgProctime 
   echolank     09/14/05 - default aggregated metrics to zero
   echolank     08/26/05 - move jdbc metrics from jca to jdbc, add
                           mdb metrics
   cramanuj     03/23/05 - fixing jta metrics 
   cramanuj     02/02/05 - fixing ejb metrics 
   echolank     10/13/04 - add jdbc pool metrics 
   echolank     10/15/04 - set key columns
   echolank     10/12/04 - add number of consumers for jms destinations
   echolank     10/11/04 - convert webservice metrics to rates 
   echolank     09/16/04 - add jms metrics 
   echolank     08/30/04 - add mdb metrics 
   echolank     08/27/04 - update jca stats 
   echolank     08/17/04 - add app filter for top servlets and jsps 
   echolank     08/11/04 - add metrics for top servlets&jsps 
   echolank     08/06/04 - update web service metrics 
   echolank     07/30/04 - echolank_use_aggregator_mbean_040730
   echolank     07/28/04 - Creation

-->

<Adml xmlns="http://www.oracle.com/iAS/aggregator"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

 <Table Name="agg_oc4j_servlet_no_rate">
  <Label NLSID="oc4j_servlet_no_rate">OC4J Servlet Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_servlet_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="web_module" Type="String" Key="true">
   <Label NLSID="web_module_name">Web Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="service.active" Type="Integer">
   <Label NLSID="oc4j_servlet_service_active">Servlet - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="service.totalTime" Type="Double">
   <Label NLSID="oc4j_servlet_service_totalTime">Servlet - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.averageTime" Type="Double">
   <Label NLSID="oc4j_servlet_service_averageTime">Servlet - Average Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.completed" Type="Integer">
   <Label NLSID="oc4j_servlet_service_completed">Servlet - Invocations</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_servlet_no_rate_result">
   <TableFrom Name="oc4j_servlet" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="name" Type="String">
    <ColumnFrom Name="Name" Table="oc4j_servlet"/>
   </Column>

   <Column Name="web_module" Type="String">
    <ColumnFrom Name="oc4j_context" Table="oc4j_servlet"/>
   </Column>

   <Column Name="application" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_servlet"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="service.active" Type="Integer">
    <Aggregation Operator="Sum" Name="service.active" Table="oc4j_servlet"/>
    <Default>0</Default>
   </Column>

   <Column Name="service.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="service.completed" Table="oc4j_servlet"/>
    <Default>0</Default>
   </Column>

   <Column Name="service.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="service.time" Table="oc4j_servlet"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <Column Name="service.averageTime" Type="Double">
    <Expression Operator="Div">    
      <Expression Operator="Div">
        <Aggregation Operator="Sum" Name="service.time" Table="oc4j_servlet"/>
        <Value Name="milli_to_second">1000</Value>
      </Expression>
      <Aggregation Operator="Sum" Name="service.completed" Table="oc4j_servlet"/>      
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="web_module"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   
   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_servlet"/>
      </Condition>
   </Where>

  </Select>
 </Table> <!-- agg_oc4j_servlet_no_rate -->

 <Table Name="agg_oc4j_servlet">
  <Label NLSID="oc4j_servlet">OC4J Servlet Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_servlet_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="web_module" Type="String" Key="true">
   <Label NLSID="web_module_name">Web Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="service.active" Type="Integer">
   <Label NLSID="oc4j_servlet_service_active">Servlet - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="service.throughput" Type="Double">
   <Label NLSID="oc4j_servlet_service_throughput">Servlet - Requests Per Second</Label>
  </ColumnDef>

  <ColumnDef Name="service.time" Type="Double">
   <Label NLSID="oc4j_servlet_service_time">Servlet - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.totalTime" Type="Double">
   <Label NLSID="oc4j_servlet_service_totalTime">Servlet - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.averageTime" Type="Double">
   <Label NLSID="oc4j_servlet_service_averageTime">Servlet - Average Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.completed" Type="Integer">
   <Label NLSID="oc4j_servlet_service_completed">Servlet - Invocations</Label>
  </ColumnDef>
   
  <Select Name="agg_oc4j_servlet_result">
   <TableFrom Name="agg_oc4j_servlet_no_rate"/>
   
   <Column Name="name" Type="String"/>
   <Column Name="web_module" Type="String"/>
   <Column Name="application" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="service.active" Type="Integer"/>
   <Column Name="service.completed" Type="Integer"/>
   <Column Name="service.totalTime" Type="Double"/>
   <Column Name="service.averageTime" Type="Double"/>

   <Column Name="service.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="service.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="service.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="service.totalTime"/>
     <ColumnFrom Name="service.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="web_module"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   <GroupBy Name="service.active"/>
   <GroupBy Name="service.completed"/>
   <GroupBy Name="service.totalTime"/>
   <GroupBy Name="service.averageTime"/>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_servlet_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_servlet_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="web_module"/>
       <Value Name="oc4j_web_module"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_web_module"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_servlet -->

 <Table Name="agg_oc4j_top_servlets_by_requests_processed">
  <Label NLSID="oc4j_top_servlets_by_requests_processed">OC4J Top Servlets By Requests Processed</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_servlet_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="web_module" Type="String" Key="true">
   <Label NLSID="web_module_name">Web Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="service.active" Type="Integer">
   <Label NLSID="oc4j_servlet_service_active">Servlet - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="service.throughput" Type="Double">
   <Label NLSID="oc4j_servlet_service_throughput">Servlet - Requests Per Second</Label>
  </ColumnDef>

  <ColumnDef Name="service.time" Type="Double">
   <Label NLSID="oc4j_servlet_service_time">Servlet - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.totalTime" Type="Double">
   <Label NLSID="oc4j_servlet_service_totalTime">Servlet - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.averageTime" Type="Double">
   <Label NLSID="oc4j_servlet_service_averageTime">Servlet - Average Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.completed" Type="Integer">
   <Label NLSID="oc4j_servlet_service_completed">Servlet - Invocations</Label>
  </ColumnDef>
  
  <Select Name="agg_oc4j_top_servlets_by_requests_processed_result">
   <TableFrom Name="agg_oc4j_servlet"/>   <!-- should automatically select all columns --> 
   <!-- get top 25 rows, ordered by requests processed -->
   <OrderBy Name="service.completed"/>
   <RowRetained>25</RowRetained>
   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="web_module"/>
       <Value Name="oc4j_web_module"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_web_module"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>
  </Select>
  
 </Table> <!-- agg_oc4j_top_servlets_by_requests_processed -->

 <Table Name="agg_oc4j_top_servlets_by_processing_time">
  <Label NLSID="oc4j_top_servlets_by_processing_time">OC4J Top Servlets By Total Client Processing Time</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_servlet_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="web_module" Type="String" Key="true">
   <Label NLSID="web_module_name">Web Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="service.active" Type="Integer">
   <Label NLSID="oc4j_servlet_service_active">Servlet - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="service.throughput" Type="Double">
   <Label NLSID="oc4j_servlet_service_throughput">Servlet - Requests Per Second</Label>
  </ColumnDef>

  <ColumnDef Name="service.time" Type="Double">
   <Label NLSID="oc4j_servlet_service_time">Servlet - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.totalTime" Type="Double">
   <Label NLSID="oc4j_servlet_service_totalTime">Servlet - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.averageTime" Type="Double">
   <Label NLSID="oc4j_servlet_service_averageTime">Servlet - Average Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.completed" Type="Integer">
   <Label NLSID="oc4j_servlet_service_completed">Servlet - Invocations</Label>
  </ColumnDef>
  
  <Select Name="agg_oc4j_top_servlets_by_processing_time_result">
   <TableFrom Name="agg_oc4j_servlet"/>   <!-- should automatically select all columns -->
   <!-- get top 25 rows, ordered by total client request processing time -->
   <OrderBy Name="service.totalTime"/>
   <RowRetained>25</RowRetained>
   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="web_module"/>
       <Value Name="oc4j_web_module"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_web_module"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>
  </Select>
  
 </Table> <!-- agg_oc4j_top_servlets_by_processing_time -->

 <Table Name="agg_oc4j_jsp_no_rate">
  <Label NLSID="oc4j_jsp_no_rate">OC4J JSP Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jsp_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="web_module" Type="String" Key="true">
   <Label NLSID="web_module_name">Web Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="isSingleThreaded" Type="String">
   <Label NLSID="oc4j_jsp_isSingleThreaded">JSP - Uses Single-thread Model?</Label>
  </ColumnDef>

  <ColumnDef Name="service.active" Type="Integer">
   <Label NLSID="oc4j_jsp_service_active">JSP - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="service.totalTime" Type="Double">
   <Label NLSID="oc4j_jsp_service_totalTime">JSP - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.averageTime" Type="Double">
   <Label NLSID="oc4j_jsp_service_averageTime">JSP - Average Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.completed" Type="Integer">
   <Label NLSID="oc4j_jsp_service_completed">JSP - Invocations</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_jsp_no_rate_multi">
   <TableFrom Name="oc4j_jsp(threadsafe=true)" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="name" Type="String">
    <ColumnFrom Name="Name" Table="oc4j_jsp(threadsafe=true)"/>
   </Column>

   <Column Name="web_module" Type="String">
    <ColumnFrom Name="oc4j_context" Table="oc4j_jsp(threadsafe=true)"/>
   </Column>

   <Column Name="application" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_jsp(threadsafe=true)"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="isSingleThreaded" Type="String">
    <Value>false</Value>
   </Column>

   <Column Name="service.active" Type="Integer">
    <Aggregation Operator="Sum" Name="service.active" Table="oc4j_jsp(threadsafe=true)"/>
    <Default>0</Default>
   </Column>

   <Column Name="service.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="service.completed" Table="oc4j_jsp(threadsafe=true)"/>
    <Default>0</Default>
   </Column>

   <Column Name="service.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="service.time" Table="oc4j_jsp(threadsafe=true)"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <Column Name="service.averageTime" Type="Double">
    <Expression Operator="Div">    
      <Expression Operator="Div">
        <Aggregation Operator="Sum" Name="service.time" Table="oc4j_jsp(threadsafe=true)"/>
        <Value Name="milli_to_second">1000</Value>
      </Expression>
      <Aggregation Operator="Sum" Name="service.completed" Table="oc4j_jsp(threadsafe=true)"/>      
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="web_module"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_jsp(threadsafe=true)"/>
      </Condition>
   </Where>
   
  </Select>

  <Select Name="agg_oc4j_jsp_no_rate_single">
   <TableFrom Name="oc4j_jsp(threadsafe=false)" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="name" Type="String">
    <ColumnFrom Name="Name" Table="oc4j_jsp(threadsafe=false)"/>
   </Column>

   <Column Name="web_module" Type="String">
    <ColumnFrom Name="oc4j_context" Table="oc4j_jsp(threadsafe=false)"/>
   </Column>

   <Column Name="application" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_jsp(threadsafe=false)"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="isSingleThreaded" Type="String">
    <Value>true</Value>
   </Column>

   <Column Name="service.active" Type="Integer">
    <Aggregation Operator="Sum" Name="service.active" Table="oc4j_jsp(threadsafe=false)"/>
    <Default>0</Default>
   </Column>

   <Column Name="service.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="service.completed" Table="oc4j_jsp(threadsafe=false)"/>
    <Default>0</Default>
   </Column>

   <Column Name="service.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="service.time" Table="oc4j_jsp(threadsafe=false)"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <Column Name="service.averageTime" Type="Double">
    <Expression Operator="Div">    
      <Expression Operator="Div">
        <Aggregation Operator="Sum" Name="service.time" Table="oc4j_jsp(threadsafe=false)"/>
        <Value Name="milli_to_second">1000</Value>
      </Expression>
      <Aggregation Operator="Sum" Name="service.completed" Table="oc4j_jsp(threadsafe=false)"/>      
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="web_module"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_jsp(threadsafe=false)"/>
      </Condition>
   </Where>
   
  </Select>

  <Union Name="agg_oc4j_jsp_no_rate">
   <TableFrom Name="agg_oc4j_jsp_no_rate_multi"/>
   <TableFrom Name="agg_oc4j_jsp_no_rate_single"/>

   <Column Name="name" Type="String"/>
   <Column Name="web_module" Type="String"/>
   <Column Name="application" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="isSingleThreaded" Type="String"/>
   <Column Name="service.active" Type="Integer"/>
   <Column Name="service.completed" Type="Integer"/>
   <Column Name="service.totalTime" Type="Double"/>
   <Column Name="service.averageTime" Type="Double"/>
  </Union>

 </Table> <!-- agg_oc4j_jsp_no_rate -->

 <Table Name="agg_oc4j_jsp">
  <Label NLSID="oc4j_jsp">OC4J JSP Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jsp_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="web_module" Type="String" Key="true">
   <Label NLSID="web_module_name">Web Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="isSingleThreaded" Type="String">
   <Label NLSID="oc4j_jsp_isSingleThreaded">JSP - Uses Single-thread Model?</Label>
  </ColumnDef>

  <ColumnDef Name="service.active" Type="Integer">
   <Label NLSID="oc4j_jsp_service_active">JSP - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="service.throughput" Type="Double">
   <Label NLSID="oc4j_jsp_service_throughput">JSP - Requests Per Second</Label>
  </ColumnDef>

  <ColumnDef Name="service.time" Type="Double">
   <Label NLSID="oc4j_jsp_service_time">JSP - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.totalTime" Type="Double">
   <Label NLSID="oc4j_jsp_service_totalTime">JSP - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.averageTime" Type="Double">
   <Label NLSID="oc4j_jsp_service_averageTime">JSP - Average Client Processing Time (seconds)</Label>
  </ColumnDef>
  
  <ColumnDef Name="service.completed" Type="Integer">
   <Label NLSID="oc4j_jsp_service_completed">JSP - Invocations</Label>
  </ColumnDef>
   
  <Select Name="agg_oc4j_jsp_result">
   <TableFrom Name="agg_oc4j_jsp_no_rate"/>
   
   <Column Name="name" Type="String"/>
   <Column Name="web_module" Type="String"/>
   <Column Name="application" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="isSingleThreaded" Type="String"/>
   <Column Name="service.active" Type="Integer"/>
   <Column Name="service.completed" Type="Integer"/>
   <Column Name="service.totalTime" Type="Double"/>
   <Column Name="service.averageTime" Type="Double"/>

   <Column Name="service.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="service.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="service.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="service.totalTime"/>
     <ColumnFrom Name="service.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="web_module"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   <GroupBy Name="isSingleThreaded"/>
   <GroupBy Name="service.active"/>
   <GroupBy Name="service.completed"/>
   <GroupBy Name="service.totalTime"/>
   <GroupBy Name="service.averageTime"/>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_jsp_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jsp_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="web_module"/>
       <Value Name="oc4j_web_module"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_web_module"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_jsp -->

 <Table Name="agg_oc4j_top_jsps_by_requests_processed">
  <Label NLSID="oc4j_top_jsps_by_requests_processed">OC4J Top Servlets By Requests Processed</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jsp_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="web_module" Type="String" Key="true">
   <Label NLSID="web_module_name">Web Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="isSingleThreaded" Type="String">
   <Label NLSID="oc4j_jsp_isSingleThreaded">JSP - Uses Single-thread Model?</Label>
  </ColumnDef>

  <ColumnDef Name="service.active" Type="Integer">
   <Label NLSID="oc4j_jsp_service_active">JSP - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="service.throughput" Type="Double">
   <Label NLSID="oc4j_jsp_service_throughput">JSP - Requests Per Second</Label>
  </ColumnDef>

  <ColumnDef Name="service.time" Type="Double">
   <Label NLSID="oc4j_jsp_service_time">JSP - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.totalTime" Type="Double">
   <Label NLSID="oc4j_jsp_service_totalTime">JSP - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.averageTime" Type="Double">
   <Label NLSID="oc4j_jsp_service_averageTime">JSP - Average Client Processing Time (seconds)</Label>
  </ColumnDef>
  
  <ColumnDef Name="service.completed" Type="Integer">
   <Label NLSID="oc4j_jsp_service_completed">JSP - Invocations</Label>
  </ColumnDef>
  
  <Select Name="agg_oc4j_top_jsps_by_requests_processed_result">
   <TableFrom Name="agg_oc4j_jsp"/>   <!-- should automatically select all columns --> 
   <!-- get top 25 rows, ordered by requests processed -->
   <OrderBy Name="service.completed"/>
   <RowRetained>25</RowRetained>
   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="web_module"/>
       <Value Name="oc4j_web_module"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_web_module"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>
  </Select>
  
 </Table> <!-- agg_oc4j_top_jsps_by_requests_processed -->

 <Table Name="agg_oc4j_top_jsps_by_processing_time">
  <Label NLSID="oc4j_top_jsps_by_processing_time">OC4J Top JSPs By Total Client Processing Time</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jsp_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="web_module" Type="String" Key="true">
   <Label NLSID="web_module_name">Web Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="isSingleThreaded" Type="String">
   <Label NLSID="oc4j_jsp_isSingleThreaded">JSP - Uses Single-thread Model?</Label>
  </ColumnDef>

  <ColumnDef Name="service.active" Type="Integer">
   <Label NLSID="oc4j_jsp_service_active">JSP - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="service.throughput" Type="Double">
   <Label NLSID="oc4j_jsp_service_throughput">JSP - Requests Per Second</Label>
  </ColumnDef>

  <ColumnDef Name="service.time" Type="Double">
   <Label NLSID="oc4j_jsp_service_time">JSP - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.totalTime" Type="Double">
   <Label NLSID="oc4j_jsp_service_totalTime">JSP - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="service.averageTime" Type="Double">
   <Label NLSID="oc4j_jsp_service_averageTime">JSP - Average Client Processing Time (seconds)</Label>
  </ColumnDef>
  
  <ColumnDef Name="service.completed" Type="Integer">
   <Label NLSID="oc4j_jsp_service_completed">JSP - Invocations</Label>
  </ColumnDef>
  
  <Select Name="agg_oc4j_top_jsps_by_processing_time_result">
   <TableFrom Name="agg_oc4j_jsp"/>   <!-- should automatically select all columns -->
   <!-- get top 25 rows, ordered by total client request processing time -->
   <OrderBy Name="service.totalTime"/>
   <RowRetained>25</RowRetained>
   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="web_module"/>
       <Value Name="oc4j_web_module"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_web_module"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>
  </Select>
  
 </Table> <!-- agg_oc4j_top_jsps_by_processing_time -->

 <Table Name="agg_oc4j_web_module_no_rate">
  <Label NLSID="agg_oc4j_web_module_no_rate">OC4J Web Module Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_web_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="session.active" Type="Integer">
   <Label NLSID="oc4j_web_session_active">Web Module - Active Sessions</Label>
  </ColumnDef>

  <ColumnDef Name="request.active" Type="Integer">
   <Label NLSID="oc4j_web_request_active">Web Module - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="request.completed" Type="Integer">
   <Label NLSID="oc4j_web_completed">Web Module - Requests Completed</Label>
  </ColumnDef>

  <ColumnDef Name="request.totalTime" Type="Double">
   <Label NLSID="oc4j_web_totalTime">Web Module - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_web_module_no_rate_result">
   <TableFrom Name="oc4j_context" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="name" Type="String">
    <ColumnFrom Name="Name" Table="oc4j_context"/>
   </Column>

   <Column Name="application" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_context"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="session.active" Type="Integer">
    <Aggregation Operator="Sum" Name="sessionActivation.active" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.active" Type="Integer">
    <Aggregation Operator="Sum" Name="processRequest.active" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="processRequest.completed" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="processRequest.time" Table="oc4j_context"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_context"/>
      </Condition>
   </Where>
   
  </Select>

 </Table> <!-- agg_oc4j_web_module_no_rate -->

 <Table Name="agg_oc4j_web_module">
  <Label NLSID="agg_oc4j_web_module">OC4J Web Module Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_web_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="session.active" Type="Integer">
   <Label NLSID="oc4j_web_session_active">Web Module - Active Sessions</Label>
  </ColumnDef>

  <ColumnDef Name="request.active" Type="Integer">
   <Label NLSID="oc4j_web_request_active">Web Module - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="request.completed" Type="Integer">
   <Label NLSID="oc4j_web_completed">Web Module - Requests Completed</Label>
  </ColumnDef>

  <ColumnDef Name="request.totalTime" Type="Double">
   <Label NLSID="oc4j_web_totalTime">Web Module - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="request.throughput" Type="Double">
   <Label NLSID="oc4j_web_throughput">Web Module - Requests Per Second</Label>
  </ColumnDef>

  <ColumnDef Name="request.time" Type="Double">
   <Label NLSID="oc4j_web_time">Web Module - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_web_module_result">
   <TableFrom Name="agg_oc4j_web_module_no_rate"/>

   <Column Name="name" Type="String"/>
   <Column Name="application" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="session.active" Type="Integer"/>
   <Column Name="request.active" Type="Integer"/>
   <Column Name="request.completed" Type="Integer"/>
   <Column Name="request.totalTime" Type="Double"/>

   <Column Name="request.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="request.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="request.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="request.totalTime"/>
     <ColumnFrom Name="request.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   <GroupBy Name="session.active"/>
   <GroupBy Name="request.active"/>
   <GroupBy Name="request.completed"/>
   <GroupBy Name="request.totalTime"/>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_web_module_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_web_module_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_web_module_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_web_module_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_web_module -->

 <Table Name="agg_oc4j_ejb_no_rate">
  <Label NLSID="agg_oc4j_ejb_no_rate">OC4J EJB Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="ejb_name">EJB Name</Label>
  </ColumnDef>

  <ColumnDef Name="ejb_module" Type="String" Key="true">
   <Label NLSID="ejb_module_name">EJB Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="type" Type="String">
   <Label NLSID="ejb_type">EJB Type</Label>
  </ColumnDef>

  <ColumnDef Name="persistence" Type="String">
   <Label NLSID="ejb_persistence">Persistence Type (applies only to entity beans)</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_ejb_active">EJB - Active Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_ejb_completed">EJB - Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_ejb_totalTime">EJB - Total Method Execution Time (seconds)</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_ejb_no_rate_no_persistence">
   <TableFrom Name="oc4j_ejb_method" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="name" Type="String">
    <If>
     <Condition Operator="NE">
      <ColumnFrom Name="oc4j_ejb_stateless_bean" Table="oc4j_ejb_method"/>
       <Null/>
     </Condition>
    <Then>
     <ColumnFrom Name="oc4j_ejb_stateless_bean" Table="oc4j_ejb_method"/>
    </Then>
    <ElseIf>
     <Condition Operator="NE">
      <ColumnFrom Name="oc4j_ejb_stateful_bean" Table="oc4j_ejb_method"/>
       <Null/>
     </Condition>
     <Then>
      <ColumnFrom Name="oc4j_ejb_stateful_bean" Table="oc4j_ejb_method"/>
     </Then>
    </ElseIf>
   <ElseIf>
     <Condition Operator="NE">
      <ColumnFrom Name="oc4j_ejb_entity_bean" Table="oc4j_ejb_method"/>
       <Null/>
     </Condition>
     <Then>
      <ColumnFrom Name="oc4j_ejb_entity_bean" Table="oc4j_ejb_method"/>
     </Then>
    </ElseIf>    
    <Else>
     <ColumnFrom Name="oc4j_ejb_message-driven_bean" Table="oc4j_ejb_method"/>
    </Else>
    </If>
   </Column>

   <Column Name="type" Type="String">
    <If>
     <Condition Operator="NE">
      <ColumnFrom Name="oc4j_ejb_stateless_bean" Table="oc4j_ejb_method"/>
      <Null/>
     </Condition>
    <Then>
     <Value>stateless</Value>
    </Then>
    <ElseIf>
     <Condition Operator="NE">
      <ColumnFrom Name="oc4j_ejb_stateful_bean" Table="oc4j_ejb_method"/>
      <Null/>
     </Condition>
    <Then>
     <Value>stateful</Value>
    </Then>
    </ElseIf>
    <ElseIf>
     <Condition Operator="NE">
      <ColumnFrom Name="oc4j_ejb_entity_bean" Table="oc4j_ejb_method"/>
      <Null/>
     </Condition>
    <Then>
     <Value>entity</Value>
    </Then>
    </ElseIf>    
    <Else>
     <Value>mdb</Value>
    </Else>
    </If>
   </Column>

   <Column Name="ejb_module" Type="String">
    <ColumnFrom Name="oc4j_ejb_pkg" Table="oc4j_ejb_method"/>
   </Column>

   <Column Name="application" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_ejb_method"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="method.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.completed" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.active" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.active" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="wrapper.time" Table="oc4j_ejb_method"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="ejb_module"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <!-- This is stupid, but we need to name these three columns
        to avoid warnings -->
   <GroupBy Name="oc4j_ejb_stateless_bean"/>
   <GroupBy Name="oc4j_ejb_stateful_bean"/>
   <GroupBy Name="oc4j_ejb_entity_bean"/>
   <GroupBy Name="oc4j_ejb_message-driven_bean"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_ejb_method"/>
      </Condition>
   </Where>
   
  </Select>

  <Select Name="agg_oc4j_ejb_no_rate_persistence">
   <TableFrom Name="oc4j_ejb_entity_bean" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="name" Type="String">
    <ColumnFrom Name="Name" Table="oc4j_ejb_entity_bean"/>
   </Column>

   <Column Name="ejb_module" Type="String">
    <ColumnFrom Name="oc4j_ejb_pkg" Table="oc4j_ejb_entity_bean"/>
   </Column>

   <Column Name="application" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_ejb_entity_bean"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="persistence" Type="String">
    <ColumnFrom Name="persistence-type.value" Table="oc4j_ejb_entity_bean"/>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="ejb_module"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   <GroupBy Name="persistence"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_ejb_entity_bean"/>
      </Condition>
   </Where>
    
  </Select>


  <Select Name="agg_oc4j_ejb_no_rate_result">
   <TableFrom Name="agg_oc4j_ejb_no_rate_no_persistence" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_ejb_no_rate_persistence"/>

   <Column Name="name" Type="String">
    <ColumnFrom Name="name" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
   </Column>

   <Column Name="ejb_module" Type="String">
    <ColumnFrom Name="ejb_module" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
   </Column>

   <Column Name="application" Type="String">
    <ColumnFrom Name="application" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="as_instance" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
   </Column>

   <Column Name="type" Type="String">
    <ColumnFrom Name="type" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
   </Column>
	 
   <Column Name="persistence" Type="String">
    <ColumnFrom Name="persistence-type.value" Table="agg_oc4j_ejb_no_rate_persistence"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
   </Column>

   <Where>
    <And>
     <Condition Operator="EQ" Type="String">
      <ColumnFrom Name="name" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
      <ColumnFrom Name="name" Table="agg_oc4j_ejb_no_rate_persistence"/>
     </Condition>

     <Condition Operator="EQ" Type="String">
      <ColumnFrom Name="ejb_module" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
      <ColumnFrom Name="ejb_module" Table="agg_oc4j_ejb_no_rate_persistence"/>
     </Condition>

     <Condition Operator="EQ" Type="String">
      <ColumnFrom Name="application" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
      <ColumnFrom Name="application" Table="agg_oc4j_ejb_no_rate_persistence"/>
     </Condition>

     <Condition Operator="EQ" Type="String">
      <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
      <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_ejb_no_rate_persistence"/>
     </Condition>

     <Condition Operator="EQ" Type="String">
      <ColumnFrom Name="as_instance" Table="agg_oc4j_ejb_no_rate_no_persistence"/>
      <ColumnFrom Name="as_instance" Table="agg_oc4j_ejb_no_rate_persistence"/>
     </Condition>
    </And>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_ejb_no_rate -->

 <Table Name="agg_oc4j_ejb">
  <Label NLSID="agg_oc4j_ejb">OC4J EJB Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="ejb_name">EJB Name</Label>
  </ColumnDef>

  <ColumnDef Name="ejb_module" Type="String" Key="true">
   <Label NLSID="ejb_module_name">EJB Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="type" Type="String">
   <Label NLSID="ejb_type">EJB Type</Label>
  </ColumnDef>

  <ColumnDef Name="persistence" Type="String">
   <Label NLSID="ejb_persistence">Persistence Type (applies only to entity beans)</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_ejb_active">EJB - Active Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_ejb_completed">EJB - Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_ejb_totalTime">EJB - Total Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.time" Type="Double">
   <Label NLSID="oc4j_ejb_time">EJB - Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.throughput" Type="Double">
   <Label NLSID="oc4j_ejb_throughput">EJB - Methods Executed per Second</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_ejb_result">
   <TableFrom Name="agg_oc4j_ejb_no_rate"/>

   <Column Name="name" Type="String"/>
   <Column Name="ejb_module" Type="String"/>
   <Column Name="application" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="type" Type="String"/>
   <Column Name="persistence" Type="String"/>
   <Column Name="method.active" Type="Integer"/>
   <Column Name="method.completed" Type="Integer"/>
   <Column Name="method.totalTime" Type="Double"/>

   <Column Name="method.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="method.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.totalTime"/>
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_ejb_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_ejb_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="ejb_module"/>
       <Value Name="oc4j_ejb_module"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_ejb_module"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>     
    </And>
   </Where>

  </Select>
	
 </Table> <!-- agg_oc4j_ejb -->

 <Table Name="agg_oc4j_ejb_module_no_rate">
  <Label NLSID="agg_oc4j_ejb_module_no_rate">OC4J EJB Module Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="ejb_module_name">EJB Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_ejb_module_active">EJB Module - Active Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_ejb_module_completed">EJB Module - Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_ejb_module_totalTime">EJB Module - Total Method Execution Time (seconds)</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_ejb_module_no_rate_result">
   <TableFrom Name="oc4j_ejb_method" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="name" Type="String">
    <ColumnFrom Name="oc4j_ejb_pkg" Table="oc4j_ejb_method"/>
   </Column>

   <Column Name="application" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_ejb_method"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="method.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.completed" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.active" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.active" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="wrapper.time" Table="oc4j_ejb_method"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_ejb_method"/>
      </Condition>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_ejb_module_no_rate -->
 
 <Table Name="agg_oc4j_ejb_module">
  <Label NLSID="agg_oc4j_ejb_module">OC4J EJB Module Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="ejb_module_name">EJB Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_ejb_module_active">EJB Module - Active Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_ejb_module_completed">EJB Module - Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_ejb_module_totalTime">EJB Module - Total Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.time" Type="Double">
   <Label NLSID="oc4j_ejb_module_time">EJB Module - Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.throughput" Type="Double">
   <Label NLSID="oc4j_ejb_module_throughput">EJB Module - Methods Executed per Second</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_ejb_module_result">
   <TableFrom Name="agg_oc4j_ejb_module_no_rate"/>

   <Column Name="name" Type="String"/>
   <Column Name="application" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="method.active" Type="Integer"/>
   <Column Name="method.completed" Type="Integer"/>
   <Column Name="method.totalTime" Type="Double"/>

   <Column Name="method.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="method.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.totalTime"/>
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_ejb_module_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_ejb_module_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_ejb_module_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_ejb_module_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>     
    </And>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_ejb_module_no_rate -->

 <Table Name="agg_oc4j_application_no_rate">
  <Label NLSID="agg_oc4j_application_no_rate">OC4J Application Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_app_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>
  
  <ColumnDef Name="session.active" Type="Integer">
   <Label NLSID="oc4j_app_session_active">Application - Active Sessions</Label>
  </ColumnDef>

  <ColumnDef Name="request.active" Type="Integer">
   <Label NLSID="oc4j_app_request_active">Application - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="request.completed" Type="Integer">
   <Label NLSID="oc4j_app_completed">Application - Requests Completed</Label>
  </ColumnDef>

  <ColumnDef Name="request.totalTime" Type="Double">
   <Label NLSID="oc4j_app_totalTime">Application - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_app_method_active">Application - Active Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_app_method_completed">Application - Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_app_method_totalTime">Application - Total Method Execution Time (seconds)</Label>
  </ColumnDef>

  <!-- Get all the web module metrics for the application -->
  <Select Name="agg_oc4j_app_no_rate_web_metrics">
   <TableFrom Name="oc4j_context" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="name" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_context"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="session.active" Type="Integer">
    <Aggregation Operator="Sum" Name="sessionActivation.active" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.active" Type="Integer">
    <Aggregation Operator="Sum" Name="processRequest.active" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="processRequest.completed" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="processRequest.time" Table="oc4j_context"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_context"/>
      </Condition>
   </Where>
   
  </Select>

  <!-- Get all the EJB Module metrics for the application -->
  <Select Name="agg_oc4j_app_no_rate_ejb_metrics">
   <TableFrom Name="oc4j_ejb_method" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="name" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_ejb_method"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="method.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.completed" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.active" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.active" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="wrapper.time" Table="oc4j_ejb_method"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_ejb_method"/>
      </Condition>
   </Where>

  </Select>

  <!-- Join together the web and ejb metrics -->
  <Select Name="agg_oc4j_app_no_rate_result">
   <TableFrom Name="agg_oc4j_app_no_rate_web_metrics" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_app_no_rate_ejb_metrics" OuterJoined="true"/>

   <Column Name="name_from_web" Type="String">
    <ColumnFrom Name="name" Table="agg_oc4j_app_no_rate_web_metrics"/>
   </Column>

   <Column Name="name_from_ejb" Type="String">
    <ColumnFrom Name="name" Table="agg_oc4j_app_no_rate_ejb_metrics"/>
   </Column>

   <Column Name="name" Type="String">
    <If>
     <Condition Operator="NE">
      <ColumnFrom Name="name_from_web"/>
       <Null/>
     </Condition>
    <Then>
     <ColumnFrom Name="name_from_web"/>
    </Then>
    <Else>
     <ColumnFrom Name="name_from_ejb"/>
    </Else>
   </If>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_app_no_rate_web_metrics"/>     
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="as_instance" Table="agg_oc4j_app_no_rate_web_metrics"/>     
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_app_no_rate_web_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_app_no_rate_web_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_app_no_rate_web_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_app_no_rate_web_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_app_no_rate_ejb_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_app_no_rate_ejb_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_app_no_rate_ejb_metrics"/>
    <Default>0</Default>
   </Column>

   <Where>
    <And>
     <Condition Operator="EQ" Type="String">
      <ColumnFrom Name="name" Table="agg_oc4j_app_no_rate_web_metrics"/>
      <ColumnFrom Name="name" Table="agg_oc4j_app_no_rate_ejb_metrics"/>
     </Condition>
     
     <Condition Operator="EQ" Type="String">
      <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_app_no_rate_web_metrics"/>
      <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_app_no_rate_ejb_metrics"/>
     </Condition>

     <Condition Operator="EQ" Type="String">
      <ColumnFrom Name="as_instance" Table="agg_oc4j_app_no_rate_web_metrics"/>
      <ColumnFrom Name="as_instance" Table="agg_oc4j_app_no_rate_ejb_metrics"/>
     </Condition>
    </And>
   </Where>

  </Select>
	
 </Table> <!-- agg_oc4j_application_no_rate -->

 <Table Name="agg_oc4j_application">
  <Label NLSID="agg_oc4j_application">OC4J Application Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_app_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="session.active" Type="Integer">
   <Label NLSID="oc4j_app_session_active">Application - Active Sessions</Label>
  </ColumnDef>

  <ColumnDef Name="request.active" Type="Integer">
   <Label NLSID="oc4j_app_request_active">Application - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="request.completed" Type="Integer">
   <Label NLSID="oc4j_app_completed">Application - Requests Completed</Label>
  </ColumnDef>

  <ColumnDef Name="request.totalTime" Type="Double">
   <Label NLSID="oc4j_app_totalTime">Application - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="request.time" Type="Double">
   <Label NLSID="oc4j_app_time">Application - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="request.throughput" Type="Double">
   <Label NLSID="oc4j_app_throughput">Application - Requests per Seconds</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_app_method_active">Application - Active Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_app_method_completed">Application - Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_app_method_totalTime">Application - Total Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.time" Type="Double">
   <Label NLSID="oc4j_app_method_time">Application - Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.throughput" Type="Double">
   <Label NLSID="oc4j_app_method_throughput">Application - Methods Executed per Second</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_application_result">
   <TableFrom Name="agg_oc4j_application_no_rate"/>

   <Column Name="name" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="session.active" Type="Integer"/>
   <Column Name="request.active" Type="Integer"/>
   <Column Name="request.completed" Type="Integer"/>
   <Column Name="request.totalTime" Type="Double"/>

   <Column Name="request.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="request.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="request.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="request.totalTime"/>
     <ColumnFrom Name="request.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="method.active" Type="Integer"/>
   <Column Name="method.completed" Type="Integer"/>
   <Column Name="method.totalTime" Type="Double"/>

   <Column Name="method.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>
   
   <Column Name="method.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.totalTime"/>
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   <GroupBy Name="session.active"/>
   <GroupBy Name="request.active"/>
   <GroupBy Name="request.completed"/>
   <GroupBy Name="request.totalTime"/>
   <GroupBy Name="method.active"/>
   <GroupBy Name="method.completed"/>
   <GroupBy Name="method.totalTime"/>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_application_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_application_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

  </Select>
	
 </Table> <!-- agg_oc4j_application -->

 <Table Name="agg_oc4j_instance_no_rate">
  <Label NLSID="agg_oc4j_instance_no_rate">OC4J Instance Metrics Without Rates</Label>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="session.active" Type="Integer">
   <Label NLSID="oc4j_instance_session_active">Instance - Active Sessions</Label>
  </ColumnDef>

  <ColumnDef Name="request.active" Type="Integer">
   <Label NLSID="oc4j_instance_request_active">Instance - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="request.completed" Type="Integer">
   <Label NLSID="oc4j_instance_completed">Instance - Requests Completed</Label>
  </ColumnDef>

  <ColumnDef Name="request.totalTime" Type="Double">
   <Label NLSID="oc4j_instance_totalTime">Instance - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_instance_method_active">Instance - Active Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_instance_method_completed">Instance - Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_instance_method_totalTime">Instance - Total Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="startTime.value" Type="Long">
   <Label NLSID="oc4j_instance_startTime">Instance - Start Time (ms since Epoch)</Label>
  </ColumnDef>

  <ColumnDef Name="heap.value" Type="Double">
   <Label NLSID="oc4j_instance_heap">Instance - Heap Usage (MB)</Label>
  </ColumnDef>

  <ColumnDef Name="jdbcConnection.active" Type="Integer">
   <Label NLSID="oc4j_instance_open_connections">Instance - Open JDBC Connections</Label>
  </ColumnDef>

  <ColumnDef Name="jdbcConnection.total" Type="Integer">
   <Label NLSID="oc4j_instance_total_connections">Instance - Total JDBC Connections</Label>
  </ColumnDef>

  <ColumnDef Name="transaction.active" Type="Integer">
   <Label NLSID="oc4j_instance_active_transactions">Instance - Active Transactions</Label>
  </ColumnDef>

  <ColumnDef Name="transaction.commit" Type="Integer">
   <Label NLSID="oc4j_instance_committed_transactions">Instance - Transactions Committed Since Startup</Label>
  </ColumnDef>

  <ColumnDef Name="transaction.rollback" Type="Integer">
   <Label NLSID="oc4j_instance_rolledback_transactions">Instance - Transactions Rolled-back Since Startup</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_instance_no_rate_web_metrics">
   <TableFrom Name="oc4j_context" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="session.active" Type="Integer">
    <Aggregation Operator="Sum" Name="sessionActivation.active" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.active" Type="Integer">
    <Aggregation Operator="Sum" Name="processRequest.active" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="processRequest.completed" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="processRequest.time" Table="oc4j_context"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_context"/>
      </Condition>
   </Where>

  </Select>

  <Select Name="agg_oc4j_instance_no_rate_ejb_metrics">
   <TableFrom Name="oc4j_ejb_method" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="method.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.completed" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.active" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.active" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="wrapper.time" Table="oc4j_ejb_method"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   
   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_ejb_method"/>
      </Condition>
   </Where>

  </Select>

  <Select Name="agg_oc4j_instance_no_rate_jvm_metrics">
   <TableFrom Name="JVM" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="startTime.value" Type="Long">
    <Aggregation Operator="Min" Name="startTime.value" Table="JVM"/>
   </Column>
   
   <Column Name="totalMem.value" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="totalMemory.value" Table="JVM"/>
      <Value Name="kb_to_mb">1024</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <Column Name="freeMem.value" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="freeMemory.value" Table="JVM"/>
      <Value Name="kb_to_mb">1024</Value>
    </Expression>
    <Default>0</Default>
   </Column>
   
   <Column Name="heap.value" Type="Double">
    <Expression Operator="Minus">
      <ColumnFrom Name="totalMem.value"/>
      <ColumnFrom Name="freeMem.value"/>
    </Expression>
   </Column>

   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   
   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="JVM"/>
      </Condition>
   </Where>

  </Select>

  <Select Name="agg_oc4j_instance_no_rate_jdbc_metrics">
   <TableFrom Name="jdbc_connection_pool_stats" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="jdbcConnection.active" Type="Integer">
    <Expression Operator="Minus">
      <Aggregation Operator="Sum" Name="PoolSize.value" Table="jdbc_connection_pool_stats"/>
      <Aggregation Operator="Sum" Name="FreePoolSize.value" Table="jdbc_connection_pool_stats"/>
    </Expression>
    <Default>0</Default>
   </Column>

   <Column Name="jdbcConnection.total" Type="Integer">
    <Aggregation Operator="Sum" Name="PoolSize.value" Table="jdbc_connection_pool_stats"/>
    <Default>0</Default>
   </Column>

   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   
   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="jdbc_connection_pool_stats"/>
      </Condition>
   </Where>

  </Select>

  <Select Name="agg_oc4j_instance_no_rate_jta_metrics">
   <TableFrom Name="JTAResource" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="transaction.active" Type="Integer">
    <Aggregation Operator="Sum" Name="ActiveCount.value" Table="JTAResource"/>
    <Default>0</Default>
   </Column>

   <Column Name="transaction.commit" Type="Integer">
    <Aggregation Operator="Sum" Name="CommittedCount.value" Table="JTAResource"/>
    <Default>0</Default>
   </Column>

   <Column Name="transaction.rollback" Type="Integer">
    <Aggregation Operator="Sum" Name="RolledbackCount.value" Table="JTAResource"/>
    <Default>0</Default>
   </Column>

   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   
   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="JTAResource"/>
      </Condition>
   </Where>

  </Select>

  <Select Name="agg_oc4j_instance_no_rate_result1">
   <TableFrom Name="agg_oc4j_instance_no_rate_web_metrics" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_instance_no_rate_ejb_metrics" OuterJoined="true"/>

   <Column Name="oc4j_instance" Type="String" Key="true">
     <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_web_metrics"/>
   </Column>

   <Column Name="as_instance" Type="String" Key="true">
     <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_web_metrics"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_instance_no_rate_web_metrics"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_instance_no_rate_web_metrics"/>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_instance_no_rate_web_metrics"/>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_instance_no_rate_web_metrics"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_instance_no_rate_ejb_metrics"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_instance_no_rate_ejb_metrics"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_instance_no_rate_ejb_metrics"/>
   </Column>

   <Where>
     <And>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_web_metrics"/>
       <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_ejb_metrics"/>
      </Condition>

      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_web_metrics"/>
       <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_ejb_metrics"/>
      </Condition>
     </And>
   </Where>

  </Select>

  <Select Name="agg_oc4j_instance_no_rate_result2">
   <TableFrom Name="agg_oc4j_instance_no_rate_result1" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_instance_no_rate_jvm_metrics" OuterJoined="true"/>

   <Column Name="oc4j_instance" Type="String" Key="true">
     <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_result1"/>
   </Column>

   <Column Name="as_instance" Type="String" Key="true">
     <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_result1"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_instance_no_rate_result1"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_instance_no_rate_result1"/>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_instance_no_rate_result1"/>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_instance_no_rate_result1"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_instance_no_rate_result1"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_instance_no_rate_result1"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_instance_no_rate_result1"/>
   </Column>

   <Column Name="startTime.value" Type="Long">
    <ColumnFrom Name="startTime.value" Table="agg_oc4j_instance_no_rate_jvm_metrics"/>
   </Column>

   <Column Name="heap.value" Type="Double">
    <ColumnFrom Name="heap.value" Table="agg_oc4j_instance_no_rate_jvm_metrics"/>
   </Column>

   <Where>
     <And>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_result1"/>
       <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_jvm_metrics"/>
      </Condition>

      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_result1"/>
       <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_jvm_metrics"/>
      </Condition>
     </And>
   </Where>

  </Select>


  <Select Name="agg_oc4j_instance_no_rate_result3">
   <TableFrom Name="agg_oc4j_instance_no_rate_result2" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_instance_no_rate_jdbc_metrics" OuterJoined="true"/>

   <Column Name="oc4j_instance" Type="String" Key="true">
     <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="as_instance" Type="String" Key="true">
     <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="startTime.value" Type="Long">
    <ColumnFrom Name="startTime.value" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="heap.value" Type="Double">
    <ColumnFrom Name="heap.value" Table="agg_oc4j_instance_no_rate_result2"/>
   </Column>

   <Column Name="jdbcConnection.active" Type="Integer">
    <ColumnFrom Name="jdbcConnection.active" Table="agg_oc4j_instance_no_rate_jdbc_metrics"/>
   </Column>

   <Column Name="jdbcConnection.total" Type="Integer">
    <ColumnFrom Name="jdbcConnection.total" Table="agg_oc4j_instance_no_rate_jdbc_metrics"/>
   </Column>

   <Where>
     <And>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_result2"/>
       <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_jdbc_metrics"/>
      </Condition>
      
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_result2"/>
       <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_jdbc_metrics"/>
      </Condition>
     </And>
   </Where>
  </Select>


  <Select Name="agg_oc4j_instance_no_rate_result4">
   <TableFrom Name="agg_oc4j_instance_no_rate_result3" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_instance_no_rate_jta_metrics" OuterJoined="true"/>

   <Column Name="oc4j_instance" Type="String" Key="true">
     <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="as_instance" Type="String" Key="true">
     <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="startTime.value" Type="Long">
    <ColumnFrom Name="startTime.value" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="heap.value" Type="Double">
    <ColumnFrom Name="heap.value" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="jdbcConnection.active" Type="Integer">
    <ColumnFrom Name="jdbcConnection.active" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="jdbcConnection.total" Type="Integer">
    <ColumnFrom Name="jdbcConnection.total" Table="agg_oc4j_instance_no_rate_result3"/>
   </Column>

   <Column Name="transaction.active" Type="Integer">
    <ColumnFrom Name="transaction.active" Table="agg_oc4j_instance_no_rate_jta_metrics"/>
   </Column>

   <Column Name="transaction.commit" Type="Integer">
    <ColumnFrom Name="transaction.commit" Table="agg_oc4j_instance_no_rate_jta_metrics"/>
   </Column>

   <Column Name="transaction.rollback" Type="Integer">
    <ColumnFrom Name="transaction.rollback" Table="agg_oc4j_instance_no_rate_jta_metrics"/>
   </Column>

   <Where>
     <And>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_result3"/>
       <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_instance_no_rate_jta_metrics"/>
      </Condition>

      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_result3"/>
       <ColumnFrom Name="as_instance" Table="agg_oc4j_instance_no_rate_jta_metrics"/>
      </Condition>
     </And>
   </Where>

  </Select>
	
 </Table> <!-- agg_oc4j_instance_no_rate -->

 <Table Name="agg_oc4j_instance">
  <Label NLSID="agg_oc4j_instance">OC4J Instance Metrics</Label>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="session.active" Type="Integer">
   <Label NLSID="oc4j_instance_session_active">Instance - Active Sessions</Label>
  </ColumnDef>

  <ColumnDef Name="request.active" Type="Integer">
   <Label NLSID="oc4j_instance_request_active">Instance - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="request.completed" Type="Integer">
   <Label NLSID="oc4j_instance_completed">Instance - Requests Completed</Label>
  </ColumnDef>

  <ColumnDef Name="request.totalTime" Type="Double">
   <Label NLSID="oc4j_instance_totalTime">Instance - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="request.throughput" Type="Double">
   <Label NLSID="oc4j_web_throughput">Web Module - Requests Per Second</Label>
  </ColumnDef>

  <ColumnDef Name="request.time" Type="Double">
   <Label NLSID="oc4j_web_time">Web Module - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_instance_method_active">Instance - Active Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_instance_method_completed">Instance - Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_instance_method_totalTime">Instance - Total Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.time" Type="Double">
   <Label NLSID="oc4j_ejb_time">EJB - Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.throughput" Type="Double">
   <Label NLSID="oc4j_ejb_throughput">EJB - Methods Executed per Second</Label>
  </ColumnDef>

  <ColumnDef Name="startTime.value" Type="Long">
   <Label NLSID="oc4j_instance_startTime">Instance - Start Time (ms since Epoch)</Label>
  </ColumnDef>

  <ColumnDef Name="heap.value" Type="Double">
   <Label NLSID="oc4j_instance_heap">Instance - Heap Usage (MB)</Label>
  </ColumnDef>

  <ColumnDef Name="jdbcConnection.active" Type="Integer">
   <Label NLSID="oc4j_instance_open_connections">Instance - Open JDBC Connections</Label>
  </ColumnDef>

  <ColumnDef Name="jdbcConnection.total" Type="Integer">
   <Label NLSID="oc4j_instance_total_connections">Instance - Total JDBC Connections</Label>
  </ColumnDef>

  <ColumnDef Name="transaction.active" Type="Integer">
   <Label NLSID="oc4j_instance_active_transactions">Instance - Active Transactions</Label>
  </ColumnDef>

  <ColumnDef Name="transaction.commit" Type="Integer">
   <Label NLSID="oc4j_instance_committed_transactions">Instance - Transactions Committed Since Startup</Label>
  </ColumnDef>

  <ColumnDef Name="transaction.rollback" Type="Integer">
   <Label NLSID="oc4j_instance_rolledback_transactions">Instance - Transactions Rolled-back Since Startup</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_instance_result">
   <TableFrom Name="agg_oc4j_instance_no_rate"/>

   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="session.active" Type="Integer"/>
   <Column Name="request.active" Type="Integer"/>
   <Column Name="request.completed" Type="Integer"/>
   <Column Name="request.totalTime" Type="Double"/>

   <Column Name="request.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="request.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="request.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="request.totalTime"/>
     <ColumnFrom Name="request.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="method.active" Type="Integer"/>
   <Column Name="method.completed" Type="Integer"/>
   <Column Name="method.totalTime" Type="Double"/>

   <Column Name="method.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="method.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.totalTime"/>
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="startTime.value" Type="Long"/>
   <Column Name="heap.value" Type="Double"/>
   <Column Name="jdbcConnection.active" Type="Integer"/>
   <Column Name="jdbcConnection.total" Type="Integer"/>
   <Column Name="transaction.active" Type="Integer"/>
   <Column Name="transaction.commit" Type="Integer"/>
   <Column Name="transaction.rollback" Type="Integer"/>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_instance -->

 <Table Name="agg_oc4j_webservice_port_no_rate">
  <Label NLSID="agg_oc4j_webservice_port_no_rate">OC4J Web Service Port Metrics Without Rates</Label>

  <ColumnDef Name="webservice_port_name" Type="String" Key="true">
   <Label NLSID="oc4j_webservice_port_name">Web Service Port Name</Label>
  </ColumnDef>

  <ColumnDef Name="webservice_name" Type="String" Key="true">
   <Label NLSID="oc4j_webservice_name">Web Service Name</Label>
  </ColumnDef>

  <ColumnDef Name="module_name" Type="String" Key="true">
   <Label NLSID="module_name">Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="module_type" Type="String" Key="true">
   <Label NLSID="module_type">Module Type</Label>
  </ColumnDef>

  <ColumnDef Name="application_name" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="startTime.value" Type="Long">
   <Label NLSID="oc4j_webservice_startTime">Web Service Port - Start Time (ms since Epoch)</Label>
  </ColumnDef>

  <ColumnDef Name="invocations.value" Type="Integer">
   <Label NLSID="oc4j_webservice_invocations">Web Service Port - Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="POSTs.time" Type="Long">
   <Label NLSID="oc4j_webservice_totaltime">Web Service Port - Total Time for all Invocations (milliseconds)</Label>
  </ColumnDef>

  <ColumnDef Name="faults.value" Type="Integer">
   <Label NLSID="oc4j_webservice_faults">Web Service Port - Faults</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_webservice_port_no_rate_result">
   <TableFrom Name="oc4j_webservice_port" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="webservice_port_name" Type="String">
    <ColumnFrom Name="Name" Table="oc4j_webservice_port"/>
   </Column>

   <Column Name="webservice_name" Type="String">
    <ColumnFrom Name="oc4j_webservice" Table="oc4j_webservice_port"/>
   </Column>

   <Column Name="module_name" Type="String">
    <If>
     <Condition Operator="EQ">
       <ColumnFrom Name="oc4j_web_module" Table="oc4j_webservice_port"/>
       <Value>WEBs</Value>
     </Condition>
     <Then>
       <ColumnFrom Name="oc4j_context" Table="oc4j_webservice_port"/>
     </Then>
     <ElseIf>
       <Condition Operator="EQ">
         <ColumnFrom Name="oc4j_ejb" Table="oc4j_webservice_port"/>
         <Value>EJBs</Value>
       </Condition>
       <Then>
         <ColumnFrom Name="oc4j_ejb_pkg" Table="oc4j_webservice_port"/>
       </Then>
     </ElseIf>
    </If>
   </Column>

   <Column Name="module_type" Type="String">
    <If>
     <Condition Operator="EQ">
       <ColumnFrom Name="oc4j_web_module" Table="oc4j_webservice_port"/>
       <Value>WEBs</Value>
     </Condition>
     <Then>
       <Value>WebModule</Value>
     </Then>
     <ElseIf>
       <Condition Operator="EQ">
         <ColumnFrom Name="oc4j_ejb" Table="oc4j_webservice_port"/>
         <Value>EJBs</Value>
       </Condition>
       <Then>
         <Value>EJBModule</Value>
       </Then>
     </ElseIf>
    </If>
   </Column>

   <Column Name="application_name" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_webservice_port"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>
   
   <Column Name="startTime.value" Type="Long">
    <Aggregation Operator="Min" Name="StartTime.value" Table="oc4j_webservice_port"/>
   </Column>

   <Column Name="invocations.value" Type="Integer">
    <Aggregation Operator="Sum" Name="POSTs.completed" Table="oc4j_webservice_port"/>
    <Default>0</Default>
   </Column>

   <Column Name="POSTs.time" Type="Long">
    <Aggregation Operator="Sum" Name="POSTs.time" Table="oc4j_webservice_port"/>
    <Default>0</Default>
   </Column>

   <Column Name="faults.value" Type="Integer">
    <Aggregation Operator="Sum" Name="TotalFault.count" Table="oc4j_webservice_port"/>
    <Default>0</Default>
   </Column>

   <GroupBy Name="webservice_port_name"/>
   <GroupBy Name="webservice_name"/>
   <GroupBy Name="module_name"/>
   <GroupBy Name="module_type"/>
   <GroupBy Name="application_name"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_webservice_port"/>
      </Condition>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_webservice_port_no_rate -->

 <Table Name="agg_oc4j_webservice_port">
  <Label NLSID="agg_oc4j_webservice_port">OC4J Web Service Port Metrics</Label>

  <ColumnDef Name="webservice_port_name" Type="String" Key="true">
   <Label NLSID="oc4j_webservice_port_name">Web Service Port Name</Label>
  </ColumnDef>

  <ColumnDef Name="webservice_name" Type="String" Key="true">
   <Label NLSID="oc4j_webservice_name">Web Service Name</Label>
  </ColumnDef>

  <ColumnDef Name="module_name" Type="String" Key="true">
   <Label NLSID="module_name">Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="module_type" Type="String" Key="true">
   <Label NLSID="module_type">Module Type</Label>
  </ColumnDef>

  <ColumnDef Name="application_name" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="startTime.value" Type="Long">
   <Label NLSID="oc4j_webservice_startTime">Web Service Port - Start Time (ms since Epoch)</Label>
  </ColumnDef>

  <ColumnDef Name="invocations.value" Type="Integer">
   <Label NLSID="oc4j_webservice_invocations">Web Service Port - Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="responseTime.value" Type="Long">
   <Label NLSID="oc4j_webservice_responseTime">Web Service Port - Response Time (milliseconds)</Label>
  </ColumnDef>

  <ColumnDef Name="faults.value" Type="Integer">
   <Label NLSID="oc4j_webservice_faults">Web Service Port - Faults</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_webservice_port_result">
   <TableFrom Name="agg_oc4j_webservice_port_no_rate"/>   

   <Column Name="webservice_name" Type="String"/>
   <Column Name="webservice_port_name" Type="String"/>
   <Column Name="module_name" Type="String"/>
   <Column Name="module_type" Type="String"/>
   <Column Name="application_name" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="startTime.value" Type="Long"/>
   <Column Name="invocations.value" Type="Integer"/>

   <Column Name="responseTime.value" Type="Long">
     <Rate Interval="300000">
       <ColumnFrom Name="POSTs.time"/>
       <ColumnFrom Name="invocations.value"/>
       <Default>0</Default>
     </Rate>
   </Column>

   <Column Name="faults.value" Type="Integer"/>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="webservice_port_name"/>
       <Value Name="webservice_port_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="webservice_port_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="webservice_name"/>
       <Value Name="webservice_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="webservice_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="module_name"/>
       <Value Name="module_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="module_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="module_type"/>
       <Value Name="module_type"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="module_type"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application_name"/>
       <Value Name="application_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="application_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_webservice_port -->

 <Table Name="agg_oc4j_webservice_operation_no_rate">
  <Label NLSID="agg_oc4j_webservice_operation_no_rate">Web Service Operation Metrics Without Rates</Label>

  <ColumnDef Name="webservice_operation_name" Type="String" Key="true">
   <Label NLSID="webservice_operation_name">Web Service Operation Name</Label>
  </ColumnDef>

  <ColumnDef Name="webservice_port_name" Type="String" Key="true">
   <Label NLSID="webservice_port_name">Web Service Port Name</Label>
  </ColumnDef>

  <ColumnDef Name="webservice_name" Type="String" Key="true">
   <Label NLSID="webservice_name">Web Service Name</Label>
  </ColumnDef>

  <ColumnDef Name="module_name" Type="String" Key="true">
   <Label NLSID="module_name">Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="module_type" Type="String" Key="true">
   <Label NLSID="module_type">Module Type</Label>
  </ColumnDef>

  <ColumnDef Name="application_name" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="requests.value" Type="Integer">
   <Label NLSID="oc4j_webservice_operation_requests">Web Service Operation - Requests</Label>
  </ColumnDef>
  
  <ColumnDef Name="faults.value" Type="Integer">
   <Label NLSID="oc4j_webservice_operation_faults">Web Service Operation - Faults</Label>
  </ColumnDef>

  <ColumnDef Name="invocations.value" Type="Integer">
   <Label NLSID="oc4j_webservice_operation_invocations">Web Service Operation - Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="activeThreads.value" Type="Integer">
   <Label NLSID="oc4j_webservice_operation_activeThreads">Web Service Operation - Active Threads</Label>
  </ColumnDef>

  <ColumnDef Name="maxActiveThreads.value" Type="Integer">
   <Label NLSID="oc4j_webservice_operation_maxActiveThreads">Web Service Operation - Highest Number of Active Threads</Label>
  </ColumnDef>

  <ColumnDef Name="Invoke.time" Type="Long">
   <Label NLSID="oc4j_webservice_operation_totalTime">Web Service Operation - Total Invocation Time (milliseconds)</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_webservice_operation_no_rate_result">
   <TableFrom Name="oc4j_webservice_operation" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="webservice_operation_name" Type="String">
    <ColumnFrom Name="Name" Table="oc4j_webservice_operation"/>
   </Column>

   <Column Name="webservice_port_name" Type="String">
    <ColumnFrom Name="oc4j_webservice_port" Table="oc4j_webservice_operation"/>
   </Column>

   <Column Name="webservice_name" Type="String">
    <ColumnFrom Name="oc4j_webservice" Table="oc4j_webservice_operation"/>
   </Column>

   <Column Name="module_name" Type="String">
    <If>
     <Condition Operator="EQ">
       <ColumnFrom Name="oc4j_web_module" Table="oc4j_webservice_operation"/>
       <Value>WEBs</Value>
     </Condition>
     <Then>
       <ColumnFrom Name="oc4j_context" Table="oc4j_webservice_operation"/>
     </Then>
     <ElseIf>
       <Condition Operator="EQ">
         <ColumnFrom Name="oc4j_ejb" Table="oc4j_webservice_operation"/>
         <Value>EJBs</Value>
       </Condition>
       <Then>
         <ColumnFrom Name="oc4j_ejb_pkg" Table="oc4j_webservice_operation"/>
       </Then>
     </ElseIf>
    </If>
   </Column>

   <Column Name="module_type" Type="String">
    <If>
     <Condition Operator="EQ">
       <ColumnFrom Name="oc4j_web_module" Table="oc4j_webservice_operation"/>
       <Value>WEBs</Value>
     </Condition>
     <Then>
       <Value>WebModule</Value>
     </Then>
     <ElseIf>
       <Condition Operator="EQ">
         <ColumnFrom Name="oc4j_ejb" Table="oc4j_webservice_operation"/>
         <Value>EJBs</Value>
       </Condition>
       <Then>
         <Value>EJBModule</Value>
       </Then>
     </ElseIf>
    </If>
   </Column>

   <Column Name="application_name" Type="String">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_webservice_operation"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="requests.value" Type="Integer">
    <Aggregation Operator="Sum" Name="RequestSize.count" Table="oc4j_webservice_operation"/>
    <Default>0</Default>
   </Column>   

   <Column Name="faults.value" Type="Integer">
    <Aggregation Operator="Sum" Name="FaultCount.count" Table="oc4j_webservice_operation"/>
   </Column>

   <Column Name="Invoke.time" Type="Long">
    <Aggregation Operator="Sum" Name="Invoke.time" Table="oc4j_webservice_operation"/>
    <Default>0</Default>
   </Column>

   <Column Name="invocations.value" Type="Integer">
    <Aggregation Operator="Sum" Name="Invoke.completed" Table="oc4j_webservice_operation"/>
    <Default>0</Default>
   </Column>

   <Column Name="activeThreads.value" Type="Integer">
    <Aggregation Operator="Sum" Name="Invoke.active" Table="oc4j_webservice_operation"/>
    <Default>0</Default>
   </Column>

   <Column Name="maxActiveThreads.value" Type="Integer">
    <Aggregation Operator="Sum" Name="Invoke.maxActive" Table="oc4j_webservice_operation"/>
    <Default>0</Default>
   </Column>

   <GroupBy Name="webservice_operation_name"/>
   <GroupBy Name="webservice_port_name"/>
   <GroupBy Name="webservice_name"/>
   <GroupBy Name="module_name"/>
   <GroupBy Name="module_type"/>
   <GroupBy Name="application_name"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_webservice_operation"/>
      </Condition>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_webservice_operation_no_rate -->
 
 <Table Name="agg_oc4j_webservice_operation">
  <Label NLSID="agg_oc4j_webservice_operation">Web Service Operation Metrics</Label>

  <ColumnDef Name="webservice_operation_name" Type="String" Key="true">
   <Label NLSID="webservice_operation_name">Web Service Operation Name</Label>
  </ColumnDef>

  <ColumnDef Name="webservice_port_name" Type="String" Key="true">
   <Label NLSID="webservice_port_name">Web Service Port Name</Label>
  </ColumnDef>

  <ColumnDef Name="webservice_name" Type="String" Key="true">
   <Label NLSID="webservice_name">Web Service Name</Label>
  </ColumnDef>

  <ColumnDef Name="module_name" Type="String" Key="true">
   <Label NLSID="module_name">Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="module_type" Type="String" Key="true">
   <Label NLSID="module_type">Module Type</Label>
  </ColumnDef>

  <ColumnDef Name="application_name" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="requests.value" Type="Integer">
   <Label NLSID="oc4j_webservice_operation_requests">Web Service Operation - Requests</Label>
  </ColumnDef>
  
  <ColumnDef Name="faults.value" Type="Integer">
   <Label NLSID="oc4j_webservice_operation_faults">Web Service Operation - Faults</Label>
  </ColumnDef>

  <ColumnDef Name="invocations.value" Type="Integer">
   <Label NLSID="oc4j_webservice_operation_invocations">Web Service Operation - Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="activeThreads.value" Type="Integer">
   <Label NLSID="oc4j_webservice_operation_activeThreads">Web Service Operation - Active Threads</Label>
  </ColumnDef>

  <ColumnDef Name="maxActiveThreads.value" Type="Integer">
   <Label NLSID="oc4j_webservice_operation_maxActiveThreads">Web Service Operation - Highest Number of Active Threads</Label>
  </ColumnDef>

  <ColumnDef Name="responseTime.value" Type="Long">
   <Label NLSID="oc4j_webservice_operation_responseTime">Web Service Operation - Average Response Time (milliseconds)</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_webservice_operation_result">
   <TableFrom Name="agg_oc4j_webservice_operation_no_rate"/>

   <Column Name="webservice_operation_name" Type="String"/>
   <Column Name="webservice_port_name" Type="String"/>
   <Column Name="webservice_name" Type="String"/>
   <Column Name="module_name" Type="String"/>
   <Column Name="module_type" Type="String"/>
   <Column Name="application_name" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="requests.value" Type="Integer"/>
   <Column Name="faults.value" Type="Integer"/>

   <Column Name="responseTime.value" Type="Long">
    <Rate Interval="300000">
      <ColumnFrom Name="Invoke.time"/>
      <ColumnFrom Name="invocations.value"/>
      <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="invocations.value" Type="Integer"/>
   <Column Name="activeThreads.value" Type="Integer"/>
   <Column Name="maxActiveThreads.value" Type="Integer"/>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="webservice_operation_name"/>
       <Value Name="webservice_operation_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="webservice_operation_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="webservice_port_name"/>
       <Value Name="webservice_port_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="webservice_port_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="webservice_name"/>
       <Value Name="webservice_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="webservice_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="module_name"/>
       <Value Name="module_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="module_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="module_type"/>
       <Value Name="module_type"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="module_type"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application_name"/>
       <Value Name="application_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="application_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_webservice_operation -->

 <Table Name="agg_oc4j_jta_no_rate">
  <Label NLSID="agg_oc4j_jta_no_rate">JTA Metrics</Label>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="ActiveCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_activeCount">JTA - Active Transactions</Label>
  </ColumnDef>

  <ColumnDef Name="CommittedCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_committedCount">JTA - Committed Transactions</Label>
  </ColumnDef>

  <ColumnDef Name="AverageCommitTime.time" Type="Long">
   <Label NLSID="oc4j_jta_totalCommitTime">JTA - Total Commit Time (milliseconds)</Label>
  </ColumnDef>

  <ColumnDef Name="AverageCommitTime.completed" Type="Long">
   <Label NLSID="oc4j_jta_completedCommits">JTA - Completed Commits</Label>
  </ColumnDef>

  <ColumnDef Name="RolledbackCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_rolledbackCount">JTA - Total Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="RolledbackDueToTimedOutCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_timeoutRollbacks">JTA - Timeout Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="RolledbackDueToResourceCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_resourceRollbacks">JTA - Resource Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="RolledbackDueToAppCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_appRollbacks">JTA - Application Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="RolledbackDueToAdminCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_adminRollbacks">JTA - Administrative Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="HeuristicCommittedCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_heuristicCommits">JTA - Heuristic Commits</Label>
  </ColumnDef>

  <ColumnDef Name="HeuristicRolledbackCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_heuristicRollbacks">JTA - Heuristic Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="HeuristicCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_heuristicTotal">JTA - Total Heuristics</Label>
  </ColumnDef>

  <ColumnDef Name="HeuristicMixedExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_heuristicMixedExceptions">JTA - Heuristic Mixed Exceptions</Label>
  </ColumnDef>

  <ColumnDef Name="HeuristicRollbackExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_heuristicRollbackExceptions">JTA - Heuristic Rollback Exceptions</Label>
  </ColumnDef>

  <ColumnDef Name="IllegalStateExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_illegalStateExceptions">JTA - Illegal State Exceptions</Label>
  </ColumnDef>

  <ColumnDef Name="RollbackExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_rollbackExceptions">JTA - Rollback Exceptions</Label>
  </ColumnDef>

  <ColumnDef Name="SecurityExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_securityExceptions">JTA - Security Exceptions</Label>
  </ColumnDef>

  <ColumnDef Name="SystemExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_systemExceptions">JTA - System Exceptions</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_jta_result">
   <TableFrom Name="JTAResource" OuterJoined="true"/>
   <TableFrom Name="oc4j_opmn"/>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="ActiveCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="ActiveCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="CommittedCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="CommittedCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>

   <Column Name="AverageCommitTime.time" Type="Long">
     <Aggregation Operator="Sum" Name="AverageCommitTime.time" Table="JTAResource"/>
     <Default>0</Default>
   </Column>

   <Column Name="AverageCommitTime.completed" Type="Long">
     <Aggregation Operator="Sum" Name="AverageCommitTime.completed" Table="JTAResource"/>
     <Default>0</Default>
   </Column>

   <Column Name="RolledbackCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="RolledbackCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="RolledbackDueToTimedOutCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="RolledbackDueToTimedOutCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="RolledbackDueToResourceCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="RolledbackDueToResourceCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="RolledbackDueToAppCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="RolledbackDueToAppCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="RolledbackDueToAdminCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="RolledbackDueToAdminCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="HeuristicCommittedCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="HeuristicCommittedCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="HeuristicRolledbackCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="HeuristicRolledbackCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="HeuristicCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="HeuristicCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="HeuristicMixedExceptionCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="HeuristicMixedExceptionCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="HeuristicRollbackExceptionCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="HeuristicRollbackExceptionCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="IllegalStateExceptionCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="IllegalStateExceptionCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="RollbackExceptionCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="RollbackExceptionCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="SecurityExceptionCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="SecurityExceptionCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="SystemExceptionCount.value" Type="Integer">
     <Aggregation Operator="Sum" Name="SystemExceptionCount.value" Table="JTAResource"/>
     <Default>0</Default>
   </Column>   

   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   
   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="JTAResource"/>
      </Condition>
   </Where>
   
  </Select>
 </Table> <!-- agg_oc4j_jta_no_rate -->
 
 <Table Name="agg_oc4j_jta">
  <Label NLSID="agg_oc4j_jta">JTA Metrics</Label>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="ActiveCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_activeCount">JTA - Active Transactions</Label>
  </ColumnDef>

  <ColumnDef Name="CommittedCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_committedCount">JTA - Committed Transactions</Label>
  </ColumnDef>

  <ColumnDef Name="AverageCommitTime.avg" Type="Long">
   <Label NLSID="oc4j_jta_averageCommitTime">JTA - Average Commit Time (milliseconds)</Label>
  </ColumnDef>

  <ColumnDef Name="RolledbackCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_rolledbackCount">JTA - Total Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="RolledbackDueToTimedOutCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_timeoutRollbacks">JTA - Timeout Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="RolledbackDueToResourceCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_resourceRollbacks">JTA - Resource Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="RolledbackDueToAppCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_appRollbacks">JTA - Application Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="RolledbackDueToAdminCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_adminRollbacks">JTA - Administrative Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="HeuristicCommittedCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_heuristicCommits">JTA - Heuristic Commits</Label>
  </ColumnDef>

  <ColumnDef Name="HeuristicRolledbackCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_heuristicRollbacks">JTA - Heuristic Rollbacks</Label>
  </ColumnDef>

  <ColumnDef Name="HeuristicCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_heuristicTotal">JTA - Total Heuristics</Label>
  </ColumnDef>

  <ColumnDef Name="HeuristicMixedExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_heuristicMixedExceptions">JTA - Heuristic Mixed Exceptions</Label>
  </ColumnDef>

  <ColumnDef Name="HeuristicRollbackExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_heuristicRollbackExceptions">JTA - Heuristic Rollback Exceptions</Label>
  </ColumnDef>

  <ColumnDef Name="IllegalStateExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_illegalStateExceptions">JTA - Illegal State Exceptions</Label>
  </ColumnDef>

  <ColumnDef Name="RollbackExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_rollbackExceptions">JTA - Rollback Exceptions</Label>
  </ColumnDef>

  <ColumnDef Name="SecurityExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_securityExceptions">JTA - Security Exceptions</Label>
  </ColumnDef>

  <ColumnDef Name="SystemExceptionCount.value" Type="Integer">
   <Label NLSID="oc4j_jta_systemExceptions">JTA - System Exceptions</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_jta_result">
   <TableFrom Name="agg_oc4j_jta_no_rate"/>

   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="ActiveCount.value" Type="Integer"/>
   <Column Name="CommittedCount.value" Type="Integer"/>

   <Column Name="AverageCommitTime.avg" Type="Long">
     <Rate Interval="300000">
      <ColumnFrom Name="AverageCommitTime.time"/>
      <ColumnFrom Name="AverageCommitTime.completed"/>
      <Default>0</Default>
     </Rate>
   </Column>

   <Column Name="RolledbackCount.value" Type="Integer"/>
   <Column Name="RolledbackDueToTimedOutCount.value" Type="Integer"/>
   <Column Name="RolledbackDueToResourceCount.value" Type="Integer"/>
   <Column Name="RolledbackDueToAppCount.value" Type="Integer"/>
   <Column Name="RolledbackDueToAdminCount.value" Type="Integer"/>
   <Column Name="HeuristicCommittedCount.value" Type="Integer"/>
   <Column Name="HeuristicRolledbackCount.value" Type="Integer"/>
   <Column Name="HeuristicCount.value" Type="Integer"/>
   <Column Name="HeuristicMixedExceptionCount.value" Type="Integer"/>
   <Column Name="HeuristicRollbackExceptionCount.value" Type="Integer"/>
   <Column Name="IllegalStateExceptionCount.value" Type="Integer"/>
   <Column Name="RollbackExceptionCount.value" Type="Integer"/>
   <Column Name="SecurityExceptionCount.value" Type="Integer"/>
   <Column Name="SystemExceptionCount.value" Type="Integer"/>

   <Where>   
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>
   
  </Select>
 </Table> <!-- agg_oc4j_jta -->

 <Table Name="agg_oc4j_jca_pool_no_rate">
   <Label NLSID="agg_oc4j_jca_pool_no_rate">JCA Connection Pool Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jca_pool_name">Connection Pool Name</Label>
  </ColumnDef>

  <ColumnDef Name="resource_adapter" Type="String" Key="true">
   <Label NLSID="resource_adapter_name">Resource Adapter Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

   <ColumnDef Name="openConns" Type="Integer">
     <Label NLSID="oc4j_jca_pool_open_connections">JCA Connection Pool - Open Connections</Label>
   </ColumnDef>

   <ColumnDef Name="availableConns" Type="Integer">
     <Label NLSID="oc4j_jca_pool_available_connections">JCA Connection Pool - Available Connections</Label>
   </ColumnDef>

   <ColumnDef Name="waitingThreads" Type="Integer">
     <Label NLSID="oc4j_jca_pool_waiting_threads">JCA Connection Pool - Waiting Threads</Label>
   </ColumnDef>

   <ColumnDef Name="waitTime.total" Type="Double">
     <Label NLSID="oc4j_jca_pool_totalWaitTime">JCA Connection Pool - Total Wait Time (seconds)</Label>
   </ColumnDef>

   <ColumnDef Name="useTime.total" Type="Double">
     <Label NLSID="oc4j_jca_pool_totalUseTime">JCA Connection Pool - Total Use Time (seconds)</Label>
   </ColumnDef>

   <ColumnDef Name="createCount.count" Type="Integer">
     <Label NLSID="oc4j_jca_pool_createCount">JCA Connection Pool - Created Connections</Label>
   </ColumnDef>

   <ColumnDef Name="closeCount.count" Type="Integer">
     <Label NLSID="oc4j_jca_pool_closeCount">JCA Connection Pool - Closed Connections</Label>
   </ColumnDef>

   <ColumnDef Name="errorCount.count" Type="Integer">
     <Label NLSID="oc4j_jca_pool_errorCount">JCA Connection Pool - Connection Errors</Label>
   </ColumnDef>

   <Select Name="agg_oc4j_jca_pool_no_rate_result">
    <TableFrom Name="jca_connection_pool_stats" OuterJoined="true"/>
    <TableFrom Name="oc4j_opmn"/>

    <Column Name="name" Type="String">
     <ColumnFrom Name="Name" Table="jca_connection_pool_stats"/>
    </Column>

    <Column Name="resource_adapter" Type="String">
     <ColumnFrom Name="oc4j_jca_resource" Table="jca_connection_pool_stats"/>
    </Column>

    <Column Name="application" Type="String">
     <ColumnFrom Name="oc4j_ear" Table="jca_connection_pool_stats"/>
    </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

    <Column Name="openConns" Type="Integer">
      <!-- poolSize and freePoolSize should be non-negative, so this computation should be ok.
           alternative is to construct a subsequent table that aggregates openConns -->
      <Expression Operator="Minus">
        <Aggregation Operator="Sum" Name="poolSize.value" Table="jca_connection_pool_stats"/>
        <Aggregation Operator="Sum" Name="freePoolSize.value" Table="jca_connection_pool_stats"/>
      </Expression>
    </Column>

    <Column Name="availableConns" Type="Integer">
      <Aggregation Operator="Sum" Name="freePoolSize.value" Table="jca_connection_pool_stats"/>
      <Default>0</Default>
    </Column>

    <Column Name="waitingThreads" Type="Integer">
      <Aggregation Operator="Sum" Name="waitingThreadCount.active" Table="jca_connection_pool_stats"/>
      <Default>0</Default>
    </Column>

    <Column Name="waitTime.total" Type="Double">
     <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="waitTime.time" Table="jca_connection_pool_stats"/>
      <Value Name="milli_to_second">1000</Value>
     </Expression>
     <Default>0</Default>
    </Column>

    <Column Name="useTime.total" Type="Double">
     <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="useTime.time" Table="jca_connection_pool_stats"/>
      <Value Name="milli_to_second">1000</Value>
     </Expression>
     <Default>0</Default>
    </Column>

    <Column Name="createCount.count" Type="Integer">
      <Aggregation Operator="Sum" Name="createCount.count" Table="jca_connection_pool_stats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="closeCount.count" Type="Integer">
      <Aggregation Operator="Sum" Name="closeCount.count" Table="jca_connection_pool_stats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="errorCount.count" Type="Integer">
      <Aggregation Operator="Sum" Name="errorCount.count" Table="jca_connection_pool_stats"/>
      <Default>0</Default>
    </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="resource_adapter"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="jca_connection_pool_stats"/>
      </Condition>
   </Where>

   </Select>
 </Table> <!-- agg_oc4j_jca_pool_no_rate -->

 <Table Name="agg_oc4j_jca_pool">
   <Label NLSID="agg_oc4j_jca_pool">JCA Connection Pool Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jca_pool_name">Connection Pool Name</Label>
  </ColumnDef>

  <ColumnDef Name="resource_adapter" Type="String" Key="true">
   <Label NLSID="resource_adapter_name">Resource Adapter Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

   <ColumnDef Name="openConns" Type="Integer">
     <Label NLSID="oc4j_jca_pool_open_connections">JCA Connection Pool - Open Connections</Label>
   </ColumnDef>

   <ColumnDef Name="availableConns" Type="Integer">
     <Label NLSID="oc4j_jca_pool_available_connections">JCA Connection Pool - Available Connections</Label>
   </ColumnDef>

   <ColumnDef Name="waitingThreads" Type="Integer">
     <Label NLSID="oc4j_jca_pool_waiting_threads">JCA Connection Pool - Waiting Threads</Label>
   </ColumnDef>
   
   <ColumnDef Name="averageWaitTime" Type="Double">
     <Label NLSID="oc4j_jca_pool_avgWaitTime">JCA Connection Pool - Connection Wait Time (seconds)</Label>
   </ColumnDef>

   <ColumnDef Name="averageUseTime" Type="Double">
     <Label NLSID="oc4j_jca_pool_avgUseTime">JCA Connection Pool - Connection Use Time (seconds)</Label>
   </ColumnDef>

   <ColumnDef Name="creationRate" Type="Double">
     <Label NLSID="oc4j_jca_pool_creationRate">JCA Connection Pool - Connection Creation Rate (per second)</Label>
   </ColumnDef>

   <ColumnDef Name="closureRate" Type="Double">
     <Label NLSID="oc4j_jca_pool_closureRate">JCA Connection Pool - Connection Closure Rate (per second)</Label>
   </ColumnDef>

   <ColumnDef Name="errorRate" Type="Double">
     <Label NLSID="oc4j_jca_pool_errorRate">JCA Connection Pool - Connection Error Rate (per second)</Label>
   </ColumnDef>


   <Select Name="agg_oc4j_jca_pool_result">
   <TableFrom Name="agg_oc4j_jca_pool_no_rate"/>

   <Column Name="name" Type="String"/>
   <Column Name="resource_adapter" Type="String"/>
   <Column Name="application" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="openConns" Type="Integer"/>
   <Column Name="availableConns" Type="Integer"/>
   <Column Name="waitingThreads" Type="Integer"/>

   <Column Name="averageWaitTime" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="waitTime.total"/>
       <ColumnFrom Name="createCount.count"/>
       <Default>0</Default>
     </Rate>
   </Column>

   <Column Name="averageUseTime" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="useTime.total"/>
       <ColumnFrom Name="createCount.count"/>
       <Default>0</Default>
     </Rate>
   </Column>

   <Column Name="creationRate" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="createCount.count"/>
       <Default>0</Default>
     </Rate>
   </Column>

   <Column Name="closureRate" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="closeCount.count"/>
       <Default>0</Default>
     </Rate>
   </Column>

   <Column Name="errorRate" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="errorCount.count"/>
       <Default>0</Default>
     </Rate>
   </Column>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_jca_pool_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jca_pool_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="resource_adapter"/>
       <Value Name="oc4j_jca_pool_resource_adapter"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jca_pool_resource_adapter"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_jca_pool_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jca_pool_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

   </Select>

 </Table> <!-- agg_oc4j_jca_pool -->

 <Table Name="agg_oc4j_jca_factory_no_rate">
   <Label NLSID="agg_oc4j_jca_factory_no_rate">JCA Connection Factory Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jca_factory_name">Connection Factory Name</Label>
  </ColumnDef>

  <ColumnDef Name="resource_adapter" Type="String" Key="true">
   <Label NLSID="resource_adapter_name">Resource Adapter Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

   <ColumnDef Name="waitTime.total" Type="Double">
     <Label NLSID="oc4j_jca_factory_totalWaitTime">JCA Connection Factory - Total Wait Time (seconds)</Label>
   </ColumnDef>

   <ColumnDef Name="useTime.total" Type="Double">
     <Label NLSID="oc4j_jca_factory_totalUseTime">JCA Connection Factory - Total Use Time (seconds)</Label>
   </ColumnDef>

   <ColumnDef Name="createCount.count" Type="Integer">
     <Label NLSID="oc4j_jca_factory_createCount">JCA Connection Factory - Created Connections</Label>
   </ColumnDef>

   <ColumnDef Name="closeCount.count" Type="Integer">
     <Label NLSID="oc4j_jca_factory_closeCount">JCA Connection Factory - Closed Connections</Label>
   </ColumnDef>

   <Select Name="agg_oc4j_jca_factory_no_rate_result">

    <TableFrom Name="jca_connection_stats" OuterJoined="true"/>
    <TableFrom Name="oc4j_opmn"/>

    <Column Name="name" Type="String">
     <ColumnFrom Name="Name" Table="jca_connection_stats"/>
    </Column>

    <Column Name="resource_adapter" Type="String">
     <ColumnFrom Name="oc4j_jca_resource" Table="jca_connection_stats"/>
    </Column>

    <Column Name="application" Type="String">
     <ColumnFrom Name="oc4j_ear" Table="jca_connection_stats"/>
    </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

    <Column Name="waitTime.total" Type="Double">
     <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="waitTime.time" Table="jca_connection_stats"/>
      <Value Name="milli_to_second">1000</Value>
     </Expression>
    </Column>

    <Column Name="useTime.total" Type="Double">
     <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="useTime.time" Table="jca_connection_stats"/>
      <Value Name="milli_to_second">1000</Value>
     </Expression>
    </Column>

    <Column Name="createCount.count" Type="Integer">
     <Aggregation Operator="Sum" Name="createCount.count" Table="jca_connection_stats"/>
     <Default>0</Default>
    </Column>

    <Column Name="closeCount.count" Type="Integer">
     <Aggregation Operator="Sum" Name="closeCount.count" Table="jca_connection_stats"/>
     <Default>0</Default>
    </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="resource_adapter"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="jca_connection_stats"/>
      </Condition>
   </Where>

   </Select>
 </Table> <!-- agg_oc4j_jca_factory_no_rate -->

 <Table Name="agg_oc4j_jca_factory">
   <Label NLSID="agg_oc4j_jca_factory">JCA Connection Factory Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jca_factory_name">Connection Factory Name</Label>
  </ColumnDef>

  <ColumnDef Name="resource_adapter" Type="String" Key="true">
   <Label NLSID="resource_adapter_name">Resource Adapter Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

   <ColumnDef Name="averageWaitTime" Type="Double">
     <Label NLSID="oc4j_jca_factory_avgWaitTime">JCA Connection Factory - Connection Wait Time (seconds)</Label>
   </ColumnDef>

   <ColumnDef Name="averageUseTime" Type="Double">
     <Label NLSID="oc4j_jca_factory_avgUseTime">JCA Connection Factory - Connection Use Time (seconds)</Label>
   </ColumnDef>

   <ColumnDef Name="creationRate" Type="Double">
     <Label NLSID="oc4j_jca_factory_creationRate">JCA Connection Factory - Connection Creation Rate (per second)</Label>
   </ColumnDef>

   <ColumnDef Name="closureRate" Type="Double">
     <Label NLSID="oc4j_jca_factory_closureRate">JCA Connection Factory - Connection Closure Rate (per second)</Label>
   </ColumnDef>

   <Select Name="agg_oc4j_jca_factory_result">
   <TableFrom Name="agg_oc4j_jca_factory_no_rate"/>

   <Column Name="name" Type="String"/>
   <Column Name="resource_adapter" Type="String"/>
   <Column Name="application" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>

   <Column Name="averageWaitTime" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="waitTime.total"/>
       <ColumnFrom Name="createCount.count"/>
       <Default>0</Default>
     </Rate>
   </Column>

   <Column Name="averageUseTime" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="useTime.total"/>
       <ColumnFrom Name="createCount.count"/>
       <Default>0</Default>
     </Rate>
   </Column>

   <Column Name="creationRate" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="createCount.count"/>
       <Default>0</Default>
     </Rate>
   </Column>

   <Column Name="closureRate" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="closeCount.count"/>
       <Default>0</Default>
     </Rate>
   </Column>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_jca_factory_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jca_factory_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="resource_adapter"/>
       <Value Name="oc4j_jca_factory_resource_adapter"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jca_factory_resource_adapter"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_jca_factory_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jca_factory_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

   </Select>

 </Table> <!-- agg_oc4j_jca_factory -->

 <Table Name="agg_oc4j_mdb_no_rate">
   <Label NLSID="agg_oc4j_mdb_no_rate">Message Driven Bean Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_mdb_name">Message Driven Bean Name</Label>
  </ColumnDef>

  <ColumnDef Name="ejb_module" Type="String" Key="true">
   <Label NLSID="ejb_module_name">EJB Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>
  
  <ColumnDef Name="messageDelivery.completed" Type="Integer">
   <Label NLSID="oc4j_mdb_messageDelivery_completed">Message Driven Bean - Messages Dequeued</Label>
  </ColumnDef>

  <ColumnDef Name="messageDelivery.time" Type="Double">
   <Label NLSID="oc4j_mdb_messageDelivery_time">Message Driven Bean - Total Message Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="failedMessageDeliveryCount.count" Type="Integer">
   <Label NLSID="oc4j_mdb_failedMessageDeliveryCount_count">Message Driven Bean - Messages Rolled Back</Label>
  </ColumnDef>

  <ColumnDef Name="pooledInstances" Type="Integer">
   <Label NLSID="oc4j_mdb_pooledInstances">Message Driven Bean - Number of instances in pool</Label>
  </ColumnDef>

  <ColumnDef Name="usedInstances" Type="Integer">
   <Label NLSID="oc4j_mdb_usedInstances">Message Driven Bean - Number of instances used in pool</Label>
  </ColumnDef>

  <ColumnDef Name="startTime.value" Type="Long">
   <Label NLSID="oc4j_mdb_startTime">Message Driven Bean - Start Time (ms since Epoch)</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_mdb_no_rate_result">
    <TableFrom Name="oc4j_ejb_message-driven_bean" OuterJoined="true"/>
    <TableFrom Name="oc4j_opmn"/>

    <Column Name="name" Type="String">
      <ColumnFrom Name="Name" Table="oc4j_ejb_message-driven_bean"/>
    </Column>

    <Column Name="ejb_module" Type="String">
      <ColumnFrom Name="oc4j_ejb_pkg" Table="oc4j_ejb_message-driven_bean"/>
    </Column>

    <Column Name="application" Type="String">
      <ColumnFrom Name="oc4j_ear" Table="oc4j_ejb_message-driven_bean"/>
    </Column>
    
   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>
   
   <Column Name="messageDelivery.completed" Type="Integer">
     <Aggregation Operator="Sum" Name="messageDelivery.completed" Table="oc4j_ejb_message-driven_bean"/>
     <Default>0</Default>
   </Column>

   <Column Name="messageDelivery.time" Type="Double">
     <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="messageDelivery.time" Table="oc4j_ejb_message-driven_bean"/>
      <Value Name="milli_to_second">1000</Value>
     </Expression>
     <Default>0</Default>
   </Column>

   <Column Name="failedMessageDeliveryCount.count" Type="Integer">
     <Aggregation Operator="Sum" Name="failedMessageDeliveryCount.count" Table="oc4j_ejb_message-driven_bean"/>
     <Default>0</Default>
   </Column>
    
   <Column Name="pooledInstances" Type="Integer">
     <Aggregation Operator="Sum" Name="pooled.value" Table="oc4j_ejb_message-driven_bean"/>
     <Default>0</Default>
   </Column>
    
   <Column Name="usedInstances" Type="Integer">
     <Aggregation Operator="Sum" Name="ready.value" Table="oc4j_ejb_message-driven_bean"/>
     <Default>0</Default>
   </Column>
    
   <Column Name="startTime.value" Type="Long">
     <Aggregation Operator="Min" Name="startTime.value" Table="oc4j_ejb_message-driven_bean"/>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="ejb_module"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="oc4j_ejb_message-driven_bean"/>
      </Condition>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_mdb_no_rate -->

 <Table Name="agg_oc4j_mdb">
   <Label NLSID="agg_oc4j_mdb">Message Driven Bean Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_mdb_name">Message Driven Bean Name</Label>
  </ColumnDef>

  <ColumnDef Name="ejb_module" Type="String" Key="true">
   <Label NLSID="ejb_module_name">EJB Module Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="messageDelivery.completed" Type="Integer">
   <Label NLSID="oc4j_mdb_messageDelivery_completed">Message Driven Bean - Messages Dequeued</Label>
  </ColumnDef>

  <ColumnDef Name="messageDelivery.time" Type="Double">
   <Label NLSID="oc4j_mdb_messageDelivery_time">Message Driven Bean - Total Message Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="failedMessageDeliveryCount.count" Type="Integer">
   <Label NLSID="oc4j_mdb_failedMessageDeliveryCount_count">Message Driven Bean - Messages Rolled Back</Label>
  </ColumnDef>

  <ColumnDef Name="pooledInstances" Type="Integer">
   <Label NLSID="oc4j_mdb_pooledInstances">Message Driven Bean - Number of instances in pool</Label>
  </ColumnDef>

  <ColumnDef Name="usedInstances" Type="Integer">
   <Label NLSID="oc4j_mdb_usedInstances">Message Driven Bean - Number of instances used in pool</Label>
  </ColumnDef>

  <ColumnDef Name="startTime.value" Type="Long">
   <Label NLSID="oc4j_mdb_startTime">Message Driven Bean - Start Time (ms since Epoch)</Label>
  </ColumnDef>

  <ColumnDef Name="avgMessageProcTime" Type="Double">
   <Label NLSID="oc4j_mdb_avgMessageProcTime">Message Driven Bean - Average Message Processing Time (seconds)</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_mdb_result">
    <TableFrom Name="agg_oc4j_mdb_no_rate"/>
    <Column Name="name" Type="String"/>
    <Column Name="ejb_module" Type="String"/>
    <Column Name="application" Type="String"/>
    <Column Name="oc4j_instance" Type="String"/>
    <Column Name="as_instance" Type="String"/>
    <Column Name="messageDelivery.completed" Type="Integer"/>
    <Column Name="messageDelivery.time" Type="Double"/>
    <Column Name="failedMessageDeliveryCount.count" Type="Integer"/>
    <Column Name="pooledInstances" Type="Integer"/>
    <Column Name="usedInstances" Type="Integer"/>
    <Column Name="instanceCount.value" Type="Integer"/>
    <Column Name="startTime.value" Type="Long"/>
    <Column Name="avgMessageProcTime" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="messageDelivery.time"/>
       <ColumnFrom Name="messageDelivery.completed"/>
       <Default>0</Default>
     </Rate>
    </Column>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_mdb_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_mdb_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="ejb_module"/>
       <Value Name="oc4j_ejb_module"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_ejb_module"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
   </And>
   </Where>

  </Select>

 </Table> <!-- agg_oc4j_mdb -->

 <Table Name="agg_oc4j_jms_no_rate">
   <Label NLSID="agg_oc4j_jms_no_rate">JMS Metrics Without Rates</Label>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="startTime.value" Type="Long">
   <Label NLSID="oc4j_jms_startTime">JMS - Start Time</Label>
  </ColumnDef>

  <ColumnDef Name="activeConnections.active" Type="Integer">
   <Label NLSID="oc4j_jms_active_connections">JMS - Active Connections</Label>
  </ColumnDef>

  <ColumnDef Name="messageCount.value" Type="Integer">
   <Label NLSID="oc4j_jms_messages_waiting_for_read">JMS - Messages Waiting for Read</Label>
  </ColumnDef>

  <ColumnDef Name="pendingMessageCount.value" Type="Integer">
   <Label NLSID="oc4j_jms_messages_waiting_for_commit">JMS - Messages Waiting for Commit</Label>
  </ColumnDef>

  <ColumnDef Name="messageEnqueued.count" Type="Integer">
   <Label NLSID="oc4j_jms_messages_enqueued">JMS - Messages Enqueued</Label>
  </ColumnDef>

  <ColumnDef Name="messageDequeued.count" Type="Integer">
   <Label NLSID="oc4j_jms_messages_dequeued">JMS - Messages Dequeued</Label>
  </ColumnDef>

  <ColumnDef Name="messagePagedIn.count" Type="Integer">
   <Label NLSID="oc4j_jms_messages_paged_in">JMS - Messages Paged In</Label>
  </ColumnDef>

  <ColumnDef Name="messagePagedOut.count" Type="Integer">
   <Label NLSID="oc4j_jms_messages_paged_out">JMS - Messages Paged Out</Label>
  </ColumnDef>

  <ColumnDef Name="commit.completed" Type="Integer">
   <Label NLSID="oc4j_jms_messages_committed">JMS - Messages Committed</Label>
  </ColumnDef>

  <ColumnDef Name="rollback.completed" Type="Integer">
   <Label NLSID="oc4j_jms_messages_rolled_back">JMS - Messages Rolled Back</Label>
  </ColumnDef>

  <ColumnDef Name="messageExpired.count" Type="Integer">
   <Label NLSID="oc4j_jms_messages_expired">JMS - Messages Expired</Label>
  </ColumnDef>

  <ColumnDef Name="messageDiscarded.count" Type="Integer">
   <Label NLSID="oc4j_jms_messages_discarded">JMS - Messages Discarded</Label>
  </ColumnDef>

  <ColumnDef Name="messageRecovered.count" Type="Integer">
   <Label NLSID="oc4j_jms_messages_recovered">JMS - Messages Recovered</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_jms_no_rate_result">
    <TableFrom Name="JMSStats" OuterJoined="true"/>
    <TableFrom Name="oc4j_opmn"/>

    <Column Name="oc4j_instance" Type="String">
      <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
      <Default>standalone</Default> <!-- if standalone OC4J -->
    </Column>

    <Column Name="as_instance" Type="String">
      <ColumnFrom Name="instance" Table="oc4j_opmn"/>
      <Default>standalone</Default> <!-- if standalone OC4J -->
    </Column>

    <Column Name="startTime.value" Type="Long">
      <Aggregation Operator="Min" Name="startTime.value" Table="JMSStats"/>
    </Column>
    
    <Column Name="activeConnections.active" Type="Integer">
      <Aggregation Operator="Sum" Name="activeConnections.active" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="messageCount.value" Type="Integer">
      <Aggregation Operator="Sum" Name="messageCount.value" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="pendingMessageCount.value" Type="Integer">
      <Aggregation Operator="Sum" Name="pendingMessageCount.value" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="messageEnqueued.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messageEnqueued.count" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="messageDequeued.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messageDequeued.count" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="messagePagedIn.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messagePagedIn.count" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="messagePagedOut.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messagePagedOut.count" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="commit.completed" Type="Integer">
      <Aggregation Operator="Sum" Name="messageCommitted.count" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="rollback.completed" Type="Integer">
      <Aggregation Operator="Sum" Name="messageRolledBack.count" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="messageExpired.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messageExpired.count" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="messageDiscarded.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messageDiscarded.count" Table="JMSStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="messageRecovered.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messageRecovered.count" Table="JMSStats"/>
      <Default>0</Default>
    </Column>

   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>

   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="JMSStats"/>
      </Condition>
   </Where>
   
  </Select>

 </Table> <!-- agg_oc4j_jms_no_rate -->

 <Table Name="agg_oc4j_jms">
   <Label NLSID="agg_oc4j_jms">JMS Metrics</Label>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="startTime.value" Type="Long">
   <Label NLSID="oc4j_jms_startTime">JMS - Start Time</Label>
  </ColumnDef>

  <ColumnDef Name="activeConnections.active" Type="Integer">
   <Label NLSID="oc4j_jms_active_connections">JMS - Active Connections</Label>
  </ColumnDef>
  
  <ColumnDef Name="messageCount.value" Type="Integer">
   <Label NLSID="oc4j_jms_messages_waiting_for_read">JMS - Messages Waiting for Read</Label>
  </ColumnDef>

  <ColumnDef Name="pendingMessageCount.value" Type="Integer">
   <Label NLSID="oc4j_jms_messages_waiting_for_commit">JMS - Messages Waiting for Commit</Label>
  </ColumnDef>

  <ColumnDef Name="messageEnqueued.rate" Type="Double">
   <Label NLSID="oc4j_jms_messages_enqueued">JMS - Messages Enqueued per Second</Label>
  </ColumnDef>

  <ColumnDef Name="messageDequeued.rate" Type="Double">
   <Label NLSID="oc4j_jms_messages_dequeued">JMS - Messages Dequeued per Second</Label>
  </ColumnDef>

  <ColumnDef Name="messagePagedIn.rate" Type="Double">
   <Label NLSID="oc4j_jms_messages_paged_in">JMS - Messages Paged In per Second</Label>
  </ColumnDef>

  <ColumnDef Name="messagePagedOut.rate" Type="Double">
   <Label NLSID="oc4j_jms_messages_paged_out">JMS - Messages Paged Out per Second</Label>
  </ColumnDef>

  <ColumnDef Name="commit.completed" Type="Integer">
   <Label NLSID="oc4j_jms_messages_committed">JMS - Messages Committed</Label>
  </ColumnDef>

  <ColumnDef Name="rollback.completed" Type="Integer">
   <Label NLSID="oc4j_jms_messages_rolled_back">JMS - Messages Rolled Back</Label>
  </ColumnDef>

  <ColumnDef Name="messageExpired.count" Type="Integer">
   <Label NLSID="oc4j_jms_messages_expired">JMS - Messages Expired</Label>
  </ColumnDef>

  <ColumnDef Name="messageDiscarded.count" Type="Integer">
   <Label NLSID="oc4j_jms_messages_discarded">JMS - Messages Discarded</Label>
  </ColumnDef>

  <ColumnDef Name="messageRecovered.count" Type="Integer">
   <Label NLSID="oc4j_jms_messages_recovered">JMS - Messages Recovered</Label>
  </ColumnDef>


  <Select Name="agg_oc4j_jms_result">
    <TableFrom Name="agg_oc4j_jms_no_rate"/>

    <Column Name="oc4j_instance" Type="String"/>
    <Column Name="as_instance" Type="String"/>
    <Column Name="startTime.value" Type="Long"/>
    <Column Name="activeConnections.active" Type="Integer"/>
    <Column Name="messageCount.value" Type="Integer"/>
    <Column Name="pendingMessageCount.value" Type="Integer"/>
    <Column Name="commit.completed" Type="Integer"/>
    <Column Name="rollback.completed" Type="Integer"/>
    <Column Name="messageExpired.count" Type="Integer"/>
    <Column Name="messageDiscarded.count" Type="Integer"/>
    <Column Name="messageRecovered.count" Type="Integer"/>

    <Column Name="messageEnqueued.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messageEnqueued.count"/>
        <Default>0</Default>
      </Rate>
    </Column>

    <Column Name="messageDequeued.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messageDequeued.count"/>
        <Default>0</Default>
      </Rate>
    </Column>
    
    <Column Name="messagePagedIn.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messagePagedIn.count"/>
        <Default>0</Default>
      </Rate>
    </Column>

    <Column Name="messagePagedOut.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messagePagedOut.count"/>
        <Default>0</Default>
      </Rate>
    </Column>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>
   
  </Select>

 </Table> <!-- agg_oc4j_jms -->

 <Table Name="agg_oc4j_jms_queue_destination_no_rate">
   <Label NLSID="agg_oc4j_jms_queue_destination_no_rate">JMS Queue Destination Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jms_destination_name">JMS Destination - Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="consumers.count" Type="Integer">
   <Label NLSID="oc4j_jms_destination_consumers">JMS Destination - Number of Consumers</Label>
  </ColumnDef>

  <ColumnDef Name="messageCount.value" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_waiting_for_read">JMS Destination - Messages Waiting for Read</Label>
  </ColumnDef>

  <ColumnDef Name="pendingMessageCount.value" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_waiting_for_commit">JMS Destination - Messages Waiting for Commit</Label>
  </ColumnDef>

  <ColumnDef Name="messageEnqueued.count" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_enqueued">JMS Destination - Messages Enqueued</Label>
  </ColumnDef>

  <ColumnDef Name="messageDequeued.count" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_dequeued">JMS Destination - Messages Dequeued</Label>
  </ColumnDef>

  <ColumnDef Name="messagePagedIn.count" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_paged_in">JMS Destination - Messages Paged In</Label>
  </ColumnDef>

  <ColumnDef Name="messagePagedOut.count" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_paged_out">JMS Destination - Messages Paged Out</Label>
  </ColumnDef>

  <ColumnDef Name="commit.completed" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_committed">JMS Destination - Messages Committed</Label>
  </ColumnDef>

  <ColumnDef Name="messageExpired.count" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_expired">JMS Destination - Messages Expired</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_jms_queue_destination_no_rate_result">
    <TableFrom Name="JMSStoreStats" OuterJoined="true"/>
    <TableFrom Name="oc4j_opmn"/>

    <Column Name="name" Type="String">
      <ColumnFrom Name="destination.value" Table="JMSStoreStats"/>
    </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

    <Column Name="consumers.count" Type="Integer">
      <Aggregation Operator="Count" Table="JMSStoreStats"/>
      <Default>0</Default>
    </Column>

    <Column Name="messageCount.value" Type="Integer">
      <Aggregation Operator="Sum" Name="messageCount.value" Table="JMSStoreStats"/>
      <Default>0</Default>
    </Column>

    <Column Name="pendingMessageCount.value" Type="Integer">
      <Aggregation Operator="Sum" Name="pendingMessageCount.value" Table="JMSStoreStats"/>
      <Default>0</Default>
    </Column>

    <Column Name="messageEnqueued.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messageEnqueued.count" Table="JMSStoreStats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="messageDequeued.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messageDequeued.count" Table="JMSStoreStats"/>
      <Default>0</Default>
    </Column>

    <Column Name="messagePagedIn.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messagePagedIn.count" Table="JMSStoreStats"/>
      <Default>0</Default>
    </Column>

    <Column Name="messagePagedOut.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messagePagedOut.count" Table="JMSStoreStats"/>
      <Default>0</Default>
    </Column>

    <Column Name="commit.completed" Type="Integer">
      <Aggregation Operator="Sum" Name="messageCommitted.count" Table="JMSStoreStats"/>
      <Default>0</Default>
    </Column>

    <Column Name="messageExpired.count" Type="Integer">    
      <Aggregation Operator="Sum" Name="messageExpired.count" Table="JMSStoreStats"/>
      <Default>0</Default>
    </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   
   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="JMSStoreStats"/>
      </Condition>
   </Where>
    
  </Select>

 </Table> <!-- agg_oc4j_jms_queue_destination_no_rate -->

 <Table Name="agg_oc4j_jms_queue_destination">
   <Label NLSID="agg_oc4j_jms_queue_destination">JMS Queue Destination Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jms_destination_name">JMS Destination - Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="consumers.count" Type="Integer">
   <Label NLSID="oc4j_jms_destination_consumers">JMS Destination - Number of Consumers</Label>
  </ColumnDef>

  <ColumnDef Name="messageCount.value" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_waiting_for_read">JMS Destination - Messages Waiting for Read</Label>
  </ColumnDef>

  <ColumnDef Name="pendingMessageCount.value" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_waiting_for_commit">JMS Destination - Messages Waiting for Commit</Label>
  </ColumnDef>

  <ColumnDef Name="messageEnqueued.rate" Type="Double">
   <Label NLSID="oc4j_jms_destination_messages_enqueued">JMS Destination - Messages Enqueued per Second</Label>
  </ColumnDef>

  <ColumnDef Name="messageDequeued.rate" Type="Double">
   <Label NLSID="oc4j_jms_destination_messages_dequeued">JMS Destination - Messages Dequeued per Second</Label>
  </ColumnDef>

  <ColumnDef Name="messagePagedIn.rate" Type="Double">
   <Label NLSID="oc4j_jms_destination_messages_paged_in">JMS Destination - Messages Paged In per Second</Label>
  </ColumnDef>

  <ColumnDef Name="messagePagedOut.rate" Type="Double">
   <Label NLSID="oc4j_jms_destination_messages_paged_out">JMS Destination - Messages Paged Out per Second</Label>
  </ColumnDef>

  <ColumnDef Name="commit.completed" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_committed">JMS Destination - Messages Committed</Label>
  </ColumnDef>

  <ColumnDef Name="messageExpired.count" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_expired">JMS Destination - Messages Expired</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_jms_queue_destination_result">
    <TableFrom Name="agg_oc4j_jms_queue_destination_no_rate"/>

    <Column Name="name" Type="String"/> 
    <Column Name="oc4j_instance" Type="String"/>
    <Column Name="as_instance" Type="String"/>
    <Column Name="consumers.count" Type="Integer"/>
    <Column Name="messageCount.value" Type="Integer"/>
    <Column Name="pendingMessageCount.value" Type="Integer"/>
    <Column Name="commit.completed" Type="Integer"/>
    <Column Name="messageExpired.count" Type="Integer"/>

    <Column Name="messageEnqueued.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messageEnqueued.count"/>
        <Default>0</Default>
      </Rate>
    </Column>

    <Column Name="messageDequeued.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messageDequeued.count"/>
        <Default>0</Default>
      </Rate>
    </Column>
    
    <Column Name="messagePagedIn.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messagePagedIn.count"/>
        <Default>0</Default>
      </Rate>
    </Column>

    <Column Name="messagePagedOut.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messagePagedOut.count"/>
        <Default>0</Default>
      </Rate>
    </Column>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Expression Operator="Concat">
          <Value>destination=</Value>
          <Value Name="oc4j_jms_destination"/>
       </Expression>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jms_destination"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
      <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
  </Where>
    
  </Select>

 </Table> <!-- agg_oc4j_jms_queue_destination -->
 
 <!-- agg_oc4j_jms_topic_destination_no_rate -->
  <Table Name="agg_oc4j_jms_topic_destination_no_rate">
   <Label NLSID="agg_oc4j_jms_topic_destination_no_rate">JMS Topic Destination Metrics Without Rates</Label>

   <ColumnDef Name="name" Type="String" Key="true">
    <Label NLSID="oc4j_jms_destination_name">JMS Destination - Name</Label>
   </ColumnDef>

   <ColumnDef Name="oc4j_instance" Type="String" Key="true">
    <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
   </ColumnDef>

   <ColumnDef Name="as_instance" Type="String" Key="true">
    <Label NLSID="as_instance_name">AS Instance Name</Label>
   </ColumnDef>

   <ColumnDef Name="consumers.count" Type="Integer">
    <Label NLSID="oc4j_jms_destination_consumers">JMS Destination - Number of Consumers</Label>
   </ColumnDef>

   <ColumnDef Name="messageCount.value" Type="Integer">
    <Label NLSID="oc4j_jms_destination_messages_waiting_for_read">JMS Destination - Messages Waiting for Read</Label>
   </ColumnDef>

   <ColumnDef Name="pendingMessageCount.value" Type="Integer">
    <Label NLSID="oc4j_jms_destination_messages_waiting_for_commit">JMS Destination - Messages Waiting for Commit</Label>
   </ColumnDef>

   <ColumnDef Name="messageEnqueued.count" Type="Integer">
    <Label NLSID="oc4j_jms_destination_messages_enqueued">JMS Destination - Messages Enqueued</Label>
   </ColumnDef>

   <ColumnDef Name="messageDequeued.count" Type="Integer">
    <Label NLSID="oc4j_jms_destination_messages_dequeued">JMS Destination - Messages Dequeued</Label>
   </ColumnDef>
 
   <ColumnDef Name="messagePagedIn.count" Type="Integer">
    <Label NLSID="oc4j_jms_destination_messages_paged_in">JMS Destination - Messages Paged In</Label>
   </ColumnDef>

   <ColumnDef Name="messagePagedOut.count" Type="Integer">
    <Label NLSID="oc4j_jms_destination_messages_paged_out">JMS Destination - Messages Paged Out</Label>
   </ColumnDef>

   <ColumnDef Name="commit.completed" Type="Integer">
    <Label NLSID="oc4j_jms_destination_messages_committed">JMS Destination - Messages Committed</Label>
   </ColumnDef>

   <ColumnDef Name="messageExpired.count" Type="Integer">
    <Label NLSID="oc4j_jms_destination_messages_expired">JMS Destination - Messages Expired</Label>
   </ColumnDef>

   <Union Name="agg_oc4j_jms_topic_subscribers_by_jvm">
    <TableFrom Name="JMSStoreNonDurableSubscriberStats"/>
    <TableFrom Name="JMSStoreDurableSubscriberStats"/>

    <Column Name="destination.value" Type="String"/>
    <Column Name="oc4j_instance" Type="String"/>
    <Column Name="as_instance" Type="String"/>
    <Column Name="messageCount.value" Type="Integer"/>
    <Column Name="pendingMessageCount.value" Type="Integer"/>
    <Column Name="messagePagedIn.count" Type="Integer"/>
    <Column Name="messagePagedOut.count" Type="Integer"/>
    <Column Name="uid" Type="String"/> 
    <Column Name="JMSDestinationStats" Type="String"/>
   </Union>

   <Select Name="agg_oc4j_jms_topic_subscribers">
    <TableFrom Name="agg_oc4j_jms_topic_subscribers_by_jvm" OuterJoined="true"/>
    <TableFrom Name="oc4j_opmn"/>

    <Column Name="name" Type="String">
      <ColumnFrom Name="destination.value" Table="agg_oc4j_jms_topic_subscribers_by_jvm"/>
    </Column>

    <Column Name="name_with_topic" Type="String">
      <ColumnFrom Name="JMSDestinationStats" Table="agg_oc4j_jms_topic_subscribers_by_jvm"/>
    </Column>
    
    <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
      <Default>standalone</Default> <!-- if standalone OC4J -->
    </Column>

    <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
    </Column>

    <Column Name="messageCount.value" Type="Integer">
      <Aggregation Operator="Sum" Name="messageCount.value" Table="agg_oc4j_jms_topic_subscribers_by_jvm"/>
      <Default>0</Default>
    </Column>

    <Column Name="pendingMessageCount.value" Type="Integer">
      <Aggregation Operator="Sum" Name="pendingMessageCount.value" Table="agg_oc4j_jms_topic_subscribers_by_jvm"/>
      <Default>0</Default>
    </Column>

    <Column Name="messagePagedIn.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messagePagedIn.count" Table="agg_oc4j_jms_topic_subscribers_by_jvm"/>
      <Default>0</Default>
    </Column>

    <Column Name="messagePagedOut.count" Type="Integer">
      <Aggregation Operator="Sum" Name="messagePagedOut.count" Table="agg_oc4j_jms_topic_subscribers_by_jvm"/>
      <Default>0</Default>
    </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   
   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="agg_oc4j_jms_topic_subscribers_by_jvm"/>
      </Condition>
   </Where>
    
  </Select>
 
  <Select Name="agg_oc4j_jms_topic_overview">
    <TableFrom Name="JMSDestinationStats" OuterJoined="true"/>
    <TableFrom Name="oc4j_opmn"/>

    <Column Name="simple_name" Type="String">
      <ColumnFrom Name="name.value" Table="JMSDestinationStats"/>
    </Column> 
    
    <Column Name="name_with_topic" Type="String">
      <ColumnFrom Name="Name" Table="JMSDestinationStats"/>
    </Column>    
      
   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="commit.completed" Type="Integer">
     <Aggregation Operator="Sum" Name="commit.completed" Table="JMSDestinationStats"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="messageEnqueued.count" Type="Integer">
     <Aggregation Operator="Sum" Name="enq.completed" Table="JMSDestinationStats"/>
     <Default>0</Default>
   </Column>
    
   <Column Name="messageDequeued.count" Type="Integer">
     <Aggregation Operator="Sum" Name="deq.completed" Table="JMSDestinationStats"/>
     <Default>0</Default>
   </Column>

   <Column Name="messageExpired.count" Type="Integer">    
     <Aggregation Operator="Sum" Name="expireMessages.completed" Table="JMSDestinationStats"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="consumers.created" Type="Integer">    
     <Aggregation Operator="Sum" Name="addConsumer.completed" Table="JMSDestinationStats"/>
     <Default>0</Default>
   </Column>
   
   <Column Name="consumers.removed" Type="Integer">    
     <Aggregation Operator="Sum" Name="removeConsumer.completed" Table="JMSDestinationStats"/>
     <Default>0</Default>
   </Column>
   
 

   <GroupBy Name="simple_name"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   
    <Where>
     <And>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="JMSDestinationStats"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="domain.value" Table="JMSDestinationStats"/>
       <Value>topic</Value>
      </Condition>
     </And>
   </Where>

    
  </Select>

  <Select Name="agg_oc4j_jms_topic_destination_no_rate_result">
   <TableFrom Name="agg_oc4j_jms_topic_overview" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_jms_topic_subscribers"/>

   <Column Name="name" Type="String">
     <ColumnFrom Name="name" Table="agg_oc4j_jms_topic_subscribers"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_jms_topic_overview"/>
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="as_instance" Table="agg_oc4j_jms_topic_overview"/>
   </Column>

   <Column Name="consumers.count" Type="Integer">    
    <Expression Operator="Minus">
        <ColumnFrom Name="consumers.created" Table="agg_oc4j_jms_topic_overview"/>
        <ColumnFrom Name="consumers.removed" Table="agg_oc4j_jms_topic_overview"/>
    </Expression>
    <Default>0</Default> 
   </Column>  
   
   <Column Name="messageCount.value" Type="Integer">
     <ColumnFrom Name="messageCount.value" Table="agg_oc4j_jms_topic_subscribers"/>
   </Column>
    
   <Column Name="pendingMessageCount.value" Type="Integer">
     <ColumnFrom Name="pendingMessageCount.value" Table="agg_oc4j_jms_topic_subscribers"/>
   </Column>
    
   <Column Name="messagePagedIn.count" Type="Integer">
     <ColumnFrom Name="messagePagedIn.count" Table="agg_oc4j_jms_topic_subscribers"/>
   </Column>
    
   <Column Name="messagePagedOut.count" Type="Integer">
     <ColumnFrom Name="messagePagedOut.count" Table="agg_oc4j_jms_topic_subscribers"/>
   </Column>
    
   <Column Name="commit.completed" Type="Integer">
     <ColumnFrom Name="commit.completed" Table="agg_oc4j_jms_topic_overview"/>
   </Column>
    
   <Column Name="messageEnqueued.count" Type="Integer">
     <ColumnFrom Name="messageEnqueued.count" Table="agg_oc4j_jms_topic_overview"/>
   </Column>
    
   <Column Name="messageDequeued.count" Type="Integer">
     <ColumnFrom Name="messageDequeued.count" Table="agg_oc4j_jms_topic_overview"/>
   </Column>
    
   <Column Name="messageExpired.count" Type="Integer">    
     <ColumnFrom Name="messageExpired.count" Table="agg_oc4j_jms_topic_overview"/>
   </Column>

  <GroupBy Name="name"/>
  <GroupBy Name="oc4j_instance"/>
  <GroupBy Name="as_instance"/>
   
  <Where>
    <And>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name_with_topic" Table="agg_oc4j_jms_topic_overview"/>
       <ColumnFrom Name="name_with_topic" Table="agg_oc4j_jms_topic_subscribers"/>
      </Condition>
      <And>
        <Condition Type="String" Operator="EQ">
         <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_jms_topic_overview"/>
         <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_jms_topic_subscribers"/>
        </Condition>
        <Condition Type="String" Operator="EQ">
         <ColumnFrom Name="as_instance" Table="agg_oc4j_jms_topic_overview"/>
         <ColumnFrom Name="as_instance" Table="agg_oc4j_jms_topic_subscribers"/>
        </Condition>
      </And>
    </And>
  </Where>
    
 </Select>

</Table>  <!--agg_oc4j_jms_topic_destination_no_rate -->
 
<!--agg_oc4j_jms_topic_destination -->

 <Table Name="agg_oc4j_jms_topic_destination">
   <Label NLSID="agg_oc4j_jms_topic_destination">JMS Topic Destination Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jms_destination_name">JMS Destination - Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="consumers.count" Type="Integer">
   <Label NLSID="oc4j_jms_destination_consumers">JMS Destination - Number of Consumers</Label>
  </ColumnDef>

  <ColumnDef Name="messageCount.value" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_waiting_for_read">JMS Destination - Messages Waiting for Read</Label>
  </ColumnDef>

  <ColumnDef Name="pendingMessageCount.value" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_waiting_for_commit">JMS Destination - Messages Waiting for Commit</Label>
  </ColumnDef>

  <ColumnDef Name="messageEnqueued.rate" Type="Double">
   <Label NLSID="oc4j_jms_destination_messages_enqueued">JMS Destination - Messages Enqueued per Second</Label>
  </ColumnDef>

  <ColumnDef Name="messageDequeued.rate" Type="Double">
   <Label NLSID="oc4j_jms_destination_messages_dequeued">JMS Destination - Messages Dequeued per Second</Label>
  </ColumnDef>

  <ColumnDef Name="messagePagedIn.rate" Type="Double">
   <Label NLSID="oc4j_jms_destination_messages_paged_in">JMS Destination - Messages Paged In per Second</Label>
  </ColumnDef>

  <ColumnDef Name="messagePagedOut.rate" Type="Double">
   <Label NLSID="oc4j_jms_destination_messages_paged_out">JMS Destination - Messages Paged Out per Second</Label>
  </ColumnDef>

  <ColumnDef Name="commit.completed" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_committed">JMS Destination - Messages Committed</Label>
  </ColumnDef>

  <ColumnDef Name="messageExpired.count" Type="Integer">
   <Label NLSID="oc4j_jms_destination_messages_expired">JMS Destination - Messages Expired</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_jms_topic_destination_result">
    <TableFrom Name="agg_oc4j_jms_topic_destination_no_rate"/>

    <Column Name="name" Type="String"/> 
    <Column Name="oc4j_instance" Type="String"/>
    <Column Name="as_instance" Type="String"/>
    <Column Name="consumers.count" Type="Integer"/>
    <Column Name="messageCount.value" Type="Integer"/>
    <Column Name="pendingMessageCount.value" Type="Integer"/>
    <Column Name="commit.completed" Type="Integer"/>
    <Column Name="messageExpired.count" Type="Integer"/> 

    <Column Name="messageEnqueued.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messageEnqueued.count"/>
        <Default>0</Default>
      </Rate>
    </Column>

    <Column Name="messageDequeued.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messageDequeued.count"/>
        <Default>0</Default>
      </Rate>
    </Column>

    <Column Name="messagePagedIn.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messagePagedIn.count"/>
        <Default>0</Default>
      </Rate>
    </Column>

    <Column Name="messagePagedOut.rate" Type="Double">
      <Rate Interval="300000">
        <ColumnFrom Name="messagePagedOut.count"/>
        <Default>0</Default>
      </Rate>
    </Column>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Expression Operator="Concat">
          <Value>destination=</Value>
          <Value Name="oc4j_jms_destination"/>
       </Expression>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jms_destination"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
      <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
  </Where>
    
  </Select>

 </Table> <!-- agg_oc4j_jms_topic_destination -->
 

 <Table Name="agg_oc4j_jdbc_pool_no_rate">
   <Label NLSID="agg_oc4j_jdbc_pool_no_rate">JDBC Connection Pool Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jdbc_pool_name">Connection Pool Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

   <ColumnDef Name="inUseConns" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_connections_in_use">JDBC Connection Pool - Connections In Use</Label>
   </ColumnDef>

   <ColumnDef Name="freePoolSize.value" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_free_connections">JDBC Connection Pool - Free Connections</Label>
   </ColumnDef>

   <ColumnDef Name="poolSize.value" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_total_connections">JDBC Connection Pool - Total Connections in Pool</Label>
   </ColumnDef>

   <ColumnDef Name="waitingThreadCount.active" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_waiting_threads">JDBC Connection Pool - Threads Waiting for Connections</Label>
   </ColumnDef>

   <ColumnDef Name="expiredCount.count" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_expired_count">JDBC Connection Pool - Connections Expired Since Startup</Label>
   </ColumnDef>

   <ColumnDef Name="requestTimeoutCount.count" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_request_timeout_count">JDBC Connection Pool - Connection Timeouts Since Startup</Label>
   </ColumnDef>

   <ColumnDef Name="useTime.completed" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_usetime_completed">JDBC Connection Pool - Number of Connections Measured for Use Time</Label>
   </ColumnDef>

   <ColumnDef Name="waitTime.completed" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_waittime_completed">JDBC Connection Pool - Number of Connections Measured for Wait Time</Label>
   </ColumnDef>

   <ColumnDef Name="useTime.total" Type="Double">
     <Label NLSID="oc4j_jdbc_pool_total_useTime">JDBC Connection Pool - Total Connection Use Time (seconds)</Label>
   </ColumnDef>

   <ColumnDef Name="waitTime.total" Type="Double">
     <Label NLSID="oc4j_jdbc_pool_total_waitTime">JDBC Connection Pool - Total Connection Wait Time (seconds)</Label>
   </ColumnDef>

   <Select Name="agg_oc4j_jdbc_pool_no_rate_result">

    <TableFrom Name="jdbc_connection_pool_stats" OuterJoined="true"/>
    <TableFrom Name="oc4j_opmn"/>

    <Column Name="name" Type="String">
     <ColumnFrom Name="Name" Table="jdbc_connection_pool_stats"/>
    </Column>

    <Column Name="application" Type="String">
     <ColumnFrom Name="oc4j_ear" Table="jdbc_connection_pool_stats"/>
    </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance.value" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="instance" Table="oc4j_opmn"/>
     <Default>standalone</Default> <!-- if standalone OC4J -->
   </Column>

    <Column Name="inUseConns" Type="Integer">
      <Expression Operator="Minus">
        <Aggregation Operator="Sum" Name="PoolSize.value" Table="jdbc_connection_pool_stats"/>
        <Aggregation Operator="Sum" Name="FreePoolSize.value" Table="jdbc_connection_pool_stats"/>
      </Expression>
      <Default>0</Default>
    </Column>

    <Column Name="freePoolSize.value" Type="Integer">
      <Aggregation Operator="Sum" Name="FreePoolSize.value" Table="jdbc_connection_pool_stats"/>
      <Default>0</Default>
    </Column>

    <Column Name="poolSize.value" Type="Integer">
      <Aggregation Operator="Sum" Name="PoolSize.value" Table="jdbc_connection_pool_stats"/>
      <Default>0</Default>
    </Column>

    <Column Name="waitingThreadCount.active" Type="Integer">
      <Aggregation Operator="Sum" Name="WaitingThreadCount.value" Table="jdbc_connection_pool_stats"/>
      <Default>0</Default>
    </Column>

<!-- next four are currently unavailable.  see bug 4555817. -->
    <Column Name="expiredCount.count" Type="Integer">
      <Aggregation Operator="Sum" Name="expiredCount.count" Table="jdbc_connection_pool_stats"/>
      <Default>0</Default>
    </Column>

    <Column Name="requestTimeoutCount.count" Type="Integer">
      <Aggregation Operator="Sum" Name="requestTimeoutCount.count" Table="jdbc_connection_pool_stats"/>
      <Default>0</Default>
    </Column>
    
    <Column Name="useTime.completed" Type="Integer">
      <Aggregation Operator="Sum" Name="useTime.completed" Table="jdbc_connection_pool_stats"/>
      <Default>0</Default>
    </Column>

    <Column Name="waitTime.completed" Type="Integer">
      <Aggregation Operator="Sum" Name="waitTime.completed" Table="jdbc_connection_pool_stats"/>
      <Default>0</Default>
    </Column>
<!-- end currently unavailable metrics -->

    <Column Name="useTime.total" Type="Double">
     <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="UseTime.time" Table="jdbc_connection_pool_stats"/>
      <Value Name="milli_to_second">1000</Value>
     </Expression>
     <Default>0</Default>
    </Column>

    <Column Name="waitTime.total" Type="Double">
     <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="WaitTime.time" Table="jdbc_connection_pool_stats"/>
      <Value Name="milli_to_second">1000</Value>
     </Expression>
     <Default>0</Default>
    </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="application"/>
   <GroupBy Name="oc4j_instance"/>
   <GroupBy Name="as_instance"/>
   
   <Where>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="uid" Table="oc4j_opmn"/>
       <ColumnFrom Name="uid" Table="jdbc_connection_pool_stats"/>
      </Condition>
   </Where>

   </Select>
 </Table> <!-- agg_oc4j_jdbc_pool_no_rate -->

 <Table Name="agg_oc4j_jdbc_pool">
   <Label NLSID="agg_oc4j_jdbc_pool">JDBC Connection Pool Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_jdbc_pool_name">Connection Pool Name</Label>
  </ColumnDef>

  <ColumnDef Name="application" Type="String" Key="true">
   <Label NLSID="application_name">Application Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>
  
   <ColumnDef Name="inUseConns" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_connections_in_use">JDBC Connection Pool - Connections In Use</Label>
   </ColumnDef>

   <ColumnDef Name="freePoolSize.value" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_free_connections">JDBC Connection Pool - Free Connections</Label>
   </ColumnDef>

   <ColumnDef Name="poolSize.value" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_total_connections">JDBC Connection Pool - Total Connections in Pool</Label>
   </ColumnDef>

   <ColumnDef Name="waitingThreadCount.active" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_waiting_threads">JDBC Connection Pool - Threads Waiting for Connections</Label>
   </ColumnDef>

   <ColumnDef Name="expiredCount.count" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_expired_count">JDBC Connection Pool - Connections Expired Since Startup</Label>
   </ColumnDef>

   <ColumnDef Name="requestTimeoutCount.count" Type="Integer">
     <Label NLSID="oc4j_jdbc_pool_request_timeout_count">JDBC Connection Pool - Connection Timeouts Since Startup</Label>
   </ColumnDef>

   <ColumnDef Name="useTime" Type="Double">
     <Label NLSID="oc4j_jdbc_pool_useTime">JDBC Connection Pool - Connection Use Time (seconds)</Label>
   </ColumnDef>

   <ColumnDef Name="waitTime" Type="Double">
     <Label NLSID="oc4j_jdbc_pool_waitTime">JDBC Connection Pool - Connection Wait Time (seconds)</Label>
   </ColumnDef>

   <Select Name="agg_oc4j_jdbc_pool_result">
   <TableFrom Name="agg_oc4j_jdbc_pool_no_rate"/>

   <Column Name="name" Type="String"/>
   <Column Name="application" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="inUseConns" Type="Integer" />
   <Column Name="freePoolSize.value" Type="Integer"/>
   <Column Name="poolSize.value" Type="Integer"/>
   <Column Name="waitingThreadCount.active" Type="Integer"/>

<!-- next four are currently unavailable.  see bug 4555817. -->
   <Column Name="expiredCount.count" Type="Integer"/>
   <Column Name="requestTimeoutCount.count" Type="Integer"/>
   <Column Name="useTime" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="useTime.total"/>
       <ColumnFrom Name="useTime.completed"/>
       <Default>0</Default>
     </Rate>
   </Column>
   <Column Name="waitTime" Type="Double">
     <Rate Interval="300000">
       <ColumnFrom Name="waitTime.total"/>
       <ColumnFrom Name="waitTime.completed"/>
       <Default>0</Default>
     </Rate>
   </Column>
<!-- end currently unavailable metrics -->

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_jdbc_pool_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jdbc_pool_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="application"/>
       <Value Name="oc4j_jdbc_pool_application"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jdbc_pool_application"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

   </Select>

 </Table> <!-- agg_oc4j_jdbc_pool -->

 <Table Name="agg_oc4j_jvm_no_rate">
  <Label NLSID="agg_oc4j_jvm_no_rate">OC4J JVM Metrics Without Rates</Label>

  <ColumnDef Name="oc4j_jvm_id" Type="String" Key="true">
   <Label NLSID="oc4j_jvm_id">OC4J JVM ID</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="pid" Type="String">
   <Label NLSID="pid">Process ID</Label>
  </ColumnDef>

  <ColumnDef Name="cpuTime.value" Type="Long">
   <Label NLSID="oc4j_jvm_cpu_time">JVM - CPU Time (ms)</Label>
  </ColumnDef>

  <ColumnDef Name="upTime.value" Type="Long">
   <Label NLSID="oc4j_jvm_up_time">JVM - Uptime (ms)</Label>
  </ColumnDef>

  <ColumnDef Name="numProcessors.value" Type="Integer">
   <Label NLSID="oc4j_jvm_num_processors">JVM - Number of Processors</Label>
  </ColumnDef>

  <ColumnDef Name="memoryUsed.value" Type="Double">
   <Label NLSID="oc4j_jvm_memory_usage">JVM - Memory Usage (MB)</Label>
  </ColumnDef>

  <ColumnDef Name="session.active" Type="Integer">
   <Label NLSID="oc4j_jvm_session_active">JVM - Active Sessions</Label>
  </ColumnDef>

  <ColumnDef Name="request.active" Type="Integer">
   <Label NLSID="oc4j_jvm_request_active">JVM - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="request.completed" Type="Integer">
   <Label NLSID="oc4j_jvm_completed">JVM - Requests Completed</Label>
  </ColumnDef>

  <ColumnDef Name="request.totalTime" Type="Double">
   <Label NLSID="oc4j_jvm_totalTime">JVM - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_jvm_method_active">JVM - Active EJB Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_jvm_method_completed">JVM - EJB Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_jvm_method_totalTime">JVM - Total EJB Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="startTime.value" Type="Long">
   <Label NLSID="oc4j_jvm_startTime">JVM - Start Time (ms since Epoch)</Label>
  </ColumnDef>

  <ColumnDef Name="heap.value" Type="Double">
   <Label NLSID="oc4j_jvm_heap">JVM - Heap Usage (MB)</Label>
  </ColumnDef>

  <ColumnDef Name="activeThreads.value" Type="Integer">
   <Label NLSID="oc4j_jvm_threads_active">JVM - Active Threads</Label>
  </ColumnDef>

  <ColumnDef Name="jdbcConnection.active" Type="Integer">
   <Label NLSID="oc4j_jvm_open_connections">JVM - Open JDBC Connections</Label>
  </ColumnDef>

  <ColumnDef Name="transaction.active" Type="Integer">
   <Label NLSID="oc4j_jvm_active_transactions">JVM - Active Transactions</Label>
  </ColumnDef>

  <!-- Get web module metrics -->
  <Select Name="agg_oc4j_jvm_no_rate_web_metrics">
   <TableFrom Name="oc4j_context"/>

   <Column Name="uid" Type="Long" Key="true">
     <ColumnFrom Name="uid" Table="oc4j_context"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <Aggregation Operator="Sum" Name="sessionActivation.active" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.active" Type="Integer">
    <Aggregation Operator="Sum" Name="processRequest.active" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="processRequest.completed" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="processRequest.time" Table="oc4j_context"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="uid"/>

  </Select>

  <!-- Get ejb module metrics -->
  <Select Name="agg_oc4j_jvm_no_rate_ejb_metrics">
   <TableFrom Name="oc4j_ejb_method"/>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="oc4j_ejb_method"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.completed" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.active" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.active" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="wrapper.time" Table="oc4j_ejb_method"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="uid"/>

  </Select>

  <!-- Get jvm metrics -->
  <Select Name="agg_oc4j_jvm_no_rate_jvm_metrics">
   <TableFrom Name="JVM"/>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="JVM"/>
   </Column>

   <Column Name="startTime.value" Type="Long">
    <Aggregation Operator="Min" Name="startTime.value" Table="JVM"/>
   </Column>
   
   <Column Name="totalMem.value" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="totalMemory.value" Table="JVM"/>
      <Value Name="kb_to_mb">1024</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <Column Name="freeMem.value" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="freeMemory.value" Table="JVM"/>
      <Value Name="kb_to_mb">1024</Value>
    </Expression>
    <Default>0</Default>
   </Column>
   
   <Column Name="heap.value" Type="Double">
    <Expression Operator="Minus">
      <ColumnFrom Name="totalMem.value"/>
      <ColumnFrom Name="freeMem.value"/>
    </Expression>
   </Column>
   
   <Column Name="activeThreads.value" Type="Integer">
     <Aggregation Operator="Sum" Name="activeThreads.value" Table="JVM"/>
     <Default>0</Default>
   </Column>

   <GroupBy Name="uid"/>

  </Select>

  <!-- Get jdbc metrics -->
  <Select Name="agg_oc4j_jvm_no_rate_jdbc_metrics">
   <TableFrom Name="jdbc_connection_pool_stats"/>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="jdbc_connection_pool_stats"/>
   </Column>

   <Column Name="jdbcConnection.active" Type="Integer">
    <Expression Operator="Minus">
      <Aggregation Operator="Sum" Name="PoolSize.value" Table="jdbc_connection_pool_stats"/>
      <Aggregation Operator="Sum" Name="FreePoolSize.value" Table="jdbc_connection_pool_stats"/>
    </Expression>
    <Default>0</Default>
   </Column>

   <Column Name="jdbcConnection.total" Type="Integer">
    <Aggregation Operator="Sum" Name="PoolSize.value" Table="jdbc_connection_pool_stats"/>
    <Default>0</Default>
   </Column>

   <GroupBy Name="uid"/>

  </Select>

  <!-- Get jta metrics -->
  <Select Name="agg_oc4j_jvm_no_rate_jta_metrics">
   <TableFrom Name="JTAResource"/>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="JTAResource"/>
   </Column>

   <Column Name="transaction.active" Type="Integer">
    <Aggregation Operator="Sum" Name="ActiveCount.value" Table="JTAResource"/>
    <Default>0</Default>
   </Column>

   <GroupBy Name="uid"/>

  </Select>

  <!-- Get opmn_process metrics -->
  <Select Name="agg_oc4j_jvm_no_rate_opmn_process_metrics">
   <TableFrom Name="opmn_process"/>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid.value" Table="opmn_process"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="opmn_process_type" Table="opmn_process"/>
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="iasInstance.value" Table="opmn_process"/>
   </Column>

   <Column Name="oc4j_jvm_id" Type="String">
     <ColumnFrom Name="indexInSet.value" Table="opmn_process"/>
   </Column>

   <Column Name="pid" Type="String">
     <ColumnFrom Name="pid.value" Table="opmn_process"/>
   </Column>

   <Column Name="Host" Type="String">
     <ColumnFrom Name="Host" Table="opmn_process"/>
   </Column>

   <Column Name="cpuTime.value" Type="Long">
    <Aggregation Operator="Sum" Name="cpuTime.value" Table="opmn_process"/>
    <Default>0</Default>
   </Column>

   <Column Name="upTime.value" Type="Long">
    <Aggregation Operator="Sum" Name="upTime.value" Table="opmn_process"/>
    <Default>0</Default>
   </Column>

   <Column Name="memoryUsed.value" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="memoryUsed.value" Table="opmn_process"/>
      <Value Name="kb_to_mb">1024</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="uid"/>

   <Where>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="type.value" Table="opmn_process"/>
       <Value>OC4J</Value>
      </Condition>
   </Where>

  </Select>

  <!-- Get opmn_process plus opmn host metrics -->
  <Select Name="agg_oc4j_jvm_no_rate_opmn_metrics">
   <TableFrom Name="agg_oc4j_jvm_no_rate_opmn_process_metrics" OuterJoined="true"/>
   <TableFrom Name="opmn_host_statistics"/>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_opmn_process_metrics"/>
   </Column>

   <Column Name="oc4j_instance" Type="String">
     <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_jvm_no_rate_opmn_process_metrics"/>
   </Column>

   <Column Name="as_instance" Type="String">
     <ColumnFrom Name="as_instance" Table="agg_oc4j_jvm_no_rate_opmn_process_metrics"/>
   </Column>

   <Column Name="oc4j_jvm_id" Type="String">
     <ColumnFrom Name="oc4j_jvm_id" Table="agg_oc4j_jvm_no_rate_opmn_process_metrics"/>
   </Column>

   <Column Name="pid" Type="String">
     <ColumnFrom Name="pid" Table="agg_oc4j_jvm_no_rate_opmn_process_metrics"/>
   </Column>

   <Column Name="cpuTime.value" Type="Long">
    <ColumnFrom Name="cpuTime.value" Table="agg_oc4j_jvm_no_rate_opmn_process_metrics"/>
   </Column>

   <Column Name="upTime.value" Type="Long">
    <ColumnFrom Name="upTime.value" Table="agg_oc4j_jvm_no_rate_opmn_process_metrics"/>
   </Column>

   <Column Name="numProcessors.value" Type="Integer">
    <ColumnFrom Name="numProcessors.value" Table="opmn_host_statistics"/>
   </Column>

   <Column Name="memoryUsed.value" Type="Double">
    <ColumnFrom Name="memoryUsed.value" Table="agg_oc4j_jvm_no_rate_opmn_process_metrics"/>
   </Column>

   <Where>
      <Condition Operator="EQ" Type="String">
        <ColumnFrom Name="Host" Table="agg_oc4j_jvm_no_rate_opmn_process_metrics"/>
        <ColumnFrom Name="Host" Table="opmn_host_statistics"/>
      </Condition>
   </Where>

  </Select>

  <!-- Join all metrics -->
  <Select Name="agg_oc4j_jvm_no_rate_result1">
   <TableFrom Name="agg_oc4j_jvm_no_rate_web_metrics" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_jvm_no_rate_ejb_metrics" OuterJoined="true"/>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_web_metrics"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_jvm_no_rate_web_metrics"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_jvm_no_rate_web_metrics"/>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_jvm_no_rate_web_metrics"/>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_jvm_no_rate_web_metrics"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_jvm_no_rate_ejb_metrics"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_jvm_no_rate_ejb_metrics"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_jvm_no_rate_ejb_metrics"/>
   </Column>

   <Where>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_web_metrics"/>
       <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_ejb_metrics"/>
      </Condition>
   </Where>

  </Select>

  <Select Name="agg_oc4j_jvm_no_rate_result2">
   <TableFrom Name="agg_oc4j_jvm_no_rate_result1" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_jvm_no_rate_jvm_metrics" OuterJoined="true"/>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_result1"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_jvm_no_rate_result1"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_jvm_no_rate_result1"/>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_jvm_no_rate_result1"/>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_jvm_no_rate_result1"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_jvm_no_rate_result1"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_jvm_no_rate_result1"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_jvm_no_rate_result1"/>
   </Column>

   <Column Name="startTime.value" Type="Long">
    <ColumnFrom Name="startTime.value" Table="agg_oc4j_jvm_no_rate_jvm_metrics"/>
   </Column>

   <Column Name="heap.value" Type="Double">
    <ColumnFrom Name="heap.value" Table="agg_oc4j_jvm_no_rate_jvm_metrics"/>
   </Column>

   <Column Name="activeThreads.value" Type="Integer">
    <ColumnFrom Name="activeThreads.value" Table="agg_oc4j_jvm_no_rate_jvm_metrics"/>
   </Column>

   <Where>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_result1"/>
       <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_jvm_metrics"/>
      </Condition>
   </Where>

  </Select>

  <Select Name="agg_oc4j_jvm_no_rate_result3">
   <TableFrom Name="agg_oc4j_jvm_no_rate_result2" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_jvm_no_rate_jdbc_metrics" OuterJoined="true"/>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="startTime.value" Type="Long">
    <ColumnFrom Name="startTime.value" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="heap.value" Type="Double">
    <ColumnFrom Name="heap.value" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="activeThreads.value" Type="Integer">
    <ColumnFrom Name="activeThreads.value" Table="agg_oc4j_jvm_no_rate_result2"/>
   </Column>

   <Column Name="jdbcConnection.active" Type="Integer">
    <ColumnFrom Name="jdbcConnection.active" Table="agg_oc4j_jvm_no_rate_jdbc_metrics"/>
   </Column>

   <Where>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_result2"/>
       <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_jdbc_metrics"/>
      </Condition>
   </Where>
  </Select>

  <Select Name="agg_oc4j_jvm_no_rate_result4">
   <TableFrom Name="agg_oc4j_jvm_no_rate_result3" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_jvm_no_rate_jta_metrics" OuterJoined="true"/>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="startTime.value" Type="Long">
    <ColumnFrom Name="startTime.value" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="heap.value" Type="Double">
    <ColumnFrom Name="heap.value" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="activeThreads.value" Type="Integer">
    <ColumnFrom Name="activeThreads.value" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="jdbcConnection.active" Type="Integer">
    <ColumnFrom Name="jdbcConnection.active" Table="agg_oc4j_jvm_no_rate_result3"/>
   </Column>

   <Column Name="transaction.active" Type="Integer">
    <ColumnFrom Name="transaction.active" Table="agg_oc4j_jvm_no_rate_jta_metrics"/>
   </Column>

   <Where>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_result3"/>
       <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_jta_metrics"/>
      </Condition>
   </Where>

  </Select>

  <Select Name="agg_oc4j_jvm_no_rate_result5">
   <TableFrom Name="agg_oc4j_jvm_no_rate_result4" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_jvm_no_rate_opmn_metrics" OuterJoined="true"/>

   <Column Name="oc4j_jvm_id" Type="String" Key="true">
     <ColumnFrom Name="oc4j_jvm_id" Table="agg_oc4j_jvm_no_rate_opmn_metrics"/>
   </Column>

   <Column Name="oc4j_instance" Type="String" Key="true">
     <ColumnFrom Name="oc4j_instance" Table="agg_oc4j_jvm_no_rate_opmn_metrics"/>
   </Column>

   <Column Name="as_instance" Type="String" Key="true">
     <ColumnFrom Name="as_instance" Table="agg_oc4j_jvm_no_rate_opmn_metrics"/>
   </Column>

   <Column Name="pid" Type="String">
     <ColumnFrom Name="pid" Table="agg_oc4j_jvm_no_rate_opmn_metrics"/>
   </Column>

   <Column Name="cpuTime.value" Type="Long">
     <ColumnFrom Name="cpuTime.value" Table="agg_oc4j_jvm_no_rate_opmn_metrics"/>
   </Column>

   <Column Name="upTime.value" Type="Long">
     <ColumnFrom Name="upTime.value" Table="agg_oc4j_jvm_no_rate_opmn_metrics"/>
   </Column>

   <Column Name="numProcessors.value" Type="Integer">
     <ColumnFrom Name="numProcessors.value" Table="agg_oc4j_jvm_no_rate_opmn_metrics"/>
   </Column>

   <Column Name="memoryUsed.value" Type="Double">
     <ColumnFrom Name="memoryUsed.value" Table="agg_oc4j_jvm_no_rate_opmn_metrics"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="startTime.value" Type="Long">
    <ColumnFrom Name="startTime.value" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="heap.value" Type="Double">
    <ColumnFrom Name="heap.value" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="activeThreads.value" Type="Integer">
    <ColumnFrom Name="activeThreads.value" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="jdbcConnection.active" Type="Integer">
    <ColumnFrom Name="jdbcConnection.active" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Column Name="transaction.active" Type="Integer">
    <ColumnFrom Name="transaction.active" Table="agg_oc4j_jvm_no_rate_result4"/>
   </Column>

   <Where>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_result4"/>
       <ColumnFrom Name="uid" Table="agg_oc4j_jvm_no_rate_opmn_metrics"/>
      </Condition>
   </Where>

  </Select>
	
 </Table> <!-- agg_oc4j_jvm_no_rate -->

 <Table Name="agg_oc4j_jvm">
  <Label NLSID="agg_oc4j_jvm">OC4J JVM Metrics</Label>

  <ColumnDef Name="oc4j_jvm_id" Type="String" Key="true">
   <Label NLSID="oc4j_jvm_id">OC4J JVM ID</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="pid" Type="String">
   <Label NLSID="pid">Process ID</Label>
  </ColumnDef>

  <ColumnDef Name="cpuUsage.value" Type="Double">
   <Label NLSID="oc4j_jvm_cpu_usage">JVM - CPU Usage (%)</Label>
  </ColumnDef>

  <ColumnDef Name="memoryUsed.value" Type="Double">
   <Label NLSID="oc4j_jvm_memory_usage">JVM - Memory Usage (MB)</Label>
  </ColumnDef>

  <ColumnDef Name="session.active" Type="Integer">
   <Label NLSID="oc4j_jvm_session_active">JVM - Active Sessions</Label>
  </ColumnDef>

  <ColumnDef Name="request.active" Type="Integer">
   <Label NLSID="oc4j_jvm_request_active">JVM - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="request.completed" Type="Integer">
   <Label NLSID="oc4j_jvm_completed">JVM - Requests Completed</Label>
  </ColumnDef>

  <ColumnDef Name="request.totalTime" Type="Double">
   <Label NLSID="oc4j_jvm_totalTime">JVM - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="request.throughput" Type="Double">
   <Label NLSID="oc4j_jvm_web_throughput">JVM - Requests Per Second</Label>
  </ColumnDef>

  <ColumnDef Name="request.time" Type="Double">
   <Label NLSID="oc4j_jvm_web_time">JVM - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_jvm_method_active">JVM - Active EJB Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_jvm_method_completed">JVM - EJB Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_jvm_method_totalTime">JVM - Total EJB Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.time" Type="Double">
   <Label NLSID="oc4j_jvm_method_time">JVM - EJB Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.throughput" Type="Double">
   <Label NLSID="oc4j_jvm_method_throughput">JVM - EJB Methods Executed per Second</Label>
  </ColumnDef>

  <ColumnDef Name="startTime.value" Type="Long">
   <Label NLSID="oc4j_jvm_startTime">JVM - Start Time (ms since Epoch)</Label>
  </ColumnDef>

  <ColumnDef Name="heap.value" Type="Double">
   <Label NLSID="oc4j_jvm_heap">JVM - Heap Usage (MB)</Label>
  </ColumnDef>

  <ColumnDef Name="activeThreads.value" Type="Integer">
   <Label NLSID="oc4j_jvm_threads_active">JVM - Active Threads</Label>
  </ColumnDef>

  <ColumnDef Name="jdbcConnection.active" Type="Integer">
   <Label NLSID="oc4j_jvm_open_connections">JVM - Open JDBC Connections</Label>
  </ColumnDef>

  <ColumnDef Name="transaction.active" Type="Integer">
   <Label NLSID="oc4j_jvm_active_transactions">JVM - Active Transactions</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_jvm_result">
   <TableFrom Name="agg_oc4j_jvm_no_rate"/>

   <Column Name="oc4j_jvm_id" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="pid" Type="String"/>

   <Column Name="cpuUsage.value" Type="Double">
     <Expression Operator="Div">
       <Expression Operator="Mult">
         <Rate Interval="300000">
           <ColumnFrom Name="cpuTime.value"/>
           <ColumnFrom Name="upTime.value"/>
           <Default>0</Default>
         </Rate>
         <Value Name="to_percentage">100</Value>
       </Expression>
       <ColumnFrom Name="numProcessors.value"/>
     </Expression>
   </Column>
   
   <Column Name="memoryUsed.value" Type="Double"/>

   <Column Name="session.active" Type="Integer"/>
   <Column Name="request.active" Type="Integer"/>
   <Column Name="request.completed" Type="Integer"/>
   <Column Name="request.totalTime" Type="Double"/>

   <Column Name="request.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="request.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="request.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="request.totalTime"/>
     <ColumnFrom Name="request.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="method.active" Type="Integer"/>
   <Column Name="method.completed" Type="Integer"/>
   <Column Name="method.totalTime" Type="Double"/>

   <Column Name="method.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.totalTime"/>
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="method.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="startTime.value" Type="Long"/>
   <Column Name="heap.value" Type="Double"/>
   <Column Name="activeThreads.value" Type="Integer"/>
   <Column Name="jdbcConnection.active" Type="Integer"/>
   <Column Name="transaction.active" Type="Integer"/>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_jvm_id"/>
       <Value Name="oc4j_jvm_id"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jvm_id"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

  </Select>
  
 </Table> <!-- agg_oc4j_jvm -->

 <Table Name="agg_oc4j_application_per_jvm_no_rate">
  <Label NLSID="agg_oc4j_application_per_jvm_no_rate">OC4J Per-JVM Application Metrics Without Rates</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_app_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_jvm_id" Type="String" Key="true">
   <Label NLSID="oc4j_jvm_id">OC4J JVM ID</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>
  
  <ColumnDef Name="session.active" Type="Integer">
   <Label NLSID="oc4j_app_per_jvm_session_active">Application Per JVM - Active Sessions</Label>
  </ColumnDef>

  <ColumnDef Name="request.active" Type="Integer">
   <Label NLSID="oc4j_app_per_jvm_request_active">Application Per JVM - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="request.completed" Type="Integer">
   <Label NLSID="oc4j_app_per_jvm_completed">Application Per JVM - Requests Completed</Label>
  </ColumnDef>

  <ColumnDef Name="request.totalTime" Type="Double">
   <Label NLSID="oc4j_app_per_jvm_totalTime">Application Per JVM - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_app_per_jvm_method_active">Application Per JVM - Active Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_app_per_jvm_method_completed">Application Per JVM - Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_app_per_jvm_method_totalTime">Application Per JVM - Total Method Execution Time (seconds)</Label>
  </ColumnDef>

  <!-- Get all the web module metrics for the application -->
  <Select Name="agg_oc4j_app_per_jvm_no_rate_web_metrics">
   <TableFrom Name="oc4j_context"/>

   <Column Name="name" Type="String" Key="true">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_context"/>
   </Column>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="oc4j_context"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <Aggregation Operator="Sum" Name="sessionActivation.active" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.active" Type="Integer">
    <Aggregation Operator="Sum" Name="processRequest.active" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="processRequest.completed" Table="oc4j_context"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="processRequest.time" Table="oc4j_context"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="uid"/>

  </Select>

  <!-- Get all the EJB Module metrics for the application -->
  <Select Name="agg_oc4j_app_per_jvm_no_rate_ejb_metrics">
   <TableFrom Name="oc4j_ejb_method"/>

   <Column Name="name" Type="String" Key="true">
    <ColumnFrom Name="oc4j_ear" Table="oc4j_ejb_method"/>
   </Column>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="oc4j_ejb_method"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.completed" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.active" Type="Integer">
    <Aggregation Operator="Sum" Name="wrapper.active" Table="oc4j_ejb_method"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <Expression Operator="Div">
      <Aggregation Operator="Sum" Name="wrapper.time" Table="oc4j_ejb_method"/>
      <Value Name="milli_to_second">1000</Value>
    </Expression>
    <Default>0</Default>
   </Column>

   <GroupBy Name="name"/>
   <GroupBy Name="uid"/>

  </Select>

  <!-- Join together the web and ejb metrics -->
  <Select Name="agg_oc4j_app_per_jvm_no_rate_result1">
   <TableFrom Name="agg_oc4j_app_per_jvm_no_rate_web_metrics" OuterJoined="true"/>
   <TableFrom Name="agg_oc4j_app_per_jvm_no_rate_ejb_metrics" OuterJoined="true"/>

   <Column Name="name_from_web" Type="String">
    <ColumnFrom Name="name" Table="agg_oc4j_app_per_jvm_no_rate_web_metrics"/>
   </Column>

   <Column Name="name_from_ejb" Type="String">
    <ColumnFrom Name="name" Table="agg_oc4j_app_per_jvm_no_rate_ejb_metrics"/>
   </Column>

   <Column Name="name" Type="String" Key="true">
    <If>
     <Condition Operator="NE">
      <ColumnFrom Name="name_from_web"/>
       <Null/>
     </Condition>
    <Then>
     <ColumnFrom Name="name_from_web"/>
    </Then>
    <Else>
     <ColumnFrom Name="name_from_ejb"/>
    </Else>
   </If>
   </Column>

   <Column Name="uid" Type="String" Key="true">
     <ColumnFrom Name="uid" Table="agg_oc4j_app_per_jvm_no_rate_web_metrics"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_app_per_jvm_no_rate_web_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_app_per_jvm_no_rate_web_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_app_per_jvm_no_rate_web_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_app_per_jvm_no_rate_web_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_app_per_jvm_no_rate_ejb_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_app_per_jvm_no_rate_ejb_metrics"/>
    <Default>0</Default>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_app_per_jvm_no_rate_ejb_metrics"/>
    <Default>0</Default>
   </Column>

   <Where>
    <And>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="name" Table="agg_oc4j_app_per_jvm_no_rate_web_metrics"/>
       <ColumnFrom Name="name" Table="agg_oc4j_app_per_jvm_no_rate_ejb_metrics"/>
      </Condition>

      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="uid" Table="agg_oc4j_app_per_jvm_no_rate_web_metrics"/>
       <ColumnFrom Name="uid" Table="agg_oc4j_app_per_jvm_no_rate_ejb_metrics"/>
      </Condition>
    </And>
   </Where>

  </Select>

  <!-- Add the OPMN process info -->
  <Select Name="agg_oc4j_app_per_jvm_no_rate_result2">
   <TableFrom Name="agg_oc4j_app_per_jvm_no_rate_result1" OuterJoined="true"/>
   <TableFrom Name="opmn_process"/>

   <Column Name="name" Type="String" Key="true">
    <ColumnFrom Name="name" Table="agg_oc4j_app_per_jvm_no_rate_result1"/>
   </Column>

   <Column Name="oc4j_jvm_id" Type="String" Key="true">
     <ColumnFrom Name="indexInSet.value" Table="opmn_process"/>
   </Column>

   <Column Name="oc4j_instance" Type="String" Key="true">
     <ColumnFrom Name="opmn_process_type" Table="opmn_process"/>
   </Column>

   <Column Name="as_instance" Type="String" Key="true">
     <ColumnFrom Name="iasInstance.value" Table="opmn_process"/>
   </Column>

   <Column Name="request.completed" Type="Integer">
    <ColumnFrom Name="request.completed" Table="agg_oc4j_app_per_jvm_no_rate_result1"/>
   </Column>

   <Column Name="session.active" Type="Integer">
    <ColumnFrom Name="session.active" Table="agg_oc4j_app_per_jvm_no_rate_result1"/>
   </Column>

   <Column Name="request.active" Type="Integer">
    <ColumnFrom Name="request.active" Table="agg_oc4j_app_per_jvm_no_rate_result1"/>
   </Column>

   <Column Name="request.totalTime" Type="Double">
    <ColumnFrom Name="request.totalTime" Table="agg_oc4j_app_per_jvm_no_rate_result1"/>
   </Column>

   <Column Name="method.completed" Type="Integer">
    <ColumnFrom Name="method.completed" Table="agg_oc4j_app_per_jvm_no_rate_result1"/>
   </Column>

   <Column Name="method.active" Type="Integer">
    <ColumnFrom Name="method.active" Table="agg_oc4j_app_per_jvm_no_rate_result1"/>
   </Column>

   <Column Name="method.totalTime" Type="Double">
    <ColumnFrom Name="method.totalTime" Table="agg_oc4j_app_per_jvm_no_rate_result1"/>
   </Column>

   <Where>
      <Condition Operator="EQ" Type="String">
       <ColumnFrom Name="uid" Table="agg_oc4j_app_per_jvm_no_rate_result1"/>
       <ColumnFrom Name="uid.value" Table="opmn_process"/>
      </Condition>
   </Where>

  </Select>
	
 </Table> <!-- agg_oc4j_application_per_jvm_no_rate -->

 <Table Name="agg_oc4j_application_per_jvm">
  <Label NLSID="agg_oc4j_application_per_jvm">OC4J Per-JVM Application Metrics</Label>

  <ColumnDef Name="name" Type="String" Key="true">
   <Label NLSID="oc4j_app_name">Name</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_jvm_id" Type="String" Key="true">
   <Label NLSID="oc4j_jvm_id">OC4J JVM ID</Label>
  </ColumnDef>

  <ColumnDef Name="oc4j_instance" Type="String" Key="true">
   <Label NLSID="oc4j_instance_name">OC4J Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="as_instance" Type="String" Key="true">
   <Label NLSID="as_instance_name">AS Instance Name</Label>
  </ColumnDef>

  <ColumnDef Name="session.active" Type="Integer">
   <Label NLSID="oc4j_app_per_jvm_session_active">Application Per JVM - Active Sessions</Label>
  </ColumnDef>

  <ColumnDef Name="request.active" Type="Integer">
   <Label NLSID="oc4j_app_per_jvm_request_active">Application Per JVM - Active Requests</Label>
  </ColumnDef>

  <ColumnDef Name="request.completed" Type="Integer">
   <Label NLSID="oc4j_app_per_jvm_completed">Application Per JVM - Requests Completed</Label>
  </ColumnDef>

  <ColumnDef Name="request.totalTime" Type="Double">
   <Label NLSID="oc4j_app_per_jvm_totalTime">Application Per JVM - Total Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="request.time" Type="Double">
   <Label NLSID="oc4j_app_per_jvm_time">Application Per JVM - Client Processing Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="request.throughput" Type="Double">
   <Label NLSID="oc4j_app_per_jvm_throughput">Application Per JVM - Requests per Seconds</Label>
  </ColumnDef>

  <ColumnDef Name="method.active" Type="Integer">
   <Label NLSID="oc4j_app_per_jvm_method_active">Application Per JVM - Active Methods</Label>
  </ColumnDef>

  <ColumnDef Name="method.completed" Type="Integer">
   <Label NLSID="oc4j_app_per_jvm_method_completed">Application Per JVM - Method Invocations</Label>
  </ColumnDef>

  <ColumnDef Name="method.totalTime" Type="Double">
   <Label NLSID="oc4j_app_per_jvm_method_totalTime">Application Per JVM - Total Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.time" Type="Double">
   <Label NLSID="oc4j_app_per_jvm_method_time">Application Per JVM - Method Execution Time (seconds)</Label>
  </ColumnDef>

  <ColumnDef Name="method.throughput" Type="Double">
   <Label NLSID="oc4j_app_per_jvm_method_throughput">Application Per JVM - Methods Executed per Second</Label>
  </ColumnDef>

  <Select Name="agg_oc4j_app_per_jvm_result">
   <TableFrom Name="agg_oc4j_application_per_jvm_no_rate"/>

   <Column Name="name" Type="String"/>
   <Column Name="oc4j_jvm_id" Type="String"/>
   <Column Name="oc4j_instance" Type="String"/>
   <Column Name="as_instance" Type="String"/>
   <Column Name="session.active" Type="Integer"/>
   <Column Name="request.active" Type="Integer"/>
   <Column Name="request.completed" Type="Integer"/>
   <Column Name="request.totalTime" Type="Double"/>

   <Column Name="request.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="request.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="request.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="request.totalTime"/>
     <ColumnFrom Name="request.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Column Name="method.active" Type="Integer"/>
   <Column Name="method.completed" Type="Integer"/>
   <Column Name="method.totalTime" Type="Double"/>

   <Column Name="method.throughput" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>
   
   <Column Name="method.time" Type="Double">
    <Rate Interval="300000">
     <ColumnFrom Name="method.totalTime"/>
     <ColumnFrom Name="method.completed"/>
     <Default>0</Default>
    </Rate>
   </Column>

   <Where>
    <And>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="name"/>
       <Value Name="oc4j_application_name"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_application_name"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_jvm_id"/>
       <Value Name="oc4j_jvm_id"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_jvm_id"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="oc4j_instance"/>
       <Value Name="oc4j_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="oc4j_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
     <Or>
      <Condition Type="String" Operator="EQ">
       <ColumnFrom Name="as_instance"/>
       <Value Name="as_instance"/>
      </Condition>
      <Condition Type="String" Operator="EQ">
       <Value Name="as_instance"
              xsi:nil="true"/>
       <Null/>
      </Condition>
     </Or>
    </And>
   </Where>

  </Select>
	
 </Table> <!-- agg_oc4j_application_per_jvm -->

</Adml>
