ヘッダーをスキップ
Oracle Enterprise Manager Connectors統合ガイド
10gリリース4(10.2.0.4)
E05925-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

3 イベント・コネクタの作成

この章では、イベント・コネクタを作成し、Enterprise Managerと統合するために必要な情報を提供しています。

この章の内容は次のとおりです。

概要

Oracle Enterprise Manager 10gには、Management Connectorフレームワーク(Connectorフレームワークとも呼ばれる)が導入され、開発者はメタデータ(XMLおよびXSL)に基づいてイベント・コネクタを作成できます。イベント・コネクタにより、Enterprise Managerは、ポーリング・ベースのアプローチを使用して外部イベントを取得できます。外部システムにイベントを送信することもできます。

イベント・コネクタの作成には、次のカテゴリのメタデータ・ファイルが必要です。

前提条件

コネクタ・フレームワークを作成する前に、次のイベント・システムの前提条件を満たしていることを確認してください。

XMLファイルおよびXSLファイルの定義

次の項では、イベント・コネクタを作成するために定義が必要な、様々なXMLおよびXSLファイルの詳細を説明します。

次の場所でメタデータ・ファイルを参照することをお薦めします。

$OMS_HOME/sysman/connector

コネクタの.jarファイルは、次の場所で参照できます。

$OMS_HOME/ j2ee/OC4J_EM/applications/em/em/WEB-INF/lib

コネクタ記述子XMLファイル

コネクタ記述子XMLファイルを定義して、コネクタ・メタデータおよびコネクタの構成プロパティ(Webサービスのエンドポイントおよび認証スキーマなど)を記述します。このファイルは、スキーマconnectorType.xsdに準拠する必要があります。

次に、コネクタ記述子XMLファイルの例を示します。各種の要素を定義する必要があります。ハイライトされたテキストを、対応する要素で置き換えてください。

例3-1 コネクタ記述子XMLファイルの例

<?xml version='1.0' encoding='UTF-8'?>
<ManagementConnector xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                     xmlns="http://xmlns.oracle.com/sysman/connector">
  <Name>specify the connector name</Name>
  <Version>specify the 5-digit version, e.g., 1.0.0.0.0</Version>
  <Description>specify a short description</Description>
  <Category>EventConnector</Category>
<!-- Category is fixed to EventConnector. -->
  <EventConnector>
    <!-- If IsNewTargetType is set to true, it means the developers want to define
