Oracle® Fusion Middleware

Oracle Enterprise Data Qualityの管理

12c (12.1.3)

E59395-01(原本部品番号:E51652-01)

2014年5月

Oracle Fusion Middlewareサーバーの管理方法について説明します。

Oracle Fusion Middleware Oracle Enterprise Data Qualityの管理、12c (12.1.3)

E59395-01

Copyright © 2014 Oracle and/or its affiliates. All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアはさまざまな情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 起動タスクを実行するための自動実行の使用

- 1.1 自動実行について

- 1.2 自動実行処理の使用

- 1.3 自動実行スクリプトの使用

- 1.3.1 例

- 1.4 処理とルール・スキーマについて

- 1.4.1 処理スキーマについて

- 1.4.2 ルール・スキーマについて

2 EDQ電子メール通知の構成

- 2.1 SMTPを使用した電子メール通知の送信

- 2.2 JNDIを使用した電子メール通知の送信

- 2.3 電子メールが構成されていることの確認

3 EDQケース管理の構成

- 3.1 拡張属性の理解と追加

- 3.1.1 デフォルトの拡張属性

- 3.1.2 新規拡張属性の追加

- 3.2 データ入力の検証の構成

- 3.2.1 事前定義リストの制限のチェック

- 3.2.2 正規表現の制限のチェック

- 3.3 ケース管理の構成プロパティの理解

4 EDQのパフォーマンスのチューニング

- 4.1 プロパティ・ファイルについて

- 4.2 バッチ処理のチューニング

- 4.3 リアルタイム処理のチューニング

- 4.3.1 リアルタイム・システムでのバッチ処理のチューニング

- 4.3.2 リアルタイム・スレッド数のチューニング

- 4.3.3 入出力負荷の高いリアルタイム・プロセスのチューニング

- 4.3.4 リアルタイム・プロセスのチューニングの例

- 4.4 JVMパラメータのチューニング

- 4.4.1 PermGen領域の設定

- 4.4.2 最大ヒープ・メモリーの設定

- 4.5 データベース・パラメータのチューニング

- 4.6 クライアントのヒープ・サイズの調整

5 EDQを監視するためのJMX拡張の使用

- 5.1 MXバインディングについて

- 5.2 JMX Beanネーミングについて

- 5.2.1 例の確認

- 5.3 リアルタイムプロセスの監視

- 5.3.1 リアルタイムWebサービスMBeansの監視

- 5.3.2 リアルタイムMBeansの監視

6 トリガーの使用

- 6.1 トリガー機能の概要

- 6.1.1 定義済トリガーについて

- 6.1.2 カスタム・トリガーについて

- 6.2 トリガーの使用に必要なスキル

- 6.3 トリガーの格納

- 6.4 スクリプト・トリガーAPIを使用したトリガーの構成

- 6.5 プロパティ・ファイルを使用したトリガーの構成の拡張

- 6.6 EDQトリガー・ポイントについて

- 6.7 TriggerInfoメソッドについて

- 6.8 トリガー・レベルの設定

- 6.9 トリガーでのJMSの使用

- 6.10 ジョブ構成のトリガーの公開

- 6.11 トリガーの例

7 EDQファイルへのリモートからのアクセス

はじめに

このドキュメントでは、Oracle Fusion Middlewareを管理および構成する方法について説明します。様々な管理タスクを実行して、デフォルトのEDQ構成を拡張できます。

対象読者

このドキュメントは、Oracle Fusion Middlewareをインストールしているシステム管理者またはアプリケーション開発者を対象としています。主なEDQ概念、アプリケーション・サーバーおよびWebテクノロジの基本知識を持ち、Linux、UNIXおよびWindowsプラットフォームの一般知識を持っていることが前提です。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

Oracleサポート・サービスでは、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

EDQの詳細は、Oracle Fusion Middlewareのドキュメント・セットにある次のドキュメントを参照してください。

EDQドキュメント・ライブラリ

次の刊行物がEDQのインストールおよび使用に役立てるために提供されます。

- 『Oracle Fusion Middleware Enterprise Data Qualityリリース・ノート』

- Oracle Fusion Middleware Enterprise Data Qualityのインストールと構成

- 『Oracle Fusion Middleware Enterprise Data Qualityの管理』

- 『Oracle Fusion Middleware Enterprise Data Qualityの理解』

- Oracle Fusion Middleware Enterprise Data Qualityの外部システムとの統合

- Oracle Fusion Middleware Enterprise Data Qualityの保護

- Oracle Enterprise Data Qualityアドレス検証サーバーのインストレーションおよびアップグレード・ガイド

- Oracle Enterprise Data Qualityアドレス検証サーバー・リリース・ノート

次の場所で、これらのガイドおよびすべてのOracle製品ドキュメントの最新バージョンを検索してください。

http://http://docs.oracle.com

オンライン・ヘルプ

オンライン・ヘルプはすべてのOracle Fusion Middlewareユーザー・アプリケーションに提供されています。各アプリケーションで、[F1]キーを押すか、「ヘルプ」アイコンをクリックすることで表示できます。Directorプロジェクトのブラウザの主なノードには、ヘルプ・ページへの統合されたリンクが含まれています。それらにアクセスするには、ノードを選択して[F1]を押すか、またはプロジェクト・ブラウザでオブジェクトを右クリックして「ヘルプ」を選択します。Directorのツール・パレットのEDQプロセッサにも、統合されたヘルプ・トピックが含まれています。これにアクセスするには、キャンバスでプロセッサを右クリックして「プロセッサ・ヘルプ」を選択するか、キャンバスかツール・パレットでプロセッサを左クリックして[F1]を押します。

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 起動タスクを実行するための自動実行の使用

この章では、アプリケーション・サーバーの起動時にEDQがプロジェクトをロードしてジョブを実行できる、EDQの自動実行機能について説明します。自動実行機能の構成方法と自動実行機能を使用して実行できる処理タイプについて説明し、自動実行スクリプトの例を示します。

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

- 第1.1項「自動実行について」

- 第1.2項「自動実行処理の使用」

- 第1.3項「自動実行スクリプトの使用」

- 第1.4項「処理とルール・スキーマについて」

1.1 自動実行について

起動時に自動的に次のことを実行するようにEDQを構成できます。

- アプリケーション・サーバーの起動時に、ある範囲のタスクを実行できます。処理を構成する各タスクは、アプリケーション・サーバーが起動するたびに、またはアプリケーション・サーバーが次に実行するときに1度のみ実行するように構成することができます。

- EDQサーバーに保存されたパージ設定を上書きするパージ・ルールをロードおよび適用します。

自動実行処理を使用するには、XMLで記述された、タスクを指定する自動実行スクリプトを、EDQインストールの2つの特定のディレクトリのいずれかに配置します。

- startupディレクトリ: startupディレクトリのスクリプトは、EDQアプリケーション・サーバーが起動するたびに処理されます。

- onceonlyディレクトリ: onceonlyディレクトリのスクリプトは、EDQアプリケーション・サーバーが次に起動するときに処理され、その後、onceonly内のcompleteサブディレクトリに移動されます。completeディレクトリ内のスクリプトは、以降の起動時には処理されません。

アプリケーション・サーバーが起動するときに、EDQはonceonlyおよびstartupディレクトリで自動実行スクリプトをチェックし、存在するものを処理します。

startupおよびonceonlyディレクトリは、アプリケーション・サーバーのローカル構成ディレクトリoedq.local.homeのEDQ autorunディレクトリにあります。

1.2 自動実行処理の使用

様々な種類の自動実行処理がEDQでは可能で、それぞれにはその機能に特有のXML属性のセットが含まれます。処理タイプとその使用可能な属性は、自動実行ファイルXMLスキーマにより定義されます。第1.4項「処理とルール・スキーマについて」を参照してください。使用可能な処理を次の表に示します。

処理タイプ

処理の実行内容

httpget

Webサーバーからファイルをダウンロードします。

package

プロジェクトを.dxiファイルからサーバーへロードするか、またはサーバー上のプロジェクトを.dxiファイルに保存します。ノードが指定されていない場合、システム・レベル・コンポーネントを含むファイル全体の内容がサーバーにロードされます。

load

パージ・ルール構成ファイルなどのファイルをロードします。この処理は、startupディレクトリでのみ有効です。パージ・ルールをロードするためのRulesスキーマでのload処理の使用方法については、例1-0を参照してください。

runjob

ディレクタから既存のジョブを実行します。この処理で指定された実行プロファイルの実行ラベルは無視されます。(runopsjobを使用して実行ラベルに基づくジョブを実行します。)

runopsjob

EDQサーバー・コンソールから既存のジョブを実行し、実行ラベルを実行プロファイルに設定するか、またはrunlabel属性を使用して設定する必要があります。

dbscript

ディレクタ・データベースに対してデータベース・スクリプトを実行します。このような処理は、最大の注意を払って使用する必要があります。スクリプトが不適切に適用されると基礎となるデータベースが破損する可能性があるからです。

sleep

続行する前に指定した間隔待機します。

