ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Event Processing開発者ガイド
11gリリース1 (11.1.1.7) for Eclipse
B61654-06
  目次へ移動
目次

前
 
次
 

18 データ・カートリッジを使用したアプリケーションの構成

この章では、Oracle Event Processingで使用するために、Oracle Continuous Query Language (CQL)を拡張するOracle JDBCカートリッジおよびOracle Spatialカートリッジを構成する方法について説明します。

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

データ・カートリッジの詳細は、『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のデータ・カートリッジの概要に関する項を参照してください。

18.1 データ・カートリッジ・アプリケーション・コンテキストについて

データ・カートリッジの実装によって、Oracle Event Processingサーバーがデータ・カートリッジのインスタンスとインスタンスによって提供される複合オブジェクトに伝播するアプリケーション・コンテキストを定義できます。

次のデータ・カートリッジに対してアプリケーション・コンテキストを構成できます。

データ・カートリッジの詳細は、『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のデータ・カートリッジの概要に関する項を参照してください。

18.2 Oracle Spatialアプリケーション・コンテキストの構成方法

Oracle Event Processingアプリケーションのイベント処理ネットワーク(EPN)アセンブリ・ファイルにあるspatial:context要素を使用して、Oracle Spatialのインスタンスのアプリケーション・コンテキストを定義します。

com.oracle.cartridge.spatial.GeometryからのすべてのコンストラクタとメソッドおよびOracle Spatial機能は、spatial:contextを認識します。たとえば、SRIDがOracle Spatialアプリケーション・コンテキストの値から自動的に設定されます。

詳細は、次を参照してください:

Oracle Spatialアプリケーション・コンテキストを構成する手順:

  1. Oracle Event Processing IDE for EclipseのEPNエディタを開きます。

    7.1項「EPNエディタを開く」を参照してください。

  2. パッケージcom.oracle.cep.cartridge.spatialをOracle Event ProcessingアプリケーションのMANIFEST.MFファイルにインポートします。

    詳細は、5.7.5項「パッケージのインポート方法」を参照してください。

  3. いずれかのコンポーネントを右クリックし、「アセンブリのソースに移動」を選択します。

  4. EPNファイルを編集し、例18-1に示すとおり、必須ネームスペースとスキーマの場所のエントリを追加します。

    例18-1 EPNアセンブリ・ファイル: Oracle Spatialネームスペースおよびスキーマの場所

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:osgi="http://www.springframework.org/schema/osgi"
           xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
           xmlns:spatial="http://www.oracle.com/ns/ocep/spatial"
           xsi:schemaLocation="
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/osgi
      http://www.springframework.org/schema/osgi/spring-osgi.xsd
      http://www.bea.com/ns/wlevs/spring
      http://www.bea.com/ns/wlevs/spring/spring-wlevs-v11_1_1_6.xsd"
      http://www.oracle.com/ns/ocep/spatial
      http://www.oracle.com/ns/ocep/spatial/ocep-spatial.xsd">
    
  5. 例18-1に示すように、EPNファイルを編集してspatial:context要素を追加します。

    例18-2 EPNアセンブリ・ファイル内のspatial:context要素

    <spatial:context id="SpatialGRS80" />
    
  6. このEPN内で一意の値をid属性に割り当てます。

    これは、以降のOracle CQL問合せで、このアプリケーション・コンテキストを参照するときに使用される名前です。例18-2で、idSpatialGRS80です。


    注意:

    id値は、Oracle Spatial名のspatialと異なる必要がります。詳細は、『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のデータ・カートリッジ名に関する項を参照してください。


  7. アプリケーション要件に応じて、spatial:context要素の他の属性を構成します。

    表18-1spatial:context要素の属性を示します。

    表18-1 spatial:context要素の属性

    属性 説明

    anyinteract-tolerance

    containまたはinside演算子のデフォルトの許容度。

    デフォルト: 0.0000005

    rof

    バッファリングとプロジェクト化に使用するReciprocal Of Flattening (ROF)パラメータを定義します。

    デフォルト: 298.257223563

    sma

    バッファリングとプロジェクト化に使用するSemi-Major Axis (SMA)パラメータを定義します。

    デフォルト: 6378137.0

    srid

    SRID整数。有効な値:

    • CARTESIAN: 直交座標系の場合。

    • LAT_LNG_WGS84_SRID: WGS84座標系の場合。

    • Oracle Spatial SDO_COORD_SYS表のCOORD_SYS_ID列の整数値。

    デフォルト: LAT_LNG_WGS84_SRID

    tolerance

    バッファリングなどの幾何演算で無視される最短距離。

    デフォルト: 0.000000001


    例18-3は、測地基準系1980 (GRS80)座標系(srid="4269")を使用してEPNアセンブリ・ファイルでSpatialGRS80という名前の空間コンテキストを作成する方法を示します。

    例18-3 EPNアセンブリ・ファイル内のspatial:context要素

    <spatial:context id="SpatialGRS80" srid="4269" sma="63787.0" rof="298.25722101" />
    
  8. 名前によってこのアプリケーション・コンテキストを参照するOracle CQL問合せを作成します。

    例18-4は、Oracle CQL問合せでspatial:contextを参照する方法を示します。この場合、問合せはSpatialGRS80 (例18-2で定義されます)のリンク名を使用してこのアプリケーション・コンテキストをOracle Spatialに伝播します。SpatialGRS80spatial:context属性設定は、createPointメソッド・コールに適用されます。アプリケーション・コンテキストはSRIDを定義するため、createPointメソッドにその引数を渡す必要はありません。

    例18-4 Oracle CQL問合せでspatial:contextの参照

    <view  id=”createPoint”>
        select com.oracle.cep.cartridge.spatial.Geometry.createPoint@SpatialGRS80(lng, lat, 0d)
        from CustomerPos[NOW]
    </view>
    

    詳細は、『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のOracle Spatialの使用に関する項を参照してください。

