この節では、次の項目について説明します。
EPNアセンブリ・ファイルを使用して、Oracle CEPアプリケーションを構成するコンポーネントおよび各コンポーネントが互いに接続する方法、つまりイベント処理ネットワークを宣言します。EPNアセンブリ・ファイルは、標準のSpringコンテキスト・ファイルの拡張です。また、このファイルを使用して、アプリケーションのアダプタ・コンポーネントおよびPOJOコンポーネントを実装するJavaクラスを登録し、アプリケーションおよびEPLルール全体で使用するイベント・タイプを登録して、環境内でOracle CEP固有サービスを参照します。
spring-wlevs-v11_1_1_3.xsd
ファイルはEPNアセンブリ・ファイルの構造を説明します。
このスキーマ・ファイルはORACLE_CEP_HOME
\ocep_11.1\xsd
ディレクトリにあります。ORACLE_CEP_HOME
はd:\oracle_cep
などのOracle CEPメイン・インストール・ディレクトリです。
詳細は、付録C「スキーマ参照: EPNアセンブリspring-wlevs-v11_1_1_3.xsd」を参照してください。
次のXMLファイルは、HelloWorldのサンプルのEPNアセンブリ・ファイルを示しています。
<?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" 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_3.xsd"> <wlevs:event-type-repository> <wlevs:event-type type-name="HelloWorldEvent"> <wlevs:class>com.bea.wlevs.event.example.helloworld.HelloWorldEvent</wlevs:class> </wlevs:event-type> </wlevs:event-type-repository> <!-- Adapter can be created from a local class, without having to go through a adapter factory --> <wlevs:adapter id="helloworldAdapter" class="com.bea.wlevs.adapter.example.helloworld.HelloWorldAdapter" > <wlevs:instance-property name="message" value="HelloWorld - the current time is:"/> </wlevs:adapter> <wlevs:channel id="helloworldInputChannel" event-type="HelloWorldEvent" > <wlevs:listener ref="helloworldProcessor"/> <wlevs:source ref="helloworldAdapter"/> </wlevs:channel> <!-- The default processor for Oracle CEP 11.0.0.0 is CQL --> <wlevs:processor id="helloworldProcessor" /> <wlevs:channel id="helloworldOutputChannel" event-type="HelloWorldEvent" advertise="true"> <wlevs:listener> <bean class="com.bea.wlevs.example.helloworld.HelloWorldBean"/> </wlevs:listener> <wlevs:source ref="helloworldProcessor"/> </wlevs:channel> </beans>
Oracle CEPアプリケーションには、1つ以上のコンポーネント構成ファイルがMETA-INF/wlevs
ディレクトリが含まれています。コンポーネント構成ファイルを使用して、アダプタ、チャネル、プロセッサなどのOracle CEPコンポーネントのデフォルト構成をオーバーライドします。
wlevs_application_config.xsd
スキーマ・ファイルでは、コンポーネント構成ファイルの構造について説明しています。このXSDスキーマでは、次のスキーマがインポートされます。
wlevs_base_config.xsd
wlevs_eventstore_config.xsd
wlevs_diagnostic_config.xsd
このスキーマ・ファイルはORACLE_CEP_HOME
\ocep_11.1\xsd
ディレクトリにあります。ORACLE_CEP_HOME
はd:\oracle_cep
などのOracle CEPメイン・インストール・ディレクトリです。
詳細は、付録D「スキーマの参照: コンポーネント構成wlevs_application_config.xsd」を参照してください。
次の例は、HelloWorld
サンプル・アプリケーションのコンポーネント構成ファイルを示しています。
<?xml version="1.0" encoding="UTF-8"?><n1:config xmlns:n1="http://www.bea.com/ns/wlevs/config/application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <processor> <name>helloworldProcessor</name> <rules> <query id="helloworldRule"> <![CDATA[ select * from helloworldInputChannel [Now] ]]> </query> </rules> </processor> <channel> <name>helloworldInputChannel</name> <max-size>10000</max-size> <max-threads>2</max-threads> </channel> <channel> <name>helloworldOutputChannel</name> <max-size>10000</max-size> <max-threads>2</max-threads> </channel> </n1:config>
Oracle CEPインスタンスのデプロイメント・ファイルはdeployments.xml
という名前であり、DOMAIN_DIR/servername
ディレクトリにあります。DOMAIN_DIR
はメイン・ドメイン・ディレクトリを指し、servername
はサーバー・インスタンスの名前を指します。このXMLファイルには、サーバーにデプロイされたOSGiバンドルが記載されています。
deployment.xsd
スキーマ・ファイルはデプロイメント・ファイルの構造を説明します。
このスキーマ・ファイルはORACLE_CEP_HOME
\ocep_11.1\xsd
ディレクトリにあります。ORACLE_CEP_HOME
はd:\oracle_cep
などのOracle CEPメイン・インストール・ディレクトリです。
詳細は、付録E「スキーマの参照: デプロイメントdeployment.xsd」を参照してください。
次の例は、サンプルFXドメインのdeployments.xml
ファイルを示しています。
<?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:wlevs="http://www.bea.com/ns/wlevs/deployment" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.bea.com/ns/wlevs/deployment http://www.bea.com/ns/wlevs/deployment/deployment.xsd"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/> </bean> <wlevs:deployment id="fx" state="start" location="file:${wlevs.domain.home}/applications/fx/com.bea.wlevs.example.fx_11.1.0.0.jar"/> </beans>
Oracle CEPサーバー構成ファイルであるconfig.xml
は、DOMAIN_DIR
/
servername
/config
ディレクトリにあります。 DOMAIN_DIR
はメイン・ドメイン・ディレクトリを指し、servername
は特定のサーバー・インスタンスを指します。Oracle CEPインスタンスの構成を変更する場合は、このファイルを手動で更新し、サーバー構成要素を追加または削除できます。
welvs_server_config.xsd
スキーマ・ファイルはサーバー構成ファイルの構造を説明します。
このスキーマ・ファイルはORACLE_CEP_HOME
\ocep_11.1\xsd
ディレクトリにあります。ORACLE_CEP_HOME
はd:\oracle_cep
などのOracle CEPメイン・インストール・ディレクトリです。
詳細は、付録F「スキーマ参照: サーバー構成wlevs_server_config.xsd」を参照してください。
次に示すサンプルのconfig.xml
は、ORACLE_CEP_HOME
/user_projects/domains/ocep_domain/defaultserver
テンプレート・ドメインに属し、これらのいくつかのサービスを構成する方法を示しています。
<?xml version="1.0" encoding="UTF-8"?> <n1:config xsi:schemaLocation=" http://www.bea.com/ns/wlevs/config/server wlevs_server_config.xsd" xmlns:n1="http://www.bea.com/ns/wlevs/config/server" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <netio> <name>NetIO</name> <port>9002</port> </netio> <netio> <name>sslNetIo</name> <ssl-config-bean-name>sslConfig</ssl-config-bean-name> <port>9003</port> </netio> <work-manager> <name>JettyWorkManager</name> <min-threads-constraint>5</min-threads-constraint> <max-threads-constraint>10</max-threads-constraint> </work-manager> <jetty> <name>JettyServer</name> <network-io-name>NetIO</network-io-name> <work-manager-name>JettyWorkManager</work-manager-name> <secure-network-io-name>sslNetIo</secure-network-io-name> </jetty> <rmi> <name>RMI</name> <http-service-name>JettyServer</http-service-name> </rmi> <jndi-context> <name>JNDI</name> </jndi-context> <exported-jndi-context> <name>exportedJndi</name> <rmi-service-name>RMI</rmi-service-name> </exported-jndi-context> <jmx> <rmi-service-name>RMI</rmi-service-name> <jndi-service-name>JNDI</jndi-service-name> </jmx> <ssl> <name>sslConfig</name> <key-store>./ssl/dsidentity.jks</key-store> <key-store-pass> <password>changeit</password> </key-store-pass> <key-store-alias>ds</key-store-alias> <key-manager-algorithm>SunX509</key-manager-algorithm> <ssl-protocol>TLS</ssl-protocol> <enforce-fips>false</enforce-fips> <need-client-auth>false</need-client-auth> </ssl> <http-pubsub> <name>pubsub</name> <path>/pubsub</path> <pub-sub-bean> <server-config> <name>pubsubbean</name> <supported-transport> <types> <element>long-polling</element> </types> </supported-transport> <publish-without-connect-allowed>true</publish-without-connect-allowed> </server-config> <channels> <element> <channel-pattern>/evsmonitor</channel-pattern> </element> <element> <channel-pattern>/evsalert</channel-pattern> </element> <element> <channel-pattern>/evsdomainchange</channel-pattern> </element> </channels> </pub-sub-bean> </http-pubsub> </n1:config>