1.3 自動実行スクリプトの使用

自動実行スクリプトはXMLコードを含むファイルです。自動実行スクリプトの主な部分は、それぞれの処理が<chores>タグで囲まれた、処理のリストから構成されます。各処理は第1.2項「自動実行処理の使用」にリストされた自動実行処理のタイプのいずれかで、実行する処理を指定する属性のセットを含みます。使用可能な属性は選択した処理タイプによって異なります。

自動実行スクリプトを構成するために使用されるXMLスキーマはすべて第1.4項「処理とルール・スキーマについて」に示されています。

1.3.1 例

この項では、自動実行スクリプトの例をいくつか示します。

例1

次のXMLコードは、EDQに次のことを指示する自動実行スクリプトの例を示します。

- 23People.dxiファイルをダウンロードし、同じ名前で既存のファイルを上書きします。

- 23Peopleプロジェクトを23People.dxiファイルからインポートし、同じ名前で既存のプロジェクトを上書きします。

- rp1実行プロファイルで、23People Excel.23Peopleジョブを実行します。これはrunopsjob処理ではないので、プロファイルに指定した実行ラベルは無視されます。

<?xml version="1.0" encoding="UTF-8"?>
<chores version="1">
<!-- Get the dxi file -->
<httpget overwrite="true" todir="dxiland" tofile="23People.dxi">
<url>http://svn/repos/dev/trunk/benchmark/ benchmark/dxis/23People.dxi</url>
</httpget>
<!-- Import the project from the dxi -->
<package direction="in" dir="dxiland" file="23People.dxi" overwrite="true">
<node type="project" name="23People"/>
</package>
<!-- Run the jobs -->
<runjob project="23People" job="23People Excel.23People" runprofile="rp1"
waitforcompletion="true"/>
</chores>

例2

次のXMLコードは、runjobまたはrunopsjob処理を使用してジョブを実行する4つの方法を示す自動実行スクリプトの例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<chores version="1">
<!-- runs a director job with no runlabel -->
<runjob project="merge" job="tester" waitforlocks="false"
waitforcompletion="false" runprofile="x"/>
<!-- runs an ops job with the runlabel from the runprofile -->
<runopsjob project="merge" job="tester" waitforlocks="false"
waitforcompletion="false" runprofile="x" />
<!-- runs an ops job with the runlabel from the runlabel attribute-->
<runopsjob project="merge" job="tester" waitforlocks="false"
waitforcompletion="false" runprofile="x" runlabel="chooseme" />
<!-- runs an ops job with the runlabel from the runlabel attribute-->
<runopsjob project="merge" job="tester" waitforlocks="false"
waitforcompletion="false" runlabel="onlychoice" />
</chores>

例3

次のXMLコードは、load処理を使用してパージ・ルールをロードする方法を示します。

<?xml version="1.0" encoding="UTF-8" ?>
<chores version="1">
<load file="purgerules.xml" dir="autorun" type="purgeRules" />
</chores>

次に、処理仕様にロードされたpurgerules.xmlファイル内のパージ・ルールを示します。

<?xml version="1.0" encoding="UTF-8" ?>
- <rules>
- <rule displayName="testa" enabled="true">
<purgePeriod period="1" unit="HOURS" />
<project>aa</project>
<job>12345</job>
<runlabelMatcher regex="false" runlabel="ABCD" />
</rule>
- <rule displayName="testb" enabled="true">
<purgePeriod period="1" unit="HOURS" />
<project>aa</project>
<job>ABCD</job>
<runlabelMatcher regex="true" runlabel="^\d{5}$" />
</rule>
- <rule displayName="testc" enabled="true">
<purgePeriod period="2" unit="HOURS" />
<project />
<job />
<runlabelMatcher regex="true" runlabel="TEST" />
</rule>
- <rule displayName="testd" enabled="true">
<purgePeriod period="3" unit="WEEKS" />
<project />
<job />
<runlabelMatcher regex="true" runlabel="TEST" />
</rule>
- <rule displayName="teste" enabled="false">
<purgePeriod period="999" unit="MONTHS" />
<project />
<job />
<runlabelMatcher regex="true" runlabel="^\d{5}$" />
</rule>
- <rule displayName="testf" enabled="true">
<purgePeriod period="1" unit="HOURS" />
<project />
<job />
<runlabelMatcher regex="true" runlabel="^\d{5}$" />
</rule>
- <rule displayName="testg" enabled="true">
<purgePeriod period="1" unit="DAYS" />
<project />
<job />
<runlabelMatcher regex="false" runlabel="ABCD" />
</rule>
</rules>

1.4 処理とルール・スキーマについて

この項では、処理とルールXMLスキーマを示します。

1.4.1 処理スキーマについて

このスキーマは、第1.2項で示した処理について説明します。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<!-- Chores -->
<xs:element name="chores">
<xs:complexType>

<!--
List of chores that need to be performed.  The chores will be performed
in the order
specified in the xml file
-->
<xs:choice minOccurs="0" maxOccurs="unbounded">

<xs:element name="httpget"     type="httpgetType"/>
<xs:element name="package"     type="packageType"/>
<xs:element name="runjob"      type="runjobType"/>
<xs:element name="runopsjob"   type="runopsjobType"/>
<xs:element name="dumpdb"      type="dumpdbType"/>
<xs:element name="dbscript"    type="dbScriptType"/>
<xs:element name="sleep"       type="sleepType"/>
<xs:element name="load"        type="loadType"/>
</xs:choice>

<!-- Schema version number -->
<xs:attribute name="version" type="xs:positiveInteger" use="required"/>

</xs:complexType>
</xs:element>

<!-- Base type for chores -->
<xs:complexType name="choreType">

<!-- Flag indicating whether we should wait for completion before moving
on to the next chore. -->
<xs:attribute name="waitforcompletion" type="xs:boolean"
use="optional" default="true"/>
</xs:complexType>

<!-- HTTP Get chore.  Download the specified urls. -->
<xs:complexType name="httpgetType">

<xs:complexContent>
<xs:extension base="choreType">

<xs:sequence minOccurs="1" maxOccurs="1">
<!-- URL to download. -->
<xs:element name="url" type="xs:string"/>
</xs:sequence>

<!-- Filename to download to. -->
<xs:attribute name="tofile" type="xs:string" use="required"/>

<!--
Directory to download the files to.
- relative path is relative to the config dir
- absolute path is used as is
- no path indicates the config dir
-->
<xs:attribute name="todir" type="xs:string" use="optional"/>

<!-- If true existing files are overwritten, otherwise download is
not performed. -->
<xs:attribute name="overwrite" type="xs:boolean" use="optional"
default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<!-- dxi file control chore.  Import or export to/from a dxi file. -->
<xs:complexType name="packageType">

<xs:complexContent>
<xs:extension base="choreType">

<!-- List of root level nodes to import/export.
An empty list indicates 'all'. -->
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="node" type="packageNodeType"/>
</xs:sequence>

<!-- dxi filename. -->
<xs:attribute name="file" type="xs:string" use="required"/>

<!--
Directory that the dxi is in.
- relative path is relative to the config dir
- absolute path is used as is
- no path indicates the config dir
-->
<xs:attribute name="dir" type="xs:string" use="optional"/>

<!-- If true existing files/nodes are overwritten,
otherwise no operation. -->
<xs:attribute name="overwrite" type="xs:boolean"
use="optional" default="true"/>

<!-- Direction: in=import out=export -->
<xs:attribute name="direction" type="packageDirectionEnum"
use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<!-- Package node for import or export from/to a dxi. -->
<xs:complexType name="packageNodeType">

<!-- the type of the node to process -->
<xs:attribute name="type" type="nodeTypeEnum" use="required"/>

<!-- the name of the node to process -->
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>

<!-- db script control chore.  Runs db script against the configuration database. -->
<xs:complexType name="dbScriptType">

<xs:complexContent>
<xs:extension base="choreType">

<!-- db script filename. -->
<xs:attribute name="file" type="xs:string" use="required"/>

<!--
Directory that the db script is in.
- relative path is relative to the config dir
- absolute path is used as is
- no path indicates the config dir
-->
<xs:attribute name="dir" type="xs:string" use="optional"/>

<!-- The database to run the script against -->
<xs:attribute name="database" type="databaseEnum" use="required"/>

</xs:extension>
</xs:complexContent>
</xs:complexType>

<!-- Invoke named job chore.  Run a named job -->
<xs:complexType name="runjobType">
<xs:complexContent>
<xs:extension base="choreType">

<!-- Project name -->
<xs:attribute name="project" type="xs:string" use="required"/>

<!-- Job name -->
<xs:attribute name="job" type="xs:string" use="required"/>

<!-- Wait for locks flag - default to true -->
<xs:attribute name="waitforlocks" type="xs:boolean"
use="optional" default="true"/>

<!-- Optional run profile -->
<xs:attribute name="runprofile" type="xs:string" use="optional"/>

</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="runopsjobType">
<xs:complexContent>
<xs:extension base="runjobType">