a new target type to hold external alerts. In that case, targetType.xml and
defaultTargetType.xml need to be shipped in the connector jar. -->
    <IsNewTargetType>true</IsNewTargetType>
    <EventService>
      <Method>getNewAlerts</Method>
      <WebServiceEndpoint>
        <![CDATA[specify URL]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
    <EventService>
      <Method>getUpdatedAlerts</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
    <EventService>
<Method>acknowledgeAlerts</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
    <EventService>
      <Method>setup</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
    <EventService>
      <Method>destroy</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
   <!-- BaseURL element is for the default UI for event connectors, the following value should not be changed. -->
    <BaseURL>/em/console/connector/event/configuration</BaseURL>
  </EventConnector>
</ManagementConnector>

connectorType.xsdファイル

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns="http://xmlns.oracle.com/sysman/connector"
            targetNamespace="http://xmlns.oracle.com/sysman/connector"
            elementFormDefault="qualified" >

  <xsd:element name="ManagementConnector">
    <xsd:annotation>
      <xsd:documentation>Deployment Descriptor for Management Connectors</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Name" type="xsd:string"/>
        <xsd:element name="Version" type="xsd:string"/>
        <xsd:element name="Description" type="xsd:string"/>
        <xsd:element name="Category">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:enumeration value="EventConnector"/>
              <xsd:enumeration value="TicketingConnector"/>
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:element>
        <xsd:choice>
          <xsd:element name="EventConnector" type="EventConnector"/>
          <xsd:element name="TicketingConnector" type="TicketingConnector"/>
        </xsd:choice>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="EventConnector">
  <xsd:sequence>
      <xsd:element name="IsNewTargetType" type="xsd:boolean"/>
      <xsd:element name="Authentication" type="Authentication" minOccurs="0"/>
      <xsd:element name="EventService" type="EventService" minOccurs="1" maxOccurs="unbounded"/>
      <xsd:element name="TargetResponse" type="Response" minOccurs="0"/>
      <xsd:element name="BaseURL" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="TicketingConnector">
    <xsd:sequence>
      <xsd:element name="Authentication" type="Authentication" minOccurs="0"/>
      <xsd:element name="TicketingService" type="TicketingService" minOccurs="1" maxOccurs="unbounded"/>
      <xsd:element name="BaseURL" type="xsd:string"/>
      <xsd:element name="ExternalURL" type="ExternalURL"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EventService">
    <xsd:sequence>
      <xsd:element name="Method" maxOccurs="1">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="getNewAlerts"/>
            <xsd:enumeration value="getUpdatedAlerts"/>
            <xsd:enumeration value="acknowledgeAlerts"/>
            <xsd:enumeration value="setup"/>
            <xsd:enumeration value="initialize"/>
            <xsd:enumeration value="uninitialize"/>
            <xsd:enumeration value="cleanup"/>
            <xsd:enumeration value="updateAlerts"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element name="WebServiceEndpoint" type="xsd:string"/>
      <xsd:element name="SOAPAction" type="xsd:string" minOccurs="0"/>
      <xsd:element name="Namespace" type="xsd:string"/>
      <xsd:element name="NamespacePrefix" type="xsd:string"/>
    </xsd:sequence>
 </xsd:complexType>
  <xsd:complexType name="TicketingService">
    <xsd:sequence>
      <xsd:element name="Method" maxOccurs="1">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="createTicket"/>
            <xsd:enumeration value="updateTicket"/>
            <xsd:enumeration value="getTicket"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element name="WebServiceEndpoint" type="xsd:string"/>
      <xsd:element name="SOAPAction" type="xsd:string" minOccurs="0"/>
      <xsd:element name="Namespace" type="xsd:string"/>
      <xsd:element name="NamespacePrefix" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Authentication">
    <xsd:sequence>
      <xsd:element name="Username" type="Username"/>
      <xsd:element name="Password" type="Password"/>
      <xsd:element name="Attribute" type="Attribute" maxOccurs="unbounded" minOccurs="0"/>
      <xsd:element name="Data" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Username">
    <xsd:sequence>
      <xsd:element name="AttributeName" type="xsd:string"/>
      <xsd:element name="DisplayName" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Password">
    <xsd:sequence>
      <xsd:element name="AttributeName" type="xsd:string"/>
      <xsd:element name="DisplayName" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Attribute">
    <xsd:sequence>
      <xsd:element name="AttributeName" type="xsd:string"/>
      <xsd:element name="DisplayName" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Response">
    <xsd:sequence>
      <xsd:element name="ScriptName" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExternalURL">
    <xsd:sequence>
      <xsd:element name="Pattern" type="xsd:string"/>
      <xsd:element name="UserVariable" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
      <xsd:element name="SubstitutionVariable" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

デフォルト・リクエストXMLファイル

Webサービスを正常に動作させるには、リクエストXMLファイルおよびリクエストXSLファイルが必要です。たとえば、Microsoft Operations Manager(MOM)ConnectorがMOMへの設定Webサービス・コールの一部として機能するには、設定名および解決状態が必要です。リクエスト・ファイルsetup_request.xmlが、これに使用されます。

表3-1に、作成する必要があるリクエストXMLファイルのリストを示します。指定するファイル名が表内のファイル名と完全に一致していることを確認してください。

表3-1 デフォルト・リクエストXMLファイル

テンプレート 説明

generic_request_newalerts.xml


新規アラートの初期リクエストXMLファイルを作成します。

generic_request_updatedalerts.xml


更新アラートの初期リクエストXMLファイルを作成します。

setup_request.xml(オプション)


外部イベント・システムにコネクタを登録します。

initialize_request.xml(オプション)


設定後、外部イベント・システムのコネクタを初期化します。

uninitialize_request.xml(オプション)


外部イベント・システムのコネクタを初期化解除します。

cleanup_request.xml(オプション)

外部イベント・システムのコネクタを登録解除します。

acknowledge_request.xml(オプション)


承認リクエストを定義し、外部イベント・システムに送信します。


次の詳細は、表3-1にリストされたすべてのリクエストXMLファイルに適用されます。

  • $REGISTRATION_ID$など、$で囲まれた文字列は、置換変数です。これらは、プロパティ名としてこれらの文字列を含むEnterprise Managerリポジトリ内に格納された値で置き換えられます。


    注意:

    Enterprise Manager 10gリリース4では、設定に使用可能な置換変数は、$REGISTRATION_ID$のみです。

  • リクエストXMLファイルは、必要に応じて、変換される場合があります。詳細は、デフォルト・リクエストXSLファイルを参照してください。

次の例では、テンプレートのコードについて説明しています。

generic_request_newalerts.xml

<?xml version="1.0" encoding="utf-8" ?>
<getAlerts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.oracle.com/sysman/connector GenericGetAlertRequest.xsd"
        xmlns="http://xmlns.oracle.com/sysman/connector">
   <registrationId>$REGISTRATION_ID$</registrationId>
   <maxCount>100</maxCount>   <typeOfAlerts> NewAlerts</typeOfAlerts>
   <getAlertsData>
      <ConfigParam>
        <Name></Name>
        <Value></Value>
    </ConfigParam>
   </getAlertsData></getAlerts

generic_request_updatedalerts.xml

<?xml version="1.0" encoding="utf-8" ?>
<getAlerts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.oracle.com/sysman/connector GenericGetUpdateRequest.xsd"
        xmlns="http://xmlns.oracle.com/sysman/connector">
   <registrationId>$REGISTRATION_ID$</registrationId>
   <maxCount>100</maxCount>
   <typeOfAlerts> UpdatedAlerts</typeOfAlerts>
   <getAlertsData>
      <ConfigParam>
        <Name></Name>
        <Value></Value>
    </ConfigParam>
   </getAlertsData>
</getAlerts

setup_request.xml(オプション)

<?xml version="1.0" encoding="UTF-8" ?>
<setup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.oracle.com/sysman/connector GenericSetupRequest.xsd"
       xmlns="http://xmlns.oracle.com/sysman/connector">
  <setupname>$SETUP_NAME$</setupname>
  <setupData>
    <ConfigParam>
      <Name></Name>
      <Value></Value>
    </ConfigParam>
  </setupData>
</setup

initialize_request.xml(オプション)

<?xml version="1.0" encoding="UTF-8" ?>
<initialize xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://xmlns.oracle.com/sysman/connector">
  <registrationId>$REGISTRATION_ID$</registrationId>
  <typeofAlerts>NewAlerts UpdatedAlerts</typeofAlerts>
</initialize>

uninitialize_request.xml(オプション)

<?xml version="1.0" encoding="UTF-8" ?>
<uninitialize xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://xmlns.oracle.com/sysman/connector">
  <registrationId>$REGISTRATION_ID$</registrationId>
  <typeofAlerts>NewAlerts UpdatedAlerts</typeofAlerts>
</uninitialize>

cleanup_request.xml(オプション)

<?xml version="1.0" encoding="UTF-8" ?>
<cleanup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://xmlns.oracle.com/sysman/connector">
  <registrationId>$REGISTRATION_ID$</registrationId>
  <cleanupData>
    <ConfigParam>
      <Name></Name>
      <Value></Value>
    </ConfigParam>
  </cleanupData>
</cleanup>

acknowledge_request.xml(オプション)

<?xml version="1.0" encoding="utf-8" ?>
<getAlerts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.oracle.com/sysman/connector GenericGetAlertRequest.xsd"
       xmlns="http://xmlns.oracle.com/sysman/connector">
  <registrationId>$REGISTRATION_ID$</registrationId>
  <maxCount>100</maxCount>
  <typeOfAlerts> NewAlerts</typeOfAlerts>
  <getAlertsData>
     <ConfigParam>
       <Name></Name>
       <Value></Value>
   </ConfigParam>
  </getAlertsData></getAlerts>

デフォルト・リクエストXSLファイル

表3-2に、イベント・コネクタを作成するために定義する必要のあるリクエストXSLファイルのリストを示します。変換が必要ない場合は、次のXSLファイルを定義して変更なしにコンテンツをパススルーできます。

表3-2 デフォルト・リクエストXSLファイル

ファイル名 説明

setup_request.xsl

setup_request.xmlを変換します。

initialize_request.xsl

initialize_request.xmlを変換します。

getNewAlert_request.xsl

generic_request_newalerts.xmlを変換します。

getUpdatedAlert_request.xsl

generic_request_updatedalerts.xmlを変換します。

acknowledge_request.xsl

generic_request_acknowledgealerts.xmlを変換します。

uninitialize_request.xsl

uninitialize_request.xmlを変換します。

cleanup_request.xsl

cleanup_request.xmlを変換します。


レスポンスXSLファイル

レスポンスXSLファイルは、外部イベント・システムからのアラートをEnterprise Managerにロードする前にどのように変換するかを定義する変換ファイルです。

表3-3に、作成する必要があるレスポンスXMLファイルのリストを示します。指定するファイル名が表内のファイル名と完全に一致していることを確認してください。

表3-3 レスポンスXSLファイル

ファイル名 説明

setup_response.xsl(オプション)


外部イベント・システムからの受信レスポンスを、登録IDをEnterprise Managerで理解できるように変換します。

以降、外部システムは、このIDを使用してイベント・コネクタを識別します。

Enterprise Managerでレスポンスを理解してリポジトリに追加できるよう、外部システムからのレスポンスは、次の形式に変換される必要があります。

<registrationId>

122222

</registrationId>

getNewAlerts_response.xsl


新規の受信アラートをEnterprise Managerの基本アラート・スキーマに変換します。

getUpdatedAlerts_response.xsl

受信中の更新アラートをEnterprise Managerの基本アラート・スキーマに変換します。


次の例では、これらのファイルのコードについて説明しています。

setup_response.xsl(オプション)

<?xml version='1.0' ?>
<xsl:stylesheet version="1.0"
    xmlns:ns0="http://www.microsoft.com/EnterpriseManagement/Mom/Connector/V2"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:a="http://xmlns.oracle.com/sysman/connector">
        <xsl:template match="/">
          <ns0:registrationId>
                <xsl:value-of select="ns0:SetupWithResolutionStateResponse/ns0:SetupWithResolutionStateResult"/>
           </ns0:registrationId>
        </xsl:template>
</xsl:stylesheet>

getNewAlerts_response.xsl

<?xml version='1.0' ?>
<xsl:stylesheet version="2.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<EMAlerts>
        <xsl:for-each select="getNewAlertsReturn/item">
        <Alert>
                <key1>
                        <xsl:value-of select="id"/>
                </key1>
                <key2>
                        <xsl:value-of select="application"/>
                </key2>
                <key3>
                        <xsl:value-of select="messageGroup"/>
                </key3>
                <key4>
                        <xsl:value-of select="node"/>
                </key4>
                <key5>
                     <xsl:value-of select="serviceName"/>
                </key5>
                <message>
                        <xsl:value-of select="messageText"/>
                </message>
                <producerID>xyz</producerID>
                <targetName>
                        <xsl:value-of select="node"/>
                </targetName>
                <targetType>hp_managed_host</targetType>
                <timeStamp>2006-10-09T09:23:32.6430000-07:00</timeStamp>
                <metricName>
                        <xsl:value-of select="source"/>
                </metricName>
                <category>
                        <xsl:value-of select="messageGroup"/>
                </category>
                <severity>
                        <xsl:variable name="ovoseverity"><xsl:value-of    select="severity"/></xsl:variable>
                        <xsl:variable name="critical">32</xsl:variable>
                        <xsl:variable name="major">128</xsl:variable>
                        <xsl:variable name="warning">16</xsl:variable>
                        <xsl:variable name="minor">64</xsl:variable>
                        <xsl:variable name="normal">8</xsl:variable>
                        <xsl:variable name="unknown">4</xsl:variable>
                        <xsl:variable name="none">0</xsl:variable>
                        <xsl:variable name="emclear">Clear</xsl:variable>
                        <xsl:variable name="emcritical">Critical</xsl:variable>
                        <xsl:variable name="emwarning">Warning</xsl:variable>
                        <xsl:variable name="eminformational">Informational</xsl:variable>
                        <xsl:choose>
                        <xsl:when test="$ovoseverity = $critical">
                        <xsl:value-of select="$emcritical"/>
                        </xsl:when>
                        </xsl:choose>
                        <xsl:choose>
                        <xsl:when test="$ovoseverity = $unknown">
                        <xsl:value-of select="$eminformational"/>
                        </xsl:when>
                        </xsl:choose>
                        <xsl:choose>
                        <xsl:when test="$ovoseverity = $none">
                       <xsl:value-of select="$eminformational"/>
                        </xsl:when>
                        </xsl:choose>
                        <xsl:choose>
                        <xsl:when test="$ovoseverity = $warning">
                        <xsl:value-of select="$emwarning"/>
                        </xsl:when>
                        </xsl:choose>
                        <xsl:choose>
                        <xsl:when test="$ovoseverity = $major">
                        <xsl:value-of select="$emcritical"/>
                        </xsl:when>
                        </xsl:choose>
                        <xsl:choose>
                        <xsl:when test="$ovoseverity = $minor">
                        <xsl:value-of select="$eminformational"/>
                        </xsl:when>
                        </xsl:choose>
                        <xsl:choose>
                        <xsl:when test="$ovoseverity = $normal">
                        <xsl:value-of select="$emclear"/>
                        </xsl:when>
                        </xsl:choose>
                </severity>
                </Alert>
                </xsl:for-each>
        </EMAlerts>
        </xsl:template>
</xsl:stylesheet>

getUpdatedAlerts_response.xsl

<?xml version='1.0' ?>
<xsl:stylesheet version="2.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:a="http://www.microsoft.com/EnterpriseManagement/Mom/Connector/V2">
 <xsl:template match="/">
<EMAlerts>
  <xsl:for-each select="a:GetDataResponse/a:GetDataResult/a:UpdatedAlerts/a:Alert">
   <Alert>
    <key1>
     <xsl:value-of select="a:AlertId"/>
    </key1>
     <key2>
       <xsl:value-of select="a:ComputerName"/>
     </key2>
     <key3>
       <xsl:value-of select="a:ComputerDomain"/>
     </key3>
     <key4>
       <xsl:value-of select="a:Name"/>
     </key4>
     <key5>
       <xsl:value-of select="a:RuleId"/>
     </key5>
   <message>
       <xsl:value-of select="a:Description"/>
   </message>
   <producerID>xyz</producerID>
   <targetName>
    <xsl:value-of select="a:ComputerName"/>
   </targetName>
   <targetType>hp_managed_host</targetType>
   <timeStamp>
    <xsl:value-of select="a:TimeLastModified"/>
   </timeStamp>
   <username></username>
   <password></password>
   <metricName>
        <xsl:value-of select="a:Source"/>
   </metricName>
   <category>
           <xsl:value-of select="a:Source"/>
   </category>
    <value>
          <xsl:value-of select="a:AckId"/>
    </value>
 <severity>
     <xsl:variable name="momseverity" select="a:Severity"/>
     <xsl:variable name="criticalerror">CriticalError</xsl:variable>
     <xsl:variable name="error">Error</xsl:variable>
     <xsl:variable name="warning">Warning</xsl:variable>
     <xsl:variable name="information">Information</xsl:variable>
     <xsl:variable name="securityissue">SecurityIssue</xsl:variable>
     <xsl:variable name="unknown">Unknown</xsl:variable>
     <xsl:variable name="serviceunavailable">ServiceUnavailable</xsl:variable>
     <xsl:variable name="success">Success</xsl:variable>
     <xsl:variable name="emclear">Clear</xsl:variable>
     <xsl:variable name="emcritical">Critical</xsl:variable>
     <xsl:variable name="emwarning">Warning</xsl:variable>
     <xsl:variable name="eminformational">Informational</xsl:variable>
     <xsl:choose>
             <xsl:when test="$momseverity = $criticalerror">
              <xsl:value-of select="$emcritical"/>
             </xsl:when>
     </xsl:choose>
     <xsl:choose>
             <xsl:when test="$momseverity = $unknown">
              <xsl:value-of select="$eminformational"/>
             </xsl:when>
     </xsl:choose>
      <xsl:choose>
             <xsl:when test="$momseverity = $error">
              <xsl:value-of select="$emcritical"/>
             </xsl:when>
     </xsl:choose>
      <xsl:choose>
             <xsl:when test="$momseverity = $securityissue">
              <xsl:value-of select="$emcritical"/>
             </xsl:when>
     </xsl:choose>
     <xsl:choose>
             <xsl:when test="$momseverity = $warning">
              <xsl:value-of select="$emwarning"/>
             </xsl:when>
     </xsl:choose>
     <xsl:choose>
             <xsl:when test="$momseverity = $serviceunavailable">
              <xsl:value-of select="$eminformational"/>
             </xsl:when>
     </xsl:choose>
     <xsl:choose>
             <xsl:when test="$momseverity = $information">
             <xsl:value-of select="$eminformational"/>
             </xsl:when>
     </xsl:choose>
    <xsl:choose>
             <xsl:when test="$momseverity = $success">
              <xsl:value-of select="$emclear"/>
             </xsl:when>
     </xsl:choose>
   </severity>
   </Alert>
  </xsl:for-each>
  </EMAlerts>
 </xsl:template>
</xsl:stylesheet>

ターゲット・タイプ定義XMLファイル

ターゲット・タイプ定義XMLファイルは、取得した外部イベントが格納されるターゲット・タイプを定義します。たとえば、MOMからのアラートの場合、mom_managed_hostです。このファイルは、targetType.xmlという名前にする必要があります。

targetType.xmlファイルの例

<?xml version="1.0" encoding="UTF-8" ?>
<TargetMetadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                TYPE="hp_managed_host" TYPEDISPLAYNAME="OVO Managed Host" >
 <Metrics>
  <Metric>
    <MetricName>
        Response
    </MetricName>
    <Display>Response</Display>
    <Category>Status</Category>
    <ProducerId>xyz</ProducerId>
    <MetricColumns>
     <Column>Status</Column>
    </MetricColumns>
    <!-- No other Metric Columns should be defined for response Metric -->
  </Metric>
          <Metric>
   <MetricName>Generic_Alert</MetricName>
   <Display>Generic_Alert</Display>
   <Category>Generic_Alert</Category>
   <ProducerId>xyz</ProducerId>
   <MetricColumns>
    <Column1>AlertId</Column1>
    <Column2>ComputerName</Column2>
    <Column3>DomainName</Column3>
    <Column4>Source</Column4>
    <Column5>Rule</Column5>
   </MetricColumns>
  </Metric>
 </Metrics>
  <InstanceProperties>
    <InstanceProperty NAME="HOSTNAME" CREDENTIAL="FALSE" OPTIONAL="FALSE">
      <Display>
        <Label>HOSTNAME_DISPLAY</Label>
        <ShortName>HOSTNAME</ShortName>
      </Display>
    </InstanceProperty>
  </InstanceProperties>
</TargetMetadata>

ターゲット・タイプ定義は、コネクタのデプロイ中にロードされます。

汎用ターゲット・インスタンス定義XMLファイル

定義するターゲット・タイプに基づいて、デフォルトのターゲット・インスタンス定義を指定します。ファイルを、defaultTargetInstance.xml.のように名前付けします。ファイルは、コネクタのデプロイ時に読み込まれ、デフォルト・ターゲット・インスタンスが作成されます。

デフォルト・ターゲット・インスタンスを、次のように名前付けします。

generic_target_type_name.

たとえば、MOM Connectorに対して定義されるターゲット・タイプをmom_managed_host、そのデフォルト・ターゲット・インスタンスをgeneric_mom_managed_host.とします。

デフォルトで、デフォルト・ターゲット・インスタンスは、他に特定のターゲット・インスタンスが作成されていない場合、すべての受信アラートを保持します。

ターゲット・タイプがEnterprise Managerにすでに存在している場合、再作成しようとしても、コネクタは再登録されません。したがって、構成の変更は意図したとおりに実行されません。

レスポンス・メトリック収集スクリプト

getResponse操作は、Webサービスにマップされます。コネクタ・フレームワークは、これを使用して、定義済ターゲット・タイプに対するEnterprise Manager内の既存のターゲットのレスポンスを定義します。

表3-4に、メタデータの詳細を示します。必須のメタファイルは、デフォルト・リクエストXMLファイルに記載されている他のメソッドと類似しています。


注意:

レスポンス・メトリック収集スクリプトは、MOM Connectorの作成に適用されません。

表3-4 getResponse操作のメタデータ

説明

getResponse_request.xml

getResponseリクエスト作成用テンプレート。

getResponse_request.xsl

getResponse_request.xmlを変換します。


戻されたステータスは、次のステータス・コードに変換される必要があります。

0: ターゲット停止、1: ターゲット起動

いずれの値も適用されない場合、ターゲット・ステータスには、Pendingが表示されます。

レスポンス・ステータスを決定するために、Enterprise Managerコネクタは、次の形式でgetResponse_request.xmlを送信します。

<?xml version="1.0" encoding="utf-8" ?>
<GetResponseRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Target>
              <Name>SMP-MPI2</Name>
              <InstanceProperty>
                       <Name>host name</Name>
                       <Value>smp-mpi2.us.oracle.com</Value>
              </InstanceProperty>
               <!-- InstanceProperty
                           can repeat multiple times. InstanceProperty are the
                           properties that can identify the managed entity in the
 external system. -->
       </Target>
      <!-- Target element can repeat. -->
      <Attribute>
             <Name>RegistrationId</Name>
             <Value>$REGISTRATION_ID$</Value>
                <!-- one example is RESITRATION_ID,
                        <Name>registrationId</Name><Value>$REGISTRATION_ID$</Value>
                -->      </Attribute> </GetResponseRequest>

この場合、getResponse_request.xslという名前のXSLファイルを定義して、Enterprise Managerで理解できる次のXMLフォーマットでEnterprise Managerにレスポンスを計算して返す必要があります。

<?xml version="1.0" encoding="utf-8" ?>
 <GetResponseReponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Target>
              <Name>SMP-MPI2</Name>
              <Type>hp_managed_node</Type>
              <Status>0<Status>
       </Target> </GetResponseResponse>

前述のレスポンスに基づき、ターゲットのステータスがEnterprise Manager内で更新されます。

コネクタのパッケージおよびデプロイ

コネクタの統合を完了するには、すべてのXMLおよびXSLファイル(「XMLおよびXSLファイルの定義」の項で定義)を.jarファイルとしてパッケージした後、コネクタをデプロイ、登録および構成します。手順は、次のとおりです。

  1. Oracle管理サービス(OMS)に.jarファイルをコピーします。OMSが複数ある場合は、すべてのOMSに対して.jarファイルをコピーする必要があります。

  2. すべてのOMSで次のコマンドを実行します。

    emctl extract_jar connector jar_file_name connector_name

    ファイルは.jarファイルから次のディレクトリに抽出されます。

    $ORACLE_HOME/sysman/connector/connector name_wo_space

    コマンドで、connector_name内のスペースは、connector_name_wo_spaceのアンダースコア(_)に置換されます。

  3. 次のコマンドを実行して、コネクタをデプロイします。

    emctl register_connector connector connectorType.xml server name port databaseSid/Service_Name_for_RAC_DB username password

    表3-5に、emctlパラメータとそれぞれの説明を示します。

    表3-5 emctlパラメータ

    パラメータ 説明

    connectorType.xml

    コネクタ・デプロイメント・ディスクリプタ。

    server

    Enterprise Managerリポジトリのホスト名。

    port

    リポジトリのリスナー・ポート。

    database sid/ Service Name for RAC DB

    リポジトリ・データベース・インスタンスID、またはリポジトリとしてRACデータベースを使用している場合はサービス名。

    username

    SYSMAN.を指定します。

    password

    SYSMAN.のパスワード。


  4. Enterprise Managerコンソールにログインし、次の項で説明するようにイベント・コネクタを構成します。

イベント・コネクタの構成

イベント・コネクタを構成する手順は、次のとおりです。

  1. スーパー管理者として、Enterprise Manager Grid Controlコンソールから「設定」をクリックします。

    「設定の概要」ページが表示されます。

  2. 「管理コネクタ」をクリックします。

    管理コネクタの設定ページが表示されます。このページに、定義したコネクタ名を含む行が表示されます。

  3. 登録したコネクタの「構成」アイコンをクリックします。

    コネクタの構成ページが表示され、「管理コネクタの構成」ページの「一般」タブが表示されます。

  4. アスタリスク(*)で示されるすべての必須フィールドを構成します。

  5. 「OK」をクリックします。

    「管理コネクタの設定」ページが再表示されます。定義したコネクタの行の「構成済」列に、チェックマークが表示されます。

ターゲット・インスタンスの管理

イベント・コネクタのデプロイまたはインストール時に、デフォルト・ターゲット・インスタンスが作成されます。他にターゲットが作成されていない場合、デフォルト・ターゲット・インスタンスは、このイベント・コネクタで取得されたすべての外部イベントを保持します。外部イベントを保持する特定のターゲットを作成することもできます。

追加ターゲット・インスタンスの作成

追加ターゲット・インスタンスを作成するには、次の操作を行います。

  1. Enterprise Managerコンソールから、「設定」をクリックします。

    左マージンに設定リンクが表示されます。

  2. 「管理コネクタ」をクリックします。

    Management Connectorのホームページが表示されます。このページに、定義したコネクタ名を含む行が表示されます。

  3. イベント・コネクタの「構成」アイコンをクリックし、その後「ターゲット」タブをクリックします。

    「ターゲット」ページが表示されます。

  4. 「ターゲット」ページでは、次の操作を実行できます。

    • ターゲットを追加するには、「ターゲット名」および他の必須プロパティを指定し、「OK」をクリックします。

    • 追加したターゲットを削除するには、ターゲットを選択し、「削除」をクリックした後に「OK」をクリックします。

    • (有効でないかまたは削除された)汎用ターゲットを有効化するには、「有効化」をクリックします。

    変換後、Enterprise Managerで定義したターゲット名と一致するターゲット名が受信アラートに含まれている場合、そのアラートはそのターゲットに関連付けられます。そうでない場合、アラートはデフォルト・ターゲット・インスタンスgeneric_target_typeにリダイレクトされます。たとえば、コネクタにmy_managed_deviceというターゲット・タイプが含まれている場合、デフォルト・ターゲット・インスタンスはgeneric_my_managed_deviceとなります。

プロパティの追加

targetType.xmlインスタンス・プロパティを定義して、次の例のように複数のインスタンス・プロパティを追加できます。

<InstanceProperty NAME="HOSTNAME" CREDENTIAL="FALSE" OPTIONAL="FALSE">
   <Display>
    <Label>HOSTNAME</Label>
    <ShortName>HOSTNAME</ShortName>
   </Display>
  </InstanceProperty>

インスタンス・プロパティは、ターゲットを識別する属性である必要があります。たとえば、ホスト名のみでターゲットを一意に識別できる場合、インスタンス・プロパティはhostnameのみとなります。

外部システムへのアラートの送信

Enterprise Manager 10gリリース4以降では、Webサービス・インタフェースを介して、アラートを外部システムへリアルタイムで送信できます。送信するアラートのタイプ(本番データベース上のクリティカル・アラートなど)を選択できます。Enterprise Manager 10gリリース4では、メトリック・アラートがサポートされています。外部システムを強制的に登録して、リアルタイムで情報を取得することもできます。

アラートを送信するには、外部システムで次のものがサポートされている必要があります。

次の項で説明されているように、アラート交換用に作成されたコネクタも変更する必要があります。

デプロイメント・ディスクリプタ・マッピングの指定

次のマッピングが必要です。

  • createEvent

  • updateEvent

デプロイメント・ディスクリプタXMLファイルの例

太字で示されたコードは、createEventおよびupdateEventに対する追加です。

<ManagementConnector xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                     xmlns="http://xmlns.oracle.com/sysman/connector">
  <Name>specify the connector name</Name>
  <Version>specify the 5-digit version, e.g., 1.0.0.0.0</Version>
  <Description>specify a short description</Description>
  <Category>EventConnector</Category>
<!-- Category is fixed to EventConnector. -->
  <EventConnector>
    <!-- If IsNewTargetType is set to true, it means the developers want to define
a new target type to hold external alerts. In that case, targetType.xml and
defaultTargetType.xml need to be shipped in the connector jar. -->
    <IsNewTargetType>true</IsNewTargetType>
    <EventService>
      <Method>getNewAlerts</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
    <EventService>
      <Method>getUpdatedAlerts</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
    <EventService>
<Method>acknowledgeAlerts</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
    <EventService>
      <Method>setup</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
    <EventService>
      <Method>destroy</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
    <EventService>
      <Method>createEvent</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
    <EventService>
      <Method>updateEvent</Method>
      <WebServiceEndpoint>
        <![CDATA[specify the URL]]>
      </WebServiceEndpoint>
      <SOAPAction>specify the SOAP action</SOAPAction>
      <Namespace>specify the namespace</Namespace>
      <NamespacePrefix>specify the namespace prefix</NamespacePrefix>
    </EventService>
   <!-- BaseURL element is for the default UI for event connectors, the following value should not be changed. -->
    <BaseURL>/em/console/connector/event/configuration</BaseURL>
  </EventConnector>
</ManagementConnector>

リクエスト変換の指定

次のリクエスト変換ファイルが必要です。

  • createEvent_request.xsl

  • updateEvent_request.xsl

EMEvent.xsdスキーマを使用して、外部システムへのアラート送信時にマッピングできるようにするEnterprise Managerのフィールドを決定できます。このスキーマは、次のパスにあります。

$ORACLE_HOME/sysman/connector/common/schema/EMEvent.xsd

ファイルおよびスキーマの例は、次のとおりです。

createEvent_request.xsl変換ファイルの例

<?xml version='1.0' ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:ns0="..."
                xmlns:a="http://xmlns.oracle.com/sysman/connector">
      <xsl:template match="a:EMEvent">
        <ns0:InsertAlerts>
           <ns0:registrationId>
              <xsl:for-each select="a:Property">
                  <xsl:if test="a:Name = 'REGISTRATION_ID'">
                     <xsl:value-of select="a:Value"/>
                        </xsl:if>
                        </xsl:for-each>
           </ns0:registrationId>
              <ns0:alerts>
                  <ns0:AlertInsert>
                     <ns0:Name>
                     <xsl:value-of select="a:MetricColumn"/>
                     </ns0:Name>
                     <ns0:ComputerName>
                     <xsl:value-of select="a:TargetHost"/>
                     </ns0:ComputerName>
                     <ns0:ComputerDomain></ns0:ComputerDomain>
                     <ns0:Description>
                         <xsl:value-of select="a:CollectionTime"/>
                                         Received alert reported by Oracle Enterprise Manager:
                                         Target Type: <xsl:value-of select="a:TargetType"/>
                                         Target Name: <xsl:value-of select="a:TargetName"/>
                                         Metric Name: <xsl:value-of select="a:MetricName"/>
                                         Metric Column: <xsl:value-of select="a:MetricColumn"/>
                                         <xsl:choose>
                                         <xsl:when test="a:KeyValues">
                                         Key Values: <xsl:for-each select="a:KeyValues">
                                             <xsl:value-of select="."/>;
                                             </xsl:for-each>
                                         </xsl:when>
                                         </xsl:choose>
                                         Severity: <xsl:value-of select="a:Severity"/>
                                         <xsl:choose>
                                         <xsl:when test="normalize-space(a:NotificationRuleName)
                             != ''">
                                         Notification Rule: <xsl:value-of
                             select="a:NotificationRuleName"/>
                                         </xsl:when>
                                         </xsl:choose>
                                         Message: <xsl:value-of select="a:Message"/>
                     </ns0:Description>
                 <ns0:Severity>
                   <xsl:choose>
                     <xsl:when test="a:SeverityCode = '15'">Success</xsl:when>
                     <xsl:when test="a:SeverityCode = '18'">Information</xsl:when>
                     <xsl:when test="a:SeverityCode = '20'">Warning</xsl:when>
                     <xsl:when test="a:SeverityCode =
                                                  '25'">CriticalError</xsl:when>
                     <xsl:when test="a:SeverityCode = '115'">Success</xsl:when>
                     <xsl:when test="a:SeverityCode = '125'">Warning</xsl:when>
                     <xsl:when test="a:SeverityCode = '215'">Success</xsl:when>
                     <xsl:when test="a:SeverityCode = '225'">Warning</xsl:when>
                     <xsl:when test="a:SeverityCode = '315'">Success</xsl:when>
                     <xsl:when test="a:SeverityCode = '325'">Error</xsl:when>
                     <xsl:otherwise>Error</xsl:otherwise>
                   </xsl:choose>
                 </ns0:Severity>
      <ns0:Source>
                   <xsl:value-of select="a:TargetType"/>: <xsl:value-of select="a:TargetName"/>
              </ns0:Source>
      <ns0:TimeRaised>
      <xsl:value-of select="a:CollectionTime"/>
      </ns0:TimeRaised>
                        </ns0:AlertInsert>
                  </ns0:alerts>
            </ns0:InsertAlerts>
      </xsl:template>
</xsl:stylesheet>

updateEvent_request.xsl変換ファイルの例

<?xml version='1.0' ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:ns0="..."
                xmlns:a="http://xmlns.oracle.com/sysman/connector">
      <xsl:template match="a:EMEvent">
            <ns0:UpdateAlerts>
                  <ns0:registrationId>
                        <xsl:for-each select="a:Property">
                              <xsl:if test="a:Name = 'REGISTRATION_ID'">
                                    <xsl:value-of select="a:Value"/>
                              </xsl:if>
                        </xsl:for-each>
                  </ns0:registrationId>
                  <ns0:updatedAlerts>
                        <ns0:AlertUpdate>
                              <ns0:AlertId>
                                    <xsl:value-of select="a:ExternalEventId"/>
                              </ns0:AlertId>
                              <ns0:OwnerNameUseExisting>true</ns0:OwnerNameUseExisting>
                              <ns0:SeverityUseExisting>false</ns0:SeverityUseExisting>
                              <xsl:variable name="Severity">
           <xsl:choose>
               <xsl:when test="a:SeverityCode = '15'">Success</xsl:when>
               <xsl:when test="a:SeverityCode = '18'">Information</xsl:when>
               <xsl:when test="a:SeverityCode = '20'">Warning</xsl:when>
               <xsl:when test="a:SeverityCode = '25'">CriticalError</xsl:when>
               <xsl:when test="a:SeverityCode = '115'">Success</xsl:when>
               <xsl:when test="a:SeverityCode = '125'">Warning</xsl:when>
               <xsl:when test="a:SeverityCode = '215'">Success</xsl:when>
               <xsl:when test="a:SeverityCode = '225'">Warning</xsl:when>
               <xsl:when test="a:SeverityCode = '315'">Success</xsl:when>
               <xsl:when test="a:SeverityCode = '325'">Error</xsl:when>
               <xsl:otherwise>Error</xsl:otherwise>
           </xsl:choose>
                              </xsl:variable>
      <ns0:Severity>
          <xsl:value-of select="$Severity"/>
      </ns0:Severity>
      <xsl:choose>
          <xsl:when test="a:SeverityCode = '15'">
                                          <ns0:ResolutionStateUseExisting>false</ns0:ResolutionStateUseExisting>
    <ns0:ResolutionState>255</ns0:ResolutionState>
    </xsl:when>
    <xsl:otherwise>
                                          <ns0:ResolutionStateUseExisting>true</ns0:ResolutionStateUseExisting>
                                                 <ns0:ResolutionState>0</ns0:ResolutionState>
    </xsl:otherwise>
    </xsl:choose>
                              <ns0:LastModifiedByUseExisting>true</ns0:LastModifiedByUseExisting>
                        </ns0:AlertUpdate>
                  </ns0:updatedAlerts>
            </ns0:UpdateAlerts>
      </xsl:template>
</xsl:stylesheet>

EMEvent.xsdスキーマ

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns="http://xmlns.oracle.com/sysman/connector"
            targetNamespace="http://xmlns.oracle.com/sysman/connector"
            elementFormDefault="qualified">
     <xsd:element name="EMEvent" type="EMEventType"/>
     <xsd:complexType name="EMEventType">
          <xsd:sequence>
               <xsd:element name="EventGuid" type="xsd:string" minOccurs="1"
                            maxOccurs="1"/>
               <xsd:element name="ExternalEventId" type="xsd:string" minOccurs="0"
                            maxOccurs="1"/>
               <xsd:element name="ViolationId" type="xsd:string" minOccurs="1"
                            maxOccurs="1"/>
               <xsd:element name="TargetType" type="xsd:string" minOccurs="1"
                            maxOccurs="1"/>
               <xsd:element name="TargetName" type="xsd:string" minOccurs="1"
                            maxOccurs="1"/>
               <xsd:element name="MetricName" type="xsd:string" minOccurs="1"
                            maxOccurs="1"/>
               <xsd:element name="MetricColumn" type="xsd:string" minOccurs="1"
                            maxOccurs="1"/>
               <xsd:element name="KeyValues" type="xsd:string" minOccurs="0"
                            maxOccurs="unbounded"/>
               <xsd:element name="Message" type="xsd:string" minOccurs="1"
                            maxOccurs="1" nillable="true"/>
               <xsd:element name="Severity" type="SeverityType" minOccurs="1"
                            maxOccurs="1"/>
               <xsd:element name="SeverityCode" type="SeverityCodeType"
                            minOccurs="1" maxOccurs="1"/>
               <xsd:element name="CollectionTime" type="xsd:dateTime"
                            minOccurs="1" maxOccurs="1"/>
               <xsd:element name="EMUser" type="xsd:string" minOccurs="1"
                            maxOccurs="1"/>
               <xsd:element name="NotificationRuleName" type="xsd:string"
                            minOccurs="0" maxOccurs="1"/>
               <xsd:element name="TargetHost" type="xsd:string" minOccurs="1"
                            maxOccurs="1"/>
               <xsd:element name="TargetTimezone" type="xsd:string"
                            minOccurs="1" maxOccurs="1"/>
               <xsd:element name="Property" type="PropertyType" minOccurs="0"
                            maxOccurs="unbounded"/>
          </xsd:sequence>
     </xsd:complexType>
     <xsd:complexType name="PropertyType">
          <xsd:sequence>
               <xsd:element name="Name" type="xsd:string"/>
               <xsd:element name="Value" type="xsd:string" nillable="true"/>
          </xsd:sequence>
     </xsd:complexType>
     <xsd:simpleType name="SeverityType">
          <xsd:restriction base="xsd:string">
               <xsd:enumeration value="Clear"/>
               <xsd:enumeration value="Info"/>
               <xsd:enumeration value="Warning"/>
               <xsd:enumeration value="Critical"/>
               <xsd:enumeration value="Agent Unreachable Clear"/>
               <xsd:enumeration value="Blackout End"/>
               <xsd:enumeration value="Blackout Start"/>
               <xsd:enumeration value="Metric Error End"/>
               <xsd:enumeration value="Metric Error Start"/>
               <xsd:enumeration value="Unknown"/>
          </xsd:restriction>
     </xsd:simpleType>
     <xsd:simpleType name="SeverityCodeType">
          <xsd:restriction base="xsd:string">
               <xsd:enumeration value="15"/>
               <xsd:enumeration value="18"/>
               <xsd:enumeration value="20"/>
               <xsd:enumeration value="25"/>
               <xsd:enumeration value="115"/>
               <xsd:enumeration value="125"/>
               <xsd:enumeration value="215"/>
               <xsd:enumeration value="225"/>
               <xsd:enumeration value="315"/>
               <xsd:enumeration value="325"/>
          </xsd:restriction>
     </xsd:simpleType>
</xsd:schema>

レスポンス変換の指定

次のレスポンス変換ファイルが必要です。

  • createEvent_response.xsl

  • updateEvent_response.xsl

EMEventResponse.xsdスキーマを使用して、外部システムからのレスポンスをEnterprise Managerで期待されるレスポンスに変換する方法を決定できます。このスキーマは、次のパスにあります。

$ORACLE_HOME/sysman/connector/common/schema/EMEventResponse.xsd

変換後、Enterprise Managerでは<SuccessFlag>と、値に応じて次のいずれかの要素が必要とされます。

  • true: Enterprise Managerでは、外部システムのアラートのID、<externalEventID>が必要とされます。これは、将来アラートを更新する際に使用されます。

  • false: Enterprise Managerでは、<ErrorMessage>が必要とされます。Enterprise Managerにより、アラートにexternalEventIDまたはErrorMessageの注釈が付けられます。

ファイルおよびスキーマの例は、次のとおりです。

createEvent_response.xslレスポンス変換ファイルの例

<?xml version='1.0' ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:ns0="..."
                xmlns:a="http://xmlns.oracle.com/sysman/connector">
 <xsl:template match="ns0:InsertAlertsResult">
  <a:EMEventResponse>
   <xsl:choose>
    <xsl:when test="ns0:InsertedAlerts/ns0:SuccessfulAlertInsert/ns0:NewAlertId">
     <a:SuccessFlag>true</a:SuccessFlag>
     <a:ExternalEventId>
      <xsl:value-of select="ns0:InsertedAlerts/ns0:SuccessfulAlertInsert/ns0:NewAlertId"/>
     </a:ExternalEventId>
    </xsl:when>
    <xsl:otherwise>
     <a:SuccessFlag>false</a:SuccessFlag>
     <a:ErrorMessage>
      <xsl:value-of select="ns0:FailedAlerts/ns0:FailedAlertInsert/ns0:Error"/>
     </a:ErrorMessage>
    </xsl:otherwise>
   </xsl:choose>
  </a:EMEventResponse>
 </xsl:template>
</xsl:stylesheet>

updateEvent_response.xslレスポンス変換ファイルの例

<?xml version='1.0' ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:ns0="..."
                xmlns:a="http://xmlns.oracle.com/sysman/connector">
 <xsl:template match="ns0:UpdateAlertsResult">
  <a:EMEventResponse>
   <xsl:choose>
    <xsl:when test="ns0:UpdatedAlerts/ns0:guid">
     <a:SuccessFlag>true</a:SuccessFlag>
     <a:ExternalEventId>
      <xsl:value-of select="ns0:UpdatedAlerts/ns0:guid"/>
     </a:ExternalEventId>
    </xsl:when>
    <xsl:otherwise>
     <a:SuccessFlag>false</a:SuccessFlag>
     <a:ErrorMessage>
      <xsl:value-of select="ns0:FailedUpdatedAlerts/ns0:FailedAlertUpdate/ns0:Error"/>
     </a:ErrorMessage>
    </xsl:otherwise>
   </xsl:choose>
  </a:EMEventResponse>
 </xsl:template>
</xsl:stylesheet>

EMEventResponse.xsdスキーマ

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns="http://xmlns.oracle.com/sysman/connector"
            targetNamespace="http://xmlns.oracle.com/sysman/connector"
            elementFormDefault="qualified">
     <xsd:element name="EMEventResponse">
          <xsd:complexType>
               <xsd:sequence>
                    <xsd:element name="SuccessFlag" type="xsd:boolean"
                                 minOccurs="1" maxOccurs="1"/>
                    <xsd:choice>
                         <xsd:element name="ExternalEventId" type="xsd:string"
                                      minOccurs="1" maxOccurs="1"/>
                         <xsd:element name="ErrorMessage" type="xsd:string"
                                      minOccurs="1" maxOccurs="1"/>
                    </xsd:choice>
               </xsd:sequence>
          </xsd:complexType>
     </xsd:element>
</xsd:schema>

Enterprise Managerにおけるメトリックの定義

この項では、Enterprise Managerでメトリックを定義および管理する方法について説明します。

targetType.xmlファイル内で、新しいターゲット・タイプに対して、2つ以上のメトリックを定義します。2つの必須メトリックは次のとおりです。

次に例を示します。

<Metrics>
  <Metric>
    <MetricName>Response</MetricName>
    <Display>Response</Display>
    <Category>Status</Category>
    <ProducerId>MySystem</ProducerId>
    <MetricColumns>
     <Column>Status</Column>
    </MetricColumns>
    <!-- No other Metric Columns should be defined for response Metric -->
  </Metric>  <Metric>
   <MetricName>Generic_Alert</MetricName>
   <Display>Generic_Alert</Display>
   <Category>Generic_Alert</Category>
   <ProducerId>MySystem</ProducerId>
   <MetricColumns>
    <Column1>AlertId</Column1>
   </MetricColumns>
  </Metric></Metrics>

外部アラートが取得されている場合、それらはメトリック(レスポンスXSLT内の<MetricName/>要素)にマップされます。メトリックがすでに定義済の場合、アラートはそれらに関連付けられます。定義済でない場合、Generic_Alertと同じ構造を持つが名前は異なるGeneric_Alertをテンプレートとして使用して、即時に新規メトリックが作成されます。

最大50のメトリックが即時に作成されます。それを超えると、(既存のメトリックに関連付けできない)アラートが、Generic_Alertに関連付けられます。

次の例に示すように、最大5つまでのキー・フィールドを指定できます。1つのキー・フィールド(Alert IDと同等)は、必須です。Column 1は、アラートの一意性を識別します。他のColumnはオプションです。

<Column1>AlertId</Column1>

<Column2>Ackid</Column2> <Column3>customfield1</Column3> <Column4>ruleid</Column4> <Column5>description</Column5>

定義したキー・フィールドがgetNewAlerts_response.xslであり、getUpdatedAlerts_response.xslに適切な値が書き込まれていることを確認してください。

例:

  <key1>     <xsl:value-of select="a:AlertId"/>    </key1>
  <key2>
     <xsl:value-of select="a:AckId"/>
    </key1>
  <key3>
     <xsl:value-of select="a:customfield1"/>
    </key3>
  <key4>     <xsl:value-of select="a:ruleId"/>    </key4>
  <key5>     <xsl:value-of select="a:description"/>    </key5>

Generic_Alertメトリックに定義したキー・フィールドのみ定義します。たとえば、Generic_Alertに対して1つのキー・フィールドのみ定義している場合、<key1/>要素のみ変換が必要となります。XSLT内に追加の値を追加している場合、それらはアラート処理中に削除されます。

フィールドが宣言済であり、割当済の値がない場合、アラートは拒否され、ログ・ファイルにログされます。つまり、アラートは不適切な状態として処理されます。たとえば、AlertIdが定義されていて、それがアラートに対する一意の識別子であると仮定します。この場合、値が送信されない場合には、アラートは無効な状態であるとみなされ、その結果、拒否されます。

HTTPSへのSSL接続の有効化

外部イベント・システムとEnterprise Manager間の接続を確立するプロトコルとしてHTTPSを選択している場合は、この項で説明している手順に従ってください。

証明書リクエスト・ファイルの作成

外部イベント・システムに対する証明書リクエスト・ファイルを作成し、たとえばVeriSignなどの認証局に送信します。


注意:

証明書リクエスト・ファイルは、外部イベント・システムで使用されるWebサーバーに依存します。

認証局からの証明書のインポート

証明書の取得後、外部イベント・システムで使用されているWebサーバーにインポートします。インポート・メカニズムは、外部イベント・システムで使用されているWebサーバーによって異なります。

Wallet Managerへの署名済証明書の追加


注意:

Oracle Wallet Managerは、OMS上の$ORACLE_HOME/binで参照できます。詳細は、『Oracle Application Server管理者ガイド』を参照してください。

  1. スーパー管理者として、次のコマンドとともにorapki utilityを使用して、ウォレットを作成します。

    orapki wallet create -wallet client -auto_login


    注意:

    orapkiは、OMS上の$ORACLE_HOME/binで参照できます。

  2. 次のコマンドを使用して、信頼できる証明書をウォレットに追加します。

    orapki wallet add -wallet client -trusted_cert -cert verisignCert.cer

  3. ウォレットのコンテンツを表示するには、次のコマンドを実行します。

    orapki wallet display -wallet client

    ewallet.p12という名前のファイルが有効であることを確認します。

  4. Oracle Wallet Managerで、クライアント証明書ewallet.p12を開きます。

  5. 信頼できる証明書の選択へ進み、メイン・メニューで「操作」を選択します。

  6. 「すべての信頼できる証明書のエクスポート」を選択します。

  7. ファイルをcertdb.txtという名前で保存します。

  8. certdb.txtを、コネクタのホーム・ルート・ディレクトリ($OMS_HOME/sysman/connector)に配置します。

    コネクタのホーム・ルート・ディレクトリにすでにcertdb.txtが存在する場合は、このファイルを開き、作成したcertdb.txtファイルのコンテンツを既存のコンテンツに追加します。

これで、Java SSLでこのファイルを使用し、情報を取得できるようになります。


関連項目:

ウォレットの作成の詳細は、『Oracle Database Advanced Security管理者ガイド』の、orapkiを使用したOracleウォレットの作成および表示に関する項を参照してください。