18.3 Oracle JDBCデータ・カートリッジ・アプリケーション・コンテキストの構成方法

次を使用して、Oracle JDBCデータ・カートリッジのインスタンスのアプリケーション・コンテキストを定義します。


注意:

SQL関数のすべてのSELECTリスト列に対して、別名を指定する必要があります。


詳細は、『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のOracle JDBCデータ・カートリッジに関する項を参照してください。

Oracle JDBCデータ・カートリッジ・アプリケーション・コンテキストを構成する手順:

  1. Oracle Event Processing IDE for EclipseのEPNエディタを開きます。

    7.1項「EPNエディタを開く」を参照してください。

  2. いずれかのコンポーネントを右クリックし、「アセンブリのソースに移動」を選択します。

  3. EPNファイルを編集し、例18-5に示すとおり、必須ネームスペースとスキーマの場所のエントリを追加します。

    例18-5 EPNアセンブリ・ファイル: Oracle JDBCデータ・カートリッジ・ネームスペースおよびスキーマの場所

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:osgi="http://www.springframework.org/schema/osgi"
           xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
           xmlns:jdbc="http://www.oracle.com/ns/ocep/jdbc"
           xsi:schemaLocation="
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/osgi
      http://www.springframework.org/schema/osgi/spring-osgi.xsd
      http://www.bea.com/ns/wlevs/spring
      http://www.bea.com/ns/wlevs/spring/spring-wlevs-v11_1_1_6.xsd"
      http://www.oracle.com/ns/ocep/jdbc
      http://www.oracle.com/ns/ocep/jdbc/ocep-jdbc.xsd">
    
  4. 例18-6に示すように、EPNファイルを編集してjdbc:jdbc-context要素を追加します。

    例18-6 EPNアセンブリ・ファイル内のjdbc:jdbc-context要素: id

    <jdbc:jdbc-context id="JdbcCartridgeOne"/>
    
  5. このEPN内で一意の値をid属性に割り当てます。

    これは、以降のOracle CQL問合せで、このアプリケーション・コンテキストを参照するときに使用される名前です。例18-6で、idJdbcCartridgeOneです。


    注意:

    id値は、Oracle JDBCデータ・カートリッジ名のjdbcと異なる必要があります。詳細は、『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のデータ・カートリッジ名に関する項を参照してください。


  6. 必要なプロセッサを右クリックし、「構成のソースに移動」を選択します。

  7. 例18-7に示すように、コンポーネント構成ファイルを編集して必須ネームスペースのエントリを追加します。

    例18-7 コンポーネント構成ファイル: Oracle JDBCデータ・カートリッジ・ネームスペース

    <?xml version="1.0" encoding="UTF-8"?>
    <wlevs:config
        xmlns:wlevs="http://www.bea.com/ns/wlevs/config/application"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:jc="http://www.oracle.com/ns/ocep/config/jdbc
        xsi:schemaLocation="
            http://www.oracle.com/ns/ocep/config/jdbc
            http://www.oracle.com/ns/ocep/config/jdbc/ocep_jdbc_context.xsd">
    
  8. 例18-8に示すように、コンポーネント構成ファイルを編集してjc:jdbc-ctx要素を追加します。

    例18-8 コンポーネント構成ファイル内のjc:jdbc-ctx要素

    <jc:jdbc-ctx>
    </jc:jdbc-ctx>
    
  9. 例18-9に示すように、値がEPNアセンブリ・ファイルに定義したOracle JDBCアプリケーション・コンテキストの名前となるname子要素を追加します。

    例18-9 コンポーネント構成ファイル内のjc:jdbc-ctx要素: name

    <jc:jdbc-ctx>
        <name>JdbcCartridgeOne</name>
    </jc:jdbc-ctx>
    
  10. 値がracle Event Processingサーバーのconfig.xmlファイルで定義されているデータソース名となる、data-source子要素を追加します。

    詳細は、次を参照してください:

    • 『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のOracle CEPのJDBCの構成に関する項

    • F.10項「data-source」

    例18-10は、StockDSというデータソースを指定する方法を示します。

    例18-10 コンポーネント構成ファイル内のjc:jdbc-ctx要素: data-source

    <jc:jdbc-ctx>
        <name>JdbcCartridgeOne</name> 
        <data-source>StockDS</data-source>
    </jc:jdbc-ctx>
    
  11. 例18-11に示すように、function子要素を使用して1つ以上のSQL関数を作成します。

    例18-11 コンポーネント構成ファイル内のjc:jdbc-ctx要素: function

    <jc:jdbc-ctx>
        <name>JdbcCartridgeOne</name> 
        <data-source>StockDS</data-source>
        <function name="getDetailsByOrderIdName">
            <param name="inpOrderId" type="int" />
            <param name="inpName" type="char" />
            <return-component-type>
                com.oracle.cep.example.jdbc_cartridge.RetEvent
            </return-component-type>
            <sql><![CDATA[
                SELECT
                    Employee.empName as employeeName,
                    Employee.empEmail as employeeEmail,
                    OrderDetails.description as description
                FROM
                     PlacedOrders, OrderDetails , Employee
                WHERE
                    PlacedOrders.empId = Employee.empId AND
                    PlacedOrders.orderId = OrderDetails.orderId AND
                    Employee.empName = :inpName AND
                    PlacedOrders.orderId = :inpOrderId
            ]]></sql>
        </function>
    </jc:jdbc-ctx>
    

    注意:

    SQL問合せのすべてのSELECTリスト列に対して、別名を指定する必要があります。


    詳細は、『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のSQL文の定義に関する項を参照してください。

  12. Oracle JDBCデータ・カートリッジ・アプリケーション・コンテキストを使用して、SQL関数を起動するOracle CQL問合せを作成します。

    例18-12は、Oracle CQL問合せでjdbc:jdbc-contextを参照する方法を示します。この場合、問合せはJdbcCartridgeOne (例18-11で定義)のリンク名を使用してこのアプリケーション・コンテキストをOracle JDBCデータ・カートリッジに伝播します。例18-12のOracle CQL問合せはOracle JDBCデータ・カートリッジ・コンテキストJdbcCartridgeOneで定義した関数getDetailsByOrderIdNameを起動します。

    例18-12 Oracle CQL問合せでのJDBCアプリケーション・コンテキストの参照

    <processor>
            <name>Proc</name>
            <rules>
                <query id="q1"><![CDATA[
                    RStream(
                       select
                         currentOrder.orderId,
                         details.orderInfo.employeeName,
                         details.orderInfo.employeeemail,
                         details.orderInfo.description
                       from
                         OrderArrival[now] as currentOrder,
                         TABLE(getDetailsByOrderIdName@JdbcCartridgeOne(
                                   currentOrder.orderId, currentOrder.empName
                               ) as orderInfo
                         ) as details
                    )
                ]]></query>
            </rules>
    </processor>
    

    詳細は、『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のOracle JDBCデータ・カートリッジを使用したOracle CQL問合せの定義に関する項を参照してください。