<!-- Optional run label (will override run profile run label if set) -->
<xs:attribute name="runlabel" type="xs:string" use="optional"/>

</xs:extension>
</xs:complexContent>
</xs:complexType>

<!--
Dump the database.
-->
<xs:complexType name="dumpdbType">
<xs:complexContent>
<xs:extension base="choreType">

<!-- Output JMP file for config database -->
<xs:attribute name="configout" type="xs:string" use="required"/>

<!-- Output JMP file for results database -->
<xs:attribute name="resultsout" type="xs:string" use="required"/>

<!--
Directory that the JMP files are written to
- relative path is relative to the config dir
- absolute path is used as is
- no path indicates the config dir
-->
<xs:attribute name="dir" type="xs:string" use="optional"/>

<!--
TODO: Add some filtering to allow dumping of categories of data
e.g. staged data, results data, case management data, etc.
-->
</xs:extension>
</xs:complexContent>
</xs:complexType>

<!-- Load a certain file to do a certain thing. Eg change purge rules. -->
<xs:complexType name="loadType">
<xs:complexContent>
<xs:extension base="choreType">
<!-- type of action to run with file -->
<xs:attribute name="type" type="loadTypeEnum" use="required"/>

<!-- filename -->
<xs:attribute name="file" type="xs:string" use="required"/>

<!--
Directory that the file is in.
- relative path is relative to the config dir
- absolute path is used as is
- no path indicates the config dir
-->
<xs:attribute name="dir" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<!--  Enumeration of databases  -->
<xs:simpleType name="databaseEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="director"/>
<xs:enumeration value="results"/>
</xs:restriction>
</xs:simpleType>

<!-- Enumeration of valid node types -->
<xs:simpleType name="nodeTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="project"/>
<!-- Probably need to do these sometime
<xs:enumeration value="resource"/>
<xs:enumeration value="datastore"/>
-->
</xs:restriction>
</xs:simpleType>

<!-- Enumeration of packaging direction. -->
<xs:simpleType name="packageDirectionEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="in"/>
<xs:enumeration value="out"/>
</xs:restriction>
</xs:simpleType>

<!-- Enumeration of types of things that can be loaded. -->
<xs:simpleType name="loadTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="purgeRules"/>
<!-- <xs:enumeration value="schedule"/> -->
</xs:restriction>
</xs:simpleType>

<!-- Sleep chore.  Wait for a while before doing other autorun stuff -->
<xs:complexType name="sleepType">

<xs:complexContent>
<xs:extension base="choreType">

<!-- seconds to wait. -->
<xs:attribute name="time" type="xs:integer" use="required"/>

</xs:extension>
</xs:complexContent>
</xs:complexType>

</xs:schema>

1.4.2 ルール・スキーマについて

この項では、EDQサーバーのパージ・ルールを指定するXMLスクリプトを構成する基礎を提供する、ルール・スキーマについて説明します。load処理を使用してEDQ起動時にスクリプトをロードします。

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<!-- Common types -->
<!-- ============ -->
<xs:include schemaLocation="urn:commontypes.xsd"/>

<xs:element name="rules" type="rulesType">
<!-- Rule name must be unique -->
<xs:key name="rule.name">
<xs:selector xpath="rules/rule"/>
<xs:field    xpath="@name"/>
</xs:key>
</xs:element>

<!--  Rules  -->

<xs:complexType name="rulesType">
<xs:sequence>
<xs:element name="rule" type="ruleType" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>

<xs:attribute name="schemaversion" type="xs:positiveInteger"
use="optional" default="1"/>
</xs:complexType>

<xs:complexType name="ruleType">
<xs:sequence>
<xs:element name="purgePeriod"     type="periodType"   minOccurs="1"
maxOccurs="1"/>
<xs:element name="project"         type="xs:string"    minOccurs="0"
maxOccurs="1"/>
<xs:element name="job"             type="xs:string"    minOccurs="0"
maxOccurs="1"/>
<xs:element name="runlabelMatcher" type="runlabelType" minOccurs="0"
maxOccurs="1"/>
</xs:sequence>

<!-- name -->
<xs:attribute name="displayName"    type="xs:string"  use="required"/>
<!-- whether this rule should be applied -->
<xs:attribute name="enabled" type="xs:boolean" use="required"/>
</xs:complexType>

<!-- Runlabel -->

<xs:complexType name="runlabelType">
<xs:attribute name="regex"    type="xs:boolean" use="required"/>
<xs:attribute name="runlabel" type="xs:string"  use="required"/>
</xs:complexType>

<!-- Purge Period -->

<xs:complexType name="periodType">
<xs:attribute name="period" type="xs:int" use="optional"/>
<xs:attribute name="unit" type="periodUnitType" use="required"/>
</xs:complexType>

<!-- Purge Unit types -->

<xs:simpleType name="periodUnitType">
<xs:restriction base="xs:string">
<xs:enumeration value="IMMEDIATE"/>
<xs:enumeration value="HOURS"/>
<xs:enumeration value="DAYS"/>
<xs:enumeration value="WEEKS"/>
<xs:enumeration value="MONTHS"/>
<xs:enumeration value="NEVER"/>
</xs:restriction>
</xs:simpleType>

</xs:schema>

2 EDQ電子メール通知の構成

この章では様々な状況で電子メール通知を生成するようにEDQを構成する方法について説明します。

- 第2.1項「SMTPを使用した電子メール通知の送信」

- 第2.2項「JNDIを使用した電子メール通知の送信」

- 第2.3項「電子メールが構成されていることの確認」

EDQユーザーに電子メールを送信できるのは、関係する問題が作成または変更されたとき、ケース管理で関連するケースまたはアラートが追加または変更されたとき、または関連するジョブの実行が完了したときです。

2.1 SMTPを使用した電子メール通知の送信

電子メール通知を送信するには、EDQインストールのSimple Mail Transfer Protocol (SMTP)情報をmail.propertiesファイルに入力する必要があります。このファイルは/oedq_home/notification/smtpに保存されています。

1. mail.propertiesファイルをedq_home/notification/smtpのインストール場所からローカルの構成ディレクトリ(デフォルトではoedq_local_home)のnotification/smtpサブディレクトリにコピーします。
/oedq_local_home/notification/smtp

このファイルは、標準のJava mail.propertiesファイル形式であり、JavaMail APIドキュメントWebサイト(https://javamail.java.net/nonav/docs/api/)に記載されています。

2. mail.propertiesファイルを次のように編集して、サイトのSMTPホストの名前を指定します。

enabled = true
mail.transport.protocol = smtp
mail.host = smtp.fully qualified domain name of mail host
mail.user = depends on client site
mail.password = depends on client site
from.address = edqserver@example.com

2.2 JNDIを使用した電子メール通知の送信

SMTPを使用するかわりに、次のプロパティを構成することにより、Java Naming and Directory Interface (JNDI)セッションを使用できます。

session = JNDI name of session
from.address = edqserver@example.com

注意:

電子メール通知が適切に機能するには、from.addressプロパティに、使用するサイトの有効な電子メール形式を設定する必要があります。また、電子メール通知を受信する各ユーザーのプロファイルで、電子メール・アドレスが設定されている必要もあります。

2.3 電子メールが構成されていることの確認

電子メール通知が適切に動作しているかどうかを確認するには、ディレクタにテスト問題を作成して、構成済の電子メール・アドレスを持つユーザーに割り当てます。そのユーザーは、問題へのリンクが記入された電子メールを受信するはずです。

3 EDQケース管理の構成

この章では、ケース管理を使用するようにEDQを構成する方法について説明します。

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

- 第3.1項「拡張属性の理解と追加」

- 第3.2項「データ入力の検証の構成」

- 第3.3項「ケース管理の構成プロパティの理解」

ケース管理では、データ品質処理の結果の手動での調査をサポートしています。ケース管理を使用すると、特権ユーザーは高度に構成可能なワークフローを使用した一致する結果の管理およびレビューが可能になります。

EDQサーバーで使用されるケース管理の拡張属性の完全なセットは、oedq_local_home/casemanagementディレクトリのflags.xmlファイルに構成されます。このファイルは新しい拡張属性を追加し、それらの属性の移入方法のルールを定義するように変更される必要があります。

追加のプロパティ・ファイルflags.propertiesはベースflags.xmlファイルを伴い、グラフィカル・ユーザー・インタフェース(GUI)に表示される、拡張属性用のラベルを指定します。このファイルの設定は、ISO 639-1言語コードで追加のプロパティ・ファイルを作成することにより、flags_en.properties (英語)やflags_de.properties (ドイツ語)などの、特定のクライアント言語に対し上書きすることができます。この言語コードについては、ISO Webサイト(http://www.iso.org/iso/home/standards/language_codes.htm)で説明されています。

Oracle Watchlist Screeningがインストールされている場合、これらのファイルはすでに存在する可能性があります。

ケース管理の公開を正しく動作させるには、ケース管理の管理アプリケーションを使用してケース・ソースをインポートするときに、必ずflags.xmlファイルを上書きします。これは、ケース・ソースではflags.xmlファイルの形式に依存があり、ケース・ソースが定義されたサーバーで行われるのと同じ方法で、フラグが索引付けされ、指定される必要があるからです。インポートの完了後に再度追加される必要のあるサーバー上のflags.xmlファイルに既存の拡張属性がある場合には、ケース・ソースのインポート前にファイルをバックアップすることをお薦めします。

3.1 拡張属性の理解と追加

この項では、様々なタイプの拡張属性と、ケース管理で使用するためにそれらを追加する方法について説明します。

3.1.1 デフォルトの拡張属性

最初のEDQインストールでは、flags.xmlファイルに次の2つの拡張属性(flag)の定義例が含まれています。

<f:flag index="1" label="%escalation" type="boolean" default="false" notnull="true"/>

<f:flag index="2" label="%priority.score" type="number" readonly="true"/>

注意:

これらのプロパティが各行に表示される順序は、この例とは一致しない場合があります。プロパティの順序は重要ではありません。また、Oracle Watchlist Screeningがインストールされている場合、flags.xmlファイルの内容は異なります。

3.1.2 新規拡張属性の追加

新しい拡張属性を追加するには、flags.xmlファイルで、既存の属性定義の直後に行を追加し、既存の行と同じ構文に従い、各プロパティに次の備考を使用します。

プロパティ

指定できる値

備考

index

整数

ファイルの各エントリに対して一意である必要があります

label

すべて

%文字は、UIのラベルがクライアント・ロケールに対するflags.propertiesファイルから取り出す必要があることを示すために使用されます。%文字が使用されていない場合、ラベルは常に(すべての言語で)示されたとおりです。

type

number、booleanまたはstring

列のデータ型を制御します。

readonly

trueまたはfalse

ケースまたはアラートの編集時に特権ユーザーが拡張属性の値を編集できるかどうかを制御します

notnull

trueまたはfalse

Null値が拡張属性で許可されるかどうかを制御します。これが定義されない場合、Null値は許可されます('false'設定と同じ)。

default

任意の許容される値

特定の値に設定されていない場合、拡張属性のデフォルト値を設定します。

'string'のタイプの拡張属性には80文字の文字制限があります。これよりも長い値は、値として挿入できません。

3.2 データ入力の検証の構成

拡張属性に対しユーザー指定のデータ形式を制限できます。この制限は、ユーザーがケース管理GUIで拡張属性を編集するとき、およびケース管理の管理のワークフロー・エディタで拡張属性に指定可能な値を定義するときにチェックされます。

この制限はケースおよびアラートがプロセスからケース管理に書き込まれるときにはチェックされないので、拡張属性に無効な値を書き込むことができます。無効な値は適切なエラー・メッセージとともにエラーで表示されます。この計画された動作は、不要なジョブの失敗からシステムを保護します。

制限はflags.xmlファイルの一部として定義されます。指定可能な制限には2つのタイプがあります。

- 事前定義リストは、書き込まれるデータが、指定可能な値を事前定義したリストでチェックされることを意味します。

- 正規表現は、書き込まれるデータが、正規表現でチェックされることを意味します。

3.2.1 事前定義リストの制限のチェック

拡張属性に入力される値が、指定可能な値の事前定義リストと一致することをチェックするには、XML要素を次の形式で拡張属性(flag)の定義の後に追加します。

<f:restrictions>
<f:predefined>
<f:value>first value</f:value>
<f:value>second value</f:value>
<f:value>third value</f:value>
</f:predefined>
</f:restrictions>
</f:flag>

たとえば、次のXMLフラグメントは、'active'および'inactive'の値のみが可能な、カスタムの'Status'拡張属性を定義します。

<f:flag index="6" label="Status" type="string" readonly="false">
<f:restrictions>
<f:predefined>
<f:value>active</f:value>
<f:value>inactive</f:value>
</f:predefined>
</f:restrictions>
</f:flag>

拡張属性は、「ケース管理」の「ケースの編集」(または「アラートの編集」)ダイアログに有効な値のリストとともに表示されます。

ヒント:

この場合、ユーザーはStatusフィールドにNull値を指定できます('notnull'条件は設定できなかったため)。

3.2.2 正規表現の制限のチェック

拡張属性に入力される値が、正規表現と一致することをチェックするには、XML要素を次の形式で拡張属性(flag)の定義の後に追加します。

<f:restrictions>
<f:regex ignorecase="false" matchby="w">
<f:value></f:value>
</f:regex>
</f:restrictions>

ここで、valueプロパティは正規表現を定義し、ignorecaseおよびmatchbyプロパティは一致方法を定義します。matchby条件の指定可能な値は次のとおりです。

値

説明

w

WHOLE - すべての値が正規表現と一致する必要があります。

s

STARTS - 値の最初が正規表現と一致する必要があります。

e

ENDS - 値の最後が正規表現と一致する必要があります。

c

CONTAINS - 値に正規表現と一致する文字列が含まれる必要があります。

たとえば、次のXMLフラグメントは、NN-NN-NNN (2桁、ハイフン、2桁、ハイフン、3桁)形式の値のみが可能な、カスタムの'National ID'拡張属性を定義します。

<f:flag index="7" label="National ID" type="string" readonly="false" notnull="true">
<f:restrictions>
<f:regex ignorecase="false" matchby="w">
<f:value>\d{2}-\d{2}-\d{3}</f:value>
</f:regex>
</f:restrictions>
</f:flag>

次に、ユーザーが正規表現と一致しない値を追加しようとしたときに表示されるエラー・メッセージを示します。

errormessage属性を使用してこのエラー・メッセージをカスタマイズすることもできます。エラー・メッセージとして表示する単純なテキスト文字列を入力することも、パーセント(%)記号で文字列を開始して、アプリケーションによりflags.propertiesファイルでローカライズされた値を探すこともできます。

たとえば、次のXMLフラグメントは、エラーが発生したときに、e1.messageエラー・メッセージをflags.propertiesファイルから取得します。

<f:restrictions><f:regex ignorecase="false" matchby="w" errormessage="%e1.message"><f:value>\d{3}-\d{2}-\d{4}</f:value></f:regex></f:restrictions>

3.3 ケース管理の構成プロパティの理解

この項では、ケース管理の構成に使用されるdirector.propertiesの主要なパラメータを示します。

パラメータ

Description0

case.management.fail.on.long.flags

このプロパティは、80文字を超えるフラグ値が生成された場合のケース管理の動作を制御します。このプロパティにtrueを設定すると、そのプロセスはエラーを生成して停止します。falseを設定すると、長いフラグ値が切り捨てられ、警告がログ・ファイルに書き込まれます。このプロパティはデフォルトでfalseに設定されています。

cm.index.queue.limit

このプロパティは、索引キュー制限の最大サイズを制御します。

index.directory

このプロパティでは、Lucene索引ディレクトリの絶対パスを構成できます。デフォルトでは、索引ディレクトリは必ずlocalhomeディレクトリに作成されます。場合によっては、このディレクトリが非常に大きくなる可能性があるため、別の場所に格納することで、ディスク領域を管理しやすくなります。

4 EDQのパフォーマンスのチューニング

この章では、EDQシステムのパフォーマンスを最適化するために使用できるサーバーのプロパティについて、およびそのプロパティの様々な環境での構成方法について説明します。

内容は次のとおりです。

- 第4.1項「プロパティ・ファイルについて」

- 第4.2項「バッチ処理のチューニング」

- 第4.3項「リアルタイム処理のチューニング」

- 第4.4項「JVMパラメータのチューニング」

- 第4.5項「データベース・パラメータのチューニング」

- 第4.6項「クライアントのヒープ・サイズの調整」

EDQには、システムの様々な側面を構成するために使用される多くのプロパティがあります。これらのうち比較的少数がシステムのパフォーマンス特性の制御に使用されます。

EDQでのパフォーマンス・チューニングは多くの場合CPUコアという言葉で説明されます。この章では、これはRuntime.availableProcessors()メソッドへのコールにより返される、Java仮想マシンによりレポートされるCPUの数のことです。

4.1 プロパティ・ファイルについて

チューニング制御はdirector.propertiesファイル内のプロパティとして公開されます。このファイルはoedq_local_home構成ディレクトリにあります。

使用できるチューニング・プロパティは次のとおりです。

runtime.threads

このプロパティは、起動された各バッチ・ジョブに使用されるスレッドの数を決定します。このプロパティのデフォルト値はゼロで、これは使用可能な各CPUコアに対しシステムが1スレッドを開始することを意味します。このプロパティの値にゼロ以外の正の整数を指定して、スレッドの数を明示的に指定できます。たとえば、各バッチ・プロセスに合計で4スレッドを開始する場合は、runtime.threadsを4に設定します。

runtime.intervalthreads

このプロパティは、間隔モードで実行中に各プロセスで使用されるスレッドの数を決定します。これは、同時に処理できるリクエストの数も定義します。デフォルトの動作では、間隔モードで実行中の各プロセスに対し1スレッドが実行します。

workunitexecutor. outputThreads

このプロパティは、データの結果データベースへの書込みに使用されるスレッドの数を決定します。これらのスレッドはシステム全体の結果および出力データのキューにサービスを提供するので、システムで実行しているすべてのプロセスで共有されます。このプロパティのデフォルト値はゼロで、これは使用可能な各CPUコアに対しシステムが1出力を使用することを意味します。このプロパティの値にゼロ以外の正の整数を指定して、出力スレッドの数を明示的に指定できます。たとえば、各バッチ・プロセスに合計で4スレッドを使用する場合は、workunitexecutor.outputThreadsを4に設定します。

4.2 バッチ処理のチューニング

EDQで提供されるデフォルトのチューニング設定は、バッチ処理で主に使用されるほとんどのシステムで適切です。すべての使用可能なコアを使用するジョブの実行時は、十分なスレッドが開始されます。複数のジョブが開始される場合、オペレーティング・システムはコア間の効率的な共有のために作業をスケジューリングできます。オペレーティング・システムがこれらの種類のワークロードのスケジューリングを実行できるようにするのがベスト・プラクティスです。

4.3 リアルタイム処理のチューニング

本番システムが大量のリアルタイム処理に使用されている場合、リアルタイムのレスポンスがクリティカルでなくなるまで、同時バッチおよびリアルタイム処理に使用しないでください。バッチ処理はリアルタイム・プロセスにより要求されるデータの処理に限って実行します。

4.3.1 リアルタイム・システムでのバッチ処理のチューニング

バッチ処理をリアルタイム処理に使用されているシステムで実行する必要がある場合、スケジュールされているメンテナンス期間など、リアルタイム・プロセスが停止しているときにバッチ作業を実行することがベスト・プラクティスです。この場合、runtime.threadsはデフォルト設定が適しています。

リアルタイム・サービスが実行している間にバッチ処理を実行する必要がある場合、runtime.threadsの値を、コアの合計数よりも小さく設定します。バッチ・プロセスで開始されるスレッドの数を削減することにより、これらのプロセスが実行時に使用可能なすべてのコアに負荷をかけるのを防ぎます。バッチが実行中に到着するリアルタイム・サービス・リクエストは、CPU時間をめぐってそれと競合することはありません。

4.3.2 リアルタイム・スレッド数のチューニング

ほとんどの本番システムでは、runtime.intervalthreadsのデフォルト値の1が適しています。デフォルト設定は、間隔モードで実行中のプロセスにより処理される指定したリアルタイム・サービスに対し、すべてのリクエストが順次処理されることを示しています。同じサービスに対し4つのリクエストが同時に到着した場合、1つのリクエストを処理する平均時間は100msなので、最初のメッセージは100ms後に処理され、2番目のメッセージは200ms後、などとなります。さらに、すべての作業は1つのコアで実行され、これは4コア・マシン上で3つのコアがアイドルであることを意味します。runtime.intervalthreadsを使用可能なコアの数と同じに設定することがベスト・プラクティスです。この構成では、受信リクエストを同時に処理することが可能で、リソースがより効率的に使用され、ターンアラウンドがより高速になります。開発環境では、runtime.intervalthreadsのデフォルト設定で十分です。

4.3.3 入出力負荷の高いリアルタイム・プロセスのチューニング

プロセスが大量のI/Oを実行する場合、runtime.intervalthreadsの値を使用可能なコアの数よりも増やしてみることができます。プロセスがI/O集中型で実行する場合、すべてのスレッドがディスクのアクティビティの完了を待ち、1つまたは複数のコアがアイドルになっているときがあります。存在するコアよりも多くのアクティブなスレッドを使用することで、1つのスレッドがI/Oのために停止したときに、そのスレッドが使用していたコアを別のスレッドが利用できるようになります。

4.3.4 リアルタイム・プロセスのチューニングの例

このリアルタイム・プロセスのチューニング方法の例では、4コアのIntelサーバーが使用されて4つの異なるWebサービスをサポートしています。WebサービスはCPU集中型で、最小限の入出力を実行します。Webサービスで使用されるデータの一部は、バッチ・モードでのデータの準備プロセスも含み、毎日更新される必要があります。Webサービスは同時リクエストのセットを断続的に受け取ります。夜間に、Webサービスはメンテナンスとデータ準備のために停止します。

このシナリオでは、runtime.threadsプロパティ・セットをデフォルト値のCPUコアごとに1スレッド(この場合は4スレッド)に設定したままにすることが適切です。できるだけ短い時間でデータ準備を実行することを目的に、またプロセスがI/Oバウンドになる可能性がないと想定して、runtime.intervalthreadsプロパティを4に設定することができます。プロセス数と同じスレッド数を使用することで、リクエストの最大数を同時に処理できるようになります。

注意:

runtime.intervalthreadsの値を増やすことにより、メモリー要件、特に間隔の回転率が、大幅に増加することになります。

4.4 JVMパラメータのチューニング

JVMパラメータはEDQのインストール中に構成する必要があります。詳細は、『Oracle Fusion Middleware Enterprise Data Qualityのインストールと構成』を参照してください。パフォーマンスを改善するためにこれらのパラメータをインストール後にチューニングする必要が生じた場合、この項の手順に従います。

注意:

この項のすべての推奨事項はJava HotSpot仮想マシンを使用するEDQインストールに基づきます。実装の性質により、これらの推奨事項は他のJVMにも適用されることがあります。

4.4.1 PermGen領域の設定

次のエラー・メッセージがログ・ファイルに記録された場合、使用可能な最大PermGen領域を増加する必要があります。

java.lang.OutOfMemoryError: PermGen space

これを行うには、EDQサーバーのJVMで-XX:MaxPermSizeパラメータの値を変更します。-XX:ReservedCodeCacheSizeパラメータを比例的に変更する必要もあります。たとえば、MaxPermSizeを1024mから2048mに倍増する場合、ReservedCodeCacheSizeも倍増する必要があります。

4.4.2 最大ヒープ・メモリーの設定

OutOfMemoryエラー・メッセージがログ・ファイルに記録された場合、最大ヒープ領域パラメータの-Xmxを増加する必要があります。ほとんどの場合、8GBの値で十分です。しかし、大規模なEDQインストールでは、より大きな最大ヒープ・サイズが必要になるので、-Xmxパラメータをサーバー・メモリーの半分の値に設定することが、通常は推奨されます。

4.5 データベース・パラメータのチューニング

EDQ内でのパフォーマンス・チューニングに関する最も重大なデータベース・チューニング・パラメータはworkunitexecutor.outputThreadsです。このパラメータは、結果データおよびステージング済データの結果データベースへの書込みに使用されるスレッドの数、よってデータベース接続の数を決定します。アプリケーション・サーバーで実行中のすべてのプロセスはこのスレッドのプールを共有するので、特定の環境では処理がI/Oバウンドになるリスクがあります。CPUの使用率と比較して特にI/O集中になっているプロセスがあり、データベース・マシンがEDQアプリケーション・サーバーをホストしているマシンよりもより強力な場合、workunitexecutor.outputThreadsの値を増加することが適切な場合があります。追加のデータベース・スレッドはデータベースへのより多くの接続を使用し、データベースにより多くの負荷をかけます。

4.6 クライアントのヒープ・サイズの調整

特定の状況下では、クライアントのヒープ・サイズの問題が発生することがあります。次に例を示します。

- 大規模なデータをクライアント側のExcelファイルにエクスポートしようとした場合。

- 多数のグループがある場合に一致レビューを開いた場合。

EDQでは、クライアントのヒープ・サイズの調整にblueprints.propertiesファイルのプロパティを使用できます。

すべてのJava Web Startクライアント・アプリケーションのデフォルトの最大クライアント・ヒープ領域を2倍にするには、EDQサーバーのconfig/propertiesディレクトリでblueprints.propertiesファイルを作成して(すでに存在する場合はそれを編集して)、次の行を追加します。

*.jvm.memory = 512m

注意:

この値を大きくすると、すべての接続クライアントでヒープ・サイズが512MBに変更されることになります。これに付随して、他のアプリケーションが使用中の場合に、クライアントのパフォーマンスにその影響が及ぶことがあります。

特定アプリケーションのヒープ・サイズを調整するには、アスタリスク(*)を次のリストに示すクライアント・アプリケーションのブループリント名に置き換えます。

- director - (ディレクタ)

- matchreviewoverview - (一致レビュー)

- casemanager - (ケース管理)

- casemanageradmin - (ケース管理の管理)

- opsui - (サーバー・コンソール)

- diff - (構成分析)

- issues - (問題マネージャ)

注意:

ダッシュボードはJava Web Startアプリケーションではないため、このプロパティで制御することはできません。

たとえば、ディレクタの最大クライアント・ヒープ領域を2倍にするには、次の行を追加します。

director.jvm.memory = 512m

複数のアプリケーションのクライアント・ヒープ領域を2倍にするには、単にこのプロパティを繰り返します。たとえば、ディレクタと一致レビューについては、次のようになります。

director.jvm.memory = 512m

matchreviewoverview.jvm.memory = 512m

5 EDQを監視するためのJMX拡張の使用

この章では、操作の多くの詳細を監視および管理するために使用できる、EDQ Java Management Extensions (JMX)インタフェースについて説明します。JMXはJavaコンポーネントのリモート管理および監視用に設計されたJavaテクノロジです。

内容は次のとおりです。

- 第5.1項「JMXバインディングについて」

- 第5.2項「JMX Beanネーミングについて」

- 第5.3項「リアルタイムプロセスの監視」

5.1 JMXバインディングについて

EDQは内部JMXサーバー、またはWebLogicかTomcatアプリケーション・サーバーで提供されたもののいずれかを使用できます。このトピックでは、どのJMXサーバーが使用されるかを制御する方法について説明します。

- Apache TomcatでのEDQのデフォルトのインストールは、内部JMXサーバーを使用します。

- Oracle WebLogic ServerでのEDQのデフォルトのインストールは、WebLogic Serverアプリケーション・サーバーのJMXツリーを使用します。

デフォルトの構成には、リモート・メソッド呼出し(RMI)レジストリが含まれ、これはJMXクライアントだけでなく、EDQコマンドライン・インタフェースにより使用されます。RMIリスニング・ポート番号は、director.propertiesファイルに定義される、management.portプロパティで指定されます。デフォルトは8090です。このプロパティは内部JMXサーバーと、EDQコマンドライン・ツールで使用されるRMI APIの両方へのアクセスを制御します。

JMXの構成を次のように変更できます。

- コマンドライン・インタフェースを使用せず、Tomcatアプリケーション・サーバーJMXツリーにEDQ JMX Beansを表示する場合、management.portプロパティを0に変更します。
management.port=0

management.portをゼロに設定した場合、RMIレジストリはどのポートもリスンしません。これは、内部JMXサーバーが使用されず、かつRMI APIも使用できないことを意味します。そのため、コマンドライン・ツールはmanagement.portが0に設定されていると動作しません。

- Oracle WebLogic Serverを使用していて、コマンドライン・インタフェースを使用し、WebLogic ServerのJMXツリーにEDQ JMX Beansを表示する場合、構成ディレクトリのdirector.propertiesファイルに次のプロパティを追加します。コマンドライン・ツールでRMI APIを使用できるように、management.portの設定を8090のままにします。
management.jndiname=java:comp/env/jmx/runtime

5.2 JMX Beanネーミングについて

EDQ JMX Beansで使用されるネーミング・スキームはJconsoleを使用してうまく動作するように設計されています。しかし、他のJMXクライアントが変更されたネーミング・スキームを必要とする場合があります。

EDQ JMX Beansで使用される名前は、適切なJavaScriptまたはGroovyファイルを構成ディレクトリに書き込んで配置し、director.propertiesのmanagement.namemaker.scriptfileプロパティをその存在を示すように設定することでカスタマイズできます。

5.2.1 例の確認

この例では、type属性を名前の最後に追加することで、デフォルトのEDQ JMX Beanネーミング・スキームを変更する方法を示します。type属性はJava Beanクラスに基づきます。

1. 構成ディレクトリにjmxnames.jsという名前のファイルを作成し、次のJavaScriptを追加します。

/**
* Adds a type attribute to the name of a JMX Beans.
*
* @param beanclass The bean class name
* @param domain The domain name
* @param names The name strings
*
* @return The name string
*/
function objectNameFor(beanclass, domain, names)
{
var type = beanclass == null ? "*" : beanclass.substring(beanclass.lastIndexOf('.') + 1);
var out;
/*
* The names array always has 2 elements.
*/
out = domain + ":" + "component=" + escape(names[0]) + ",name=" + escape(names[1]);
for (var i = 2; i < names.length; i++)
{
var index = i-1
out += "," + "name" + index + "=" + escape(names[i]);
}
return out + ",type=" + type;
}

2. director.propertiesファイルに次の行を追加します。
management.namemaker.scriptfile = jmxnames.js

3. EDQアプリケーション・サーバーを再起動します。
JMX Beansでは名前の最後に型修飾子が含まれるようになります。

5.3 リアルタイムプロセスの監視

EDQでは、操作の多くの局面を監視するために使用できる、組込みJMXサーバーが提供されます。EDQアプリケーションを構成する多くのオブジェクトとリソースは、リアルタイムWebサービスを含む、MBeansをJMXサーバーに提供します。

5.3.1 リアルタイムWebサービスMBeansの監視

各リアルタイムWebサービスは、MBeanをそのリーダーと、JMXツリーのライターに登録します。

リーダーを次の場所に登録します。

Runtime/Data/Buckets/Realtime/Projects/Project Name/readers/Web service name

ライターを次の場所に登録します。

Runtime/Data/Buckets/Realtime/Projects/Project Name/writers/Web service name

いずれの場合も、MBeanへのパスには、それを所有するWebサービス、およびWebサービスを含むプロジェクトの名前が含まれます。

Global Webサービス(oedq_local_home/webservicesディレクトリの.jarファイルにデプロイ済)には別のパス名があります。単に前述のパスのProjects/Project NameをGlobalで置き換えます。

内部JMXサーバーのポートは、director.propertiesファイルに定義される、management.portプロパティで制御されます。

5.3.2 リアルタイムMBeansの監視

JConsoleなどの一般的なJMXコンソールを使用して、MBeansと対話できます。各MBeanは次のものを公開します。

- その値を読み取ることができる属性。

- 起動してMBeanでいくつかのアクションを実行できる操作。

- クライアントがMBeanで発生するイベントの通知をサブスクライブできるインタフェース。

EDQリアルタイムWebサービスMBeansは次の属性を使用します。

closetime

バケットが最後に閉じられた時間。

concurrent

同期リクエストの現在の数。

maxConcurrent

バケットが開かれてからの同時同期リクエストの最大数。

maxConcurrentMax

起動時以降の同時同期リクエストの最大数。

messages

バケットが開かれてから処理されたメッセージ数。

open

バケットが開いているかまたは閉じているかを示します。

openCount

起動時以降のバケットが開かれた回数。

opentime

バケットが最後に開かれた時間。

processtime

最後のメッセージが処理された時間。

records

バケットが開かれてから処理されたレコード数。

threads

最後に開かれたときにバケットを使用したスレッドの数。

totalMessages

起動時以降に処理されたメッセージの数。

totalRecords

起動時以降に処理されたレコードの数。

EDQリアルタイムWebサービスMBeansは次の操作を公開します。

closedown

このバケットを使用してリーダーまたはライターを停止します。

6 トリガーの使用

この章では、Oracle Fusion Middlewareでのトリガー機能の使用方法について説明します。このドキュメントでは、トリガーのインストール場所、呼び出し方法、および使用方法について説明します。

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

- 第6.1項「トリガー機能の概要」

- 第6.2項「トリガーの使用に必要なスキル」

- 第6.3項「トリガーの格納」

- 第6.4項「スクリプト・トリガーAPIを使用したトリガーの構成」

- 第6.5項「プロパティ・ファイルを使用したトリガーの構成の拡張」

- 第6.6項「EDQトリガー・ポイントについて」

- 第6.7項「TriggerInfoメソッドについて」

- 第6.8項「トリガー・レベルの設定」

- 第6.9項「トリガーでのJMSの使用」

- 第6.10項「ジョブ構成のトリガーの公開」

- 第6.11項「トリガーの例」

6.1 トリガー機能の概要

Oracle Fusion Middlewareのトリガーとは、EDQシステムの様々なトリガー・ポイントで呼び出すことができるスクリプト(JavaScriptまたはGroovy)のことです。トリガーには、定義済トリガーとカスタム・トリガーの2つのタイプがあります。

6.1.1 定義済トリガーについて

定義済トリガーはEDQインストールに付属しています。ディレクタ・ユーザー・インタフェースに表示され、ジョブ構成で使用されて、ジョブの開始、Webサービスの停止、電子メール通知の送信、およびジョブ内から別のジョブの実行を行うことができます。ディレクタ・ユーザーはトリガー・ポイント(ジョブの開始、ジョブの終了、またはその両方)で実行するようにこれらのトリガーを設定できます。ディレクタのオンライン・ヘルプ・システムで定義済トリガーの詳細を参照できます。

6.1.2 カスタム・トリガーについて

カスタム・トリガーはJavascriptまたはGroovyのスキルのある人により作成され、特定のワークフローの目的を達成するようにEDQの機能を拡張することができます。カスタム・トリガーを使用して次のようなタスクを実行できます。

- 電子メール・メッセージの送信

- JMSメッセージの送信

- Webサービスのコール

- ファイルの作成

- テキスト・メッセージの送信

次の定義済トリガー・ポイントでカスタム・トリガーを実行することができます。

- ジョブ・フェーズの実行前

- ジョブ・フェーズの実行後

- 一致決定の作成時

- ケース管理での遷移の作成時

- ジョブの完了時

これらの各トリガー・ポイントには、特別なAPIによりトリガーに渡される、一意のパスと定義済の引数のセットがあります。詳細は、第6.6項「EDQトリガー・ポイントについて」を参照してください。

カスタム・トリガーについては、このドキュメントの後半で説明します。

6.2 トリガーの使用に必要なスキル

EDQでカスタム・トリガーを作成してデプロイするには、JavascriptまたはGroovyの知識が必要です。

6.3 トリガーの格納

カスタム・トリガーはEDQのconfig (構成)ディレクトリのtriggersサブディレクトリに格納される必要があります。新しいまたは更新されたトリガーは自動的にロードされ、システムを再起動する必要はありません。

6.4 スクリプト・トリガーAPIを使用したトリガーの構成

スクリプトAPIの機能を使用してトリガーを作成できます。これらの機能はトリガー・コードで定義されます。このドキュメントでの例はJavaScriptですが、同じAPIがGroovyでも使用可能です。

次にこのAPIでの各機能について説明します。

getPath()

トリガーが処理するパスを定義する文字列を返します。各トリガー・ポイントには一意のパスがあります。トリガー・ポイントに到達すると、指定したパスに一致するトリガーが実行されます。トリガー・ポイントの詳細は、第6.6項「EDQトリガー・ポイントについて」を参照してください。

この機能は正規表現です。たとえば、パス/log/com\.datanomic\..*はログ出力名に文字列datanomicが含まれるログ出力パスと一致します(つまり、"datanomic"という語がEDQ用の別名になっている、EDQに定義されたログ出力)。

run(path, id, env, arg1, arg2 ...)

トリガーを実行します。これらの各変数に対するトリガーAPIによる戻り値の詳細は、第6.6項「EDQトリガー・ポイントについて」を参照してください。

path

トリガーのパスで、/runtime/engine/interval/endなどです。

id

トリガーのIDIDはトリガーがディレクタ・ユーザー・インタフェースで構成されるときに設定されます。このIDは単純なトリガーに対してはnullです。

env

1つ以上のキー/値のペアの形式でのトリガー環境で、env.project = project nameなどです。env入力はトリガー・ポイントに特有です。これらの値はスクリプト内でenvオブジェクトのプロパティとして公開されます。ほとんどのトリガー・ポイントは関連するEDQプロジェクトIDおよびプロジェクト名で渡されます。

arg

追加の引数はトリガー・ポイントに特有です。たとえば、Interval endトリガー・ポイントは、タスク・コンテキスト・オブジェクト、プロセス・オプション、間隔の数(>= 1)、実行統計を返します。

filter(path, env)
(オプション機能)トリガーをフィルタ処理で除外してから実行できます。このフィルタを使用して、不要なトリガーの実行によるオーバーヘッドを回避します。トリガーを有効にするにはtrueを返し、無効にするにはfalseを返します。

path

トリガーのパス。

env

1つ以上のキー/値のペアの形式でのトリガー環境です。env入力はトリガー・ポイントに特有です。これらの値はスクリプト内でenvオブジェクトのプロパティとして公開されます。ほとんどのトリガー・ポイントは関連するEDQプロジェクトIDおよびプロジェクト名で渡されます。次の例では、トリガーは関連プロジェクトの名前が"My project"であるときのみ有効になります。

function filter(path, env) {
return env.project == 'My project';
}

getLevel()
(オプション機能)トリガーが受け入れる最大レベルを返します。たとえば、次の文では、トリガーはトリガー・システムでの他の設定にかかわらず、すべてのレベルを受け入れることができます。レベルの設定の詳細は、第6.8項「トリガー・レベルの設定」を参照してください。

function getLevel() {
return Level.SEVERE;
}

getTriggerNames(path, env)
(オプション機能)ディレクタ・ユーザー・インタフェースでの表示用のTriggerNameオブジェクトの配列を返します。詳細は、第6.10項「ジョブ構成のトリガーの公開」を参照してください。トリガー名の取得とディレクタ・インタフェースでの公開は、ジョブ構成画面でのみ可能です。

[これは画面の実際の名前ですか。またはフェーズ構成とする必要がありますか。]

6.5 プロパティ・ファイルを使用したトリガーの構成の拡張

プロパティ・ファイルでスクリプト・トリガー用の追加の構成を指定できます。すべてのトリガーで使用可能なconfigという名前の定義済オブジェクトにより、これらのプロパティへのアクセスが行われます。これらのプロパティ・ファイルのEDQのベース・ディレクトリは、triggersディレクトリ内のサブディレクトリconfigです。次にconfigオブジェクトの便利なメソッドを示します。

config.get TriggerConfigFiles(base, pattern)

名前がtriggers/configディレクトリ内の指定したディレクトリで検索パターンに一致するファイル・オブジェクトの配列を返します。

base

triggers/configディレクトリ内のディレクトリの名前。

pattern

一致させる検索パターンを定義する正規表現(regex)。

config.loadProps(file)
指定したJavaプロパティ・ファイルをロードし、JavaScriptオブジェクトとして返します。

file

Javaプロパティ・ファイルの名前。

6.6 EDQトリガー・ポイントについて

この項では、カスタム・トリガーをコールできるEDQ内でのトリガー・ポイントについて説明します。

ログ・メッセージ

ログ・メッセージがシステムで生成されるたびにコールされます。

コンポーネント

説明

Path

/log/loggername

Env

null

Arguments

java.util.logging.LogRecord

Syslogメッセージ

高レベルsyslogログ・メッセージが生成されるたびにコールされます。source引数はイベント・ソースの詳細を含むJavaオブジェクトです。これは表示用の文字列に変換できます。

コンポーネント

説明

Path

/syslog

Env

env.event = event_name

env.source = event_source_as_string

Arguments

event_name, source, message

プロセス開始

プロセスの開始時にコールされます。この引数はプロセス構成の情報を含むJavaオブジェクトです。

コンポーネント

説明

Path

/runtime/engine/task/start

Env

env.project = project_name

env.projectID = project_ID

env.missionname = job_name

env.processname = process_name

Arguments

Task_context_object, process_options

プロセス終了

プロセスの終了時にコールされます。この引数はプロセス構成の情報を含むJavaオブジェクトです。

コンポーネント

説明

Path

/runtime/engine/task/end

Env

env.project = project_name

env.projectID = project_ID

env.missionname = job_name

env.processname = process_name

Arguments

Task_context_object, process_options

間隔終了

通常のプロセスの終了時または間隔モードで実行するプロセスの各間隔の終了時にコールされます。実行済レコードの数などの統計を返します。

コンポーネント

説明

Path

/runtime/engine/interval/end

Env

env.project = project_name

env.projectID = project_ID

env.missionname = job_name

env.processname = process_name

Arguments

Task_context_object, process_options, interval_number (>= 1), execution_statistics

ジョブ・フェーズ前

'フェーズ前'に対するジョブ構成の実行でコールされます。

コンポーネント

説明

Path

/missions/phase/pre

Env

env.project = project_name

env.projectID = project_ID

env.missionname = job_name

env.processname = process_name

Arguments

なし

ジョブ・フェーズ後

'フェーズ後'に対するジョブ構成の実行でコールされます。

コンポーネント

説明

Path

/missions/phase/post

Env

env.project = project_name

env.projectID = project_ID

env.missionname = job_name

env.processname = process_name

Arguments

なし

一致決定時

EDQが可能性のある一致について決定する必要のあるときにコールされます。これは関係決定トリガーと呼ばれています。関係決定トリガーは、一致を実行するために必要な、関係および決定データを返すメソッドを含むことができます。このトリガー・ポイントは一致レビューに特有です。

コンポーネント

説明

Path

/matchreview/relationship/decision/

Env

env.project = project_name

Arguments

TriggerInfoメソッドのリスト。それぞれに1つの関係のデータが含まれます。これらのメソッドの詳細は、第6.7項を参照してください。

6.7 TriggerInfoメソッドについて

この項では、TriggerInfoトリガー・ポイントに関連する各メソッドについて説明します。これらのメソッドは、一致レビューで使用されるTriggerInfoトリガー・ポイントに特有です。

表6-1 TriggerInfoトリガー・ポイントに関連するメソッド

メソッド

返されるデータ

説明

getPreviousMatchStatus()

文字列

決定の前に照合ステータスを返します。

getPreviousRealtionshipReviewStatus()

文字列

決定の前に関係レビュー・ステータスを返します。

getRelationshipId()

整数

関係IDを返します。

getRecordId()

整数

最初のレコードのIDを返します。

getInputId()

整数

最初の入力のIDを返します。

getRelatedRecordId()

整数

2番目のレコードのIDを返します。

getRelatedInputId()

整数

2番目の入力のIDを返します。

getReviewStatus()

文字列

新しい関係のレビュー・ステータスを返します。

getMatchStatus()

文字列

新しい照合ステータスを返します。

getRuleName()

文字列

関係を生成したルールの名前を返します。

getCommentUser()

文字列

コメントを作成したユーザーのユーザー名を返します。

getReviewComment()

文字列

作成されたコメントを返します。

getCommentDate()

日付

コメントが作成された日時を返します(コメントが存在する場合)。

getReviewedUser()

文字列

レビューを実行したユーザーの名前を返します。

getReviewDate()

日付

レビューが実行された日時を返します。

SourceAttribute getRecordSourceAttributes()

リスト

最初のレコードを構成するすべてのソース属性(列)を返します。

SourceAttribute getRelatedRecordSourceAttributes()

リスト

2番目のレコードを構成するすべてのソース属性(列)を返します。

getRecordAttributeValue(SourceAttribute sa)

値

最初のレコードの指定されたソース属性(列)の値を返します。

getRelatedRecordAttributeValue(SourceAttribute sa)

値

2番目のレコードの指定されたソース属性(列)の値を返します。

6.8 トリガー・レベルの設定

すべてのトリガー・ポイントには関連するレベル(java.util.logging.Level値)があります。デフォルトでは、INFOよりも低いレベルのトリガー・コールは無視されます。

このレベルを変更する1つの方法は、levels.propertiesという名前のファイルをconfigディレクトリのtriggersサブディレクトリに作成することです。このファイルには、デフォルトのレベルと、個別のパス用の1つ以上のオーバーライド・レベルの両方を含めることができます。例6-1では、デフォルトのレベルをFINEに設定し、パス/runtime/engine/.*用のレベルをFINERに設定しています。パターンとレベル・プロパティに対し独自の接頭辞を定義できます。

例6-1 トリガー・レベルの設定

default = fine
runtime.pattern = /runtime/engine/.*
runtime.level   = finer

レベルを変更するもう1つの方法は、トリガーにgetLevel関数を定義することです。詳細は、第6.4項を参照してください。

6.9 トリガーでのJMSの使用

トリガー・ファイル内でJava Message Service (JMS)を有効にするには、次の手順に従います。

1. 内部JavaScript JMSライブラリをロードします。

addLibrary("jms");

2. JMS構成を定義するプロパティをロードします。これらのプロパティは、EDQ構成ディレクトリに含まれている標準realtime.propertiesファイルからのJMS設定で拡張されます。このファイルのデフォルト・バージョンは、EDQにバンドルされているオープンソースのActiveMQ Message Brokerのプロパティを定義します。最小限、トリガーは、使用するJMSトピックまたはキューに名前を付ける、destinationプロパティの値を提供する必要があります。

3. JMSオブジェクトを作成します。

var jms = JMS.open(props);

4. テキスト・メッセージを送信します。

jms.send(str)

5. スクリプト・オブジェクトから作成されたJMSマップ・メッセージを送信します。

jms.sendMap(jsobj)

6. テキスト・メッセージを作成します。送信前にプロパティおよびヘッダー値をメッセージに設定することができます。

var msg = jms.createTextMessage(str)

7. マップ・メッセージを作成します。送信前にプロパティおよびヘッダー値をメッセージに設定することができます。

var msg = jms.createMapMessage(jsobj)

8. 先行する2つのメソッドのいずれかにより作成されたメッセージを送信します。

jms.sendMessage(msg)

6.10 ジョブ構成のトリガーの公開

トリガーはディレクタのジョブ・フェーズの構成中に、ジョブでの使用のために選択されます。これはジョブ・フェーズの前または後に実行するように設定することができます。構成画面でトリガーを選択できるようにするには、各トリガーが名前のリストを返すことができる必要があります。これにより必要に応じて1つのトリガーが複数のタスクを実行できるようになります。

トリガー名には次のコンポーネントがあります。

- トリガーのrun機能に渡される、内部ID。この機能の詳細は、第6.4項を参照してください。

- 表示可能なラベル

- グループ名

同じグループのトリガー名は、ジョブ構成画面で1つのノードとして表示されます。

新しいトリガー名を作成するには、次のようにします。

var n1 = new TriggerName(id, label)
n1.group = "My group";

トリガーからトリガー名を返すには、次のようにします。

トリガー名を返すには、次の例に示すように、getTriggerNames関数を使用します。

function getTriggerNames(path, env) {
var n1 = new TriggerName(id1, label1);
var n2 = new TriggerName(id2, label2);
...
n1.group = "My group";
n2.group = "My group";
...
return [n1, n2 ...]
}

getTriggerNamesの詳細は、第6.4項を参照してください。

6.11 トリガーの例

次に、カスタム・トリガーを使用する方法の例を示します。

注意:

このドキュメントでの例はJavaScriptですが、同じAPIがGroovyでも使用可能です。

例1 トリガーを使用したJMS経由でのログ・メッセージの送信

この例では、ロギング・ライブラリが、メッセージのフォーマット指定および出力に使用できるロギング・オブジェクトをインポートします。JMSプロパティ・ファイルはEDQ構成ディレクトリのtriggers/config/jms/jms.propertiesからロードされます。

// Test trigger for task running with JMS
addLibrary("logging");
addLibrary("jms");

function getPath() {
return "/log/com\.datanomic\..*";
}
function run(path, id, env, logrecord) {

var pfiles = config.getTriggerConfigFiles("jms",
"jms\\.properties");

if (pfiles.length > 0) {
var props = config.loadProps(pfiles[0]);

var jms = JMS.open(props);
var msg = logging.format(logrecord);
var len = msg.length;

// Remove trailing newlines

while (len > 0) {
var c = msg.charAt(len - 1);

if (c != '\n' && c != '\r') {
break;
}

len--;
}

jms.send(msg.substring(0, len));
jms.close();
}
}

例2 トリガーを使用したJMS経由でのSyslogメッセージの送信

この例では、最初の行(#! id : syslog)の特別なidディレクティブがトリガーの内部IDを定義します。同じIDで複数のトリガー定義がある場合、後のものが前のものを置き換えます。標準のEDQインストールでは、標準のロギングAPI経由でメッセージをログに記録する定義済syslogトリガーがあります。この例でのidディレクティブの追加により、JMS syslogトリガーが定義済トリガーを置き換えます。

#! id : syslog

// Test trigger for task running with JMS

addLibrary("logging");
addLibrary("jms");

function getPath() {
return "/syslog";
}

function getLevel() {
return Level.SEVERE;
}

function run(path, id, env, level, event, source, message) {

var pfiles = config.getTriggerConfigFiles("jms",
"jms\\.properties");
var props  = null;

if (pfiles.length == 0) {
logger.log(Level.WARNING, "syslogger called but no properties");
} else {

props = config.loadProps(pfiles[0]);

var jms    = JMS.open(props);
var xml    = <syslog level={level}><source>{source}</source><message>{message}</message></syslog>

logger.log(Level.INFO, "xml = {0}", xml.toXMLString());
jms.send(xml.toXMLString());
jms.close();
}
}

例3 ミッション・フェーズ通知用のトリガーの使用

この例では、1組のトリガー名が定義され、ジョブ構成画面に表示されます。この例ではトリガーがログ・メッセージを書き込みますが、JMS通知を送信するように構成することもできます。

// Test trigger for misssion phase notification

addLibrary("logging");

function getPath() {
return "/missions/phase/.*";
}

function run(path, id, env) {
logger.log(Level.INFO, "phase called with path {0} and id {1}", path, id);
}

function getTriggerNames(path, env) {
var n1 = new TriggerName("logme", "logme2");
n1.group = "logmegroup";

var n2 = new TriggerName("n2", "n2");
n2.group = "logmegroup";
return [n1, n2];
}

7 EDQファイルへのリモートからのアクセス

この章では、EDQディレクトリ内の特定のディレクトリへのアクセス方法について説明します。

EDQには、内部ファイル転送プロトコル(FTP)およびSecure File Transfer Protocol (SFTP)サーバーが付属しています。これらのサーバーでは構成ファイル領域およびランディング領域ファイルへのリモート・アクセスが可能です。

このFTPサーバーにアクセスするには、サードパーティのFTPクライアントから、有効なEDQユーザー名およびパスワードを使用し、director.propertiesファイルのftpserver.portで指定したポートに接続します。

SFTPサーバーは、director.propertiesのsshd.portプロパティで制御されます。デフォルト値は2222です。

次のディレクトリは、FTPおよびSFTPサーバー経由で使用できます。

ディレクトリ

説明

config

EDQベース構成ディレクトリ(edqhome)に対応します。

config1

EDQローカル構成ディレクトリ(edq.local.home)に対応します。

landingarea

EDQインストール環境のlandingareaディレクトリに対応します。

projectlandingarea

EDQインストール環境のプロジェクト固有のランディング領域に対応します。

commands

EDQベース構成ディレクトリ(edqhome)内のcommandareaディレクトリに対応します。

commands1

EDQローカル構成ディレクトリ(oedq_local_home)内のcommandareaディレクトリに対応します。

オラクル社の法律上の注意点について

コピーライトについて

Copyright © 1994-2015, Oracle and/or its affiliates.All rights reserved.

商標と登録商標について

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

制限付権利

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

ドラフトのアルファ版およびベータ版ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。オラクル社およびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。