• 検索結果がありません。

Oracle ESB レッスン07: OEMS: DB PL/SQL用のJMS(AQ)

N/A
N/A
Protected

Academic year: 2021

シェア "Oracle ESB レッスン07: OEMS: DB PL/SQL用のJMS(AQ)"

Copied!
41
0
0

読み込み中.... (全文を見る)

全文

(1)

Oracle ESB

レッスン07:

OEMS: DB PL/SQL用のJMS(AQ)

(2)

OEMS

(Oracle Enterprise Messaging Services)

(3)

要件

このレッスンでは、

Oracle Database 10g (EE、XE、…)が必要です

(Oracle Oliteでは不十分)

(4)

目標

1. AQに対してJMSアダプタ

(インバウンド)を構成

する方法のデモ

2. PL/SQLのストアド・プロ

シ ー ジ ャ を 呼 び 出 す

Databaseアダプタの構成

方法のデモ

3. プロジェクトの開発から

本稼働までのプロモーシ

ョンの検討(および関連

するリソース・プロバイ

ダの考慮事項)

(5)

シナリオの概要

y ESBサービスがJMSトピック(OEMSデータ

ベースの永続性)において、新しい従業員

の通知をリスニングしている。

y このようなメッセージを受信した場合、会

社のデータベースへ新しい従業員を挿入す

るストアド・プロシージャを呼び出す。

(6)

構成の手順

ステップ

− DBアカウントの準備

− ストアド・プロシージャの作成

− AQで宛先の作成

− 新しいESBプロジェクトの作成

− インバウンドJMSアダプタの作成

− アウトバウンドDBアダプタの作成

− ルーティング・サービスの構成

− サーバー・リソース・プロバイダの

構成

− サービスの登録

− 実行

(7)

手順1 − チュートリアル・ファイルの解凍

y 解凍していない場合は、ESBSamples.zipをC:

¥

ESBSamples、

またはその他の場所に解凍する

y ESBSamples

¥

AQJMStoDBがあることを確認する

(8)

手順2 − データベース・アカウントの準備

y

DOSプロンプトをオープンし、このチュートリア

ルのディレクトリへ移動する

cd ¥ESBSamples

¥

AQJMStoDB

¥

sql

y

ORACLE_HOMEに実際のデータベース・インス

トレーションを設定する

例:

set ORACLE_HOME=D:

¥

D:

¥

ORACLE

¥

oraclexe

¥

app

¥

oracle

¥

product

¥

10.2.0

¥

server

y

アカウントの作成スクリプトを実行する

sqlplus sys as sysdba @accounts_create.sql

(プロンプトが表示された場合は、sysパスワード

を入力する)

(9)

手順3 − ストアド・プロシージャの作成

y sqlのディレクトリへ移動する

cd

¥

ESBSamples

¥

AQJMStoDB

¥

sql

y 提供されたストアド・プロシージャの作成

スクリプトを実行する

(10)

手順4 − AQで宛先の作成

(注: A JMS Topicは、AQ内でisTopicがtrueに設定

されているマルチコンシューマ・キューの表)

Cd ¥ESBSamples¥AQJMStoDB¥sql

提供されたSQLスクリプトを使用して、

JMSDEMO_TOPICという名前のJMSトピックに

必要なインフラストラクチャをデータベースに

作成する

(11)

手順5 − 新しいESBプロジェクトの作成

y JDevをオープンする

y デモ・アプリケーション

(左側のペイン)を右ク

リックして「New Project」

を選択する

y プロジェクト・ギャラリ

ーから、プロジェクトの

タイプとして「ESB

Project」を選択する

y プロジェクトに

「AQJMStoDB」という名

前を付ける

(12)

手順5a − インバウンドJMSアダプタ・

サービスの作成

y コンポーネント・パレット(画面の右側)をクリックする

y 「JMS Adapter」をプロジェクトにドラッグ・アンド・ドロッ

(13)

手順5b − インバウンドJMSアダプタ・

サービスの作成

1. サービスの名前として

「ListenForNewEmployees」と入

力する

2. 新しい「System/Group」として

「DefaultSystem.AQJMStoDB」を

作成する

1. 懐中電灯のアイコンをクリックする

2. プラス記号(+)をクリックする

3. 「ServiceGroup」を選択し、名前を

「AQJMStoDB」と入力する

(14)

手順5c − インバウンドJMSアダプタ・

サービスの作成

1. JMSアダプタ・サービスの作成のメイン画面に戻り、「Adapter Service WSDL」の

「Configure Adapter」アイコンをクリックする

2. サービスの「Name」を「ListenForNewEmployees」のままにして次へ進む

3. JMSプロバイダとして「Oracle Enterprise Messaging Service(OEMS)」を選択する

4. 永続性のドロップダウン・メニューから「Database」を選択して「Next>」を選択する

(15)

手順5d − インバウンドJMSアダプタ・

サービスの作成

1. 「Connection」の右側の「New」をクリックして、新しい接続を作成する

2. 「Connection Name」として「OEMS」と入力し、「Connection Type」として

「Oracle(JDBC)」を選択する

3. 認証の接続情報を次のように入力する

Username: jmsuser、Password: jmsuser

(16)

手順5e − インバウンドJMSアダプタ・

サービスの作成

1. 「Connection Details」画面で「Driver」が「thin」に、「Host Name」が「localhost」

に、「JDBC Port」が「1521」に、「SID」が「XE」に設定されていることを確認する

「Next>」をクリックする

(17)

手順5f − インバウンドJMSアダプタ・

サービスの作成

JMSアダプタのウィザードに戻る

1. 「Operation Type」として「Consume Message」を選択して「Next>」

をクリックする

2. 「Resource Provider」に「OEMS」と入力する

3. 「Destination Name」の右の「Browse... 」をクリックする

4. 「Destinations」フィールドの「All Types」および「JMSUSER」の下

位にある「JMSDEMO_TOPIC(topic)」を選択して、「OK」をク

リックする

(18)

手順5g − インバウンドJMSアダプタ・

サービスの作成

1.

「Next>」をクリックする

2.

「Message Schema」で「Schema Location」

の右側の「Browse... 」をクリックする

3.

「Import Schema File」のアイコン(右上)を

クリックする

4.

懐中電灯のアイコンをクリックし、このチ

ュートリアルを配置したディレクトリへナ

ビゲートする。ADDEMPLOYEES.xsdスキ

ーマを選択して「OK」をクリックし、「Add

to Project」チェックボックスが選択されてい

ることを確認して「OK」をクリックする

5.

「Imported Schemas」の

「ADDEMPLOYEES.xsd」を展開して

「InputParameters」を選択し、「OK」をクリ

ックする

6.

次へ進む

7.

終了する

8.

ESBは、JMSアダプタのルーティング・サ

(19)

手順5h − アウトバウンド

RDBMSアダプタの作成

1. コンポーネント・パレット(画面の右側)をクリックする

2. 「Database Adapter」を「NewEmployee.esb」プロジェクトにドラッグ・アンド・ドロップする

3. 「Next>」 、「Database Adapter」 、「Next>」の順にクリックし、サービスの「Name」に

「CreateEmployee」と入力する。

「System/Group」が「DefaultSystem.AQJMStoDB」に設定されていることを確認する

4. 「Adapter Service WSDL」で「Configure Adapter Service WSDL」アイコンをクリックすると、アダ

プタの構成ウィザードが開始される

(20)

手順5i − アウトバウンド

RDBMSアダプタの作成

1. サービスの「Name」を「CreateEmployee」のままにして、「Next>」をクリックする

2. 「Connection」の右側の「New」をクリックし、次のパラメータで新しい接続を作成する

3.接続テストが成功したことを確認し、

「Finish」をクリックする

1. Connection Name: "EmployeeDB"

2. Connection Type: "Oracle (JDBC)"

3. Username: "dbapp"

4. Password: "dbapp"

5. 「deploy password」を選択

6. Driver: "thin"

7. Host Name: "localhost"

8. JDBC Port: "1521"

9. SID: "XE"

(21)

手順5j − アウトバウンド

RDBMSアダプタの作成

1. アダプタの構成ウィザードに戻って「Next」

をクリックする

2. 「Operation Type」で「Call a Stored

Procedure or Function」を選択する

3. スキーマ画面で「DBAPP」を選択して

「Browse... 」をクリックし、「Stored

Procedures」で「ADDEMPLOYEES」を選択

して「OK」をクリックする

4. 「Next>」および「Finish」をクリックする

5. 「Create Database Adapter Service」画面に

戻って、Adapter Service WSDLの情報が挿

入されたことを確認して、「OK」をクリッ

クする

(22)

手順5k − ListenForNewEmployees

ルーティング・サービスの構成

1. 「ListenForNewEmployees」ルーティング・

サービスをダブルクリックする

2. 「Routing Rules」タブを選択する

3. プラス記号(+)のアイコンをクリックし

てルールを追加する

4. 「ESB」で「Services in project」、

「DefaultSystem」、「AQJMStoDB」、

「CreateEmployee」、「CreateEmployee」サ

ービスを選択して「OK」をクリックする

5. 変換のアイコンをダブルクリックする

6. 「Create New Mapper File」を選択し、デフ

ォルトの名前を承認する

7. マッパーの左側で「EMPS」を選択し、それ

を右側の「EMPS」へドラッグする

「Auto Map Preferences」のデフォルトを

承認する

8. 保存して、マッパーのタブをクローズす

(23)

手順6 − 設計の完了

y 設計フェーズを完了後、プロジェクトをテスト

する

(24)

開発から本稼働へ、

プロジェクトのプロモート

プロジェクトをサーバーへ登録する前に、JDevで参照したリソースがサーバーでも使用で

きることを確認する。例: データソース

その他: サーバーでは実際に、設計中に使用したリソースとは別のリソースを使用する場

合もある。

(25)

非管理接続と管理接続

y

非管理モード

• WSDLで指定される接続情報

• デフォルトですぐに使用できる(これがランタイム接続とみな

され、ウィザードは設計時の接続情報を取得する)

y

管理モード(Toplink)

• JNDIエントリを介したoc4j-ra.xmlで指定される接続情報

• WSDLで参照される上記のJNDIエントリ

y

管理モード(OC4J)[推奨]

• data-sources.xmlで指定される接続情報

• oc4j-ra.xmlのJNDIエントリで参照される上記のデータソース

• WSDLで参照される上記のJNDIエントリ

(26)

非管理モードの注意事項

事前に構成されたリソース・プロバイダ(OC4J-JMS用など)

を使用していない場合、appサーバーの構成ファイルで更新が

必要である

例: データベース・プロバイダに対するJMSアダプタ

管理モードでは、次を編集する

1. oc4j-ra.xml

2. (data-sources.xml)

3. application.xml

非管理モードでは、次を編集する

1. application.xml

(27)

サーバーの構成

1. SOA Suiteをシャットダウンする

2. application.xmlおよびoc4j-ra.xmlをJMSアダプ

タに対して構成する

3. application.xmlおよびoc4j-ra.xmlをDatabase

Adapterに対して構成する

4. SOA Suiteを再起動する

5. ESBプロジェクトを登録する

6. テスト

(28)

手順7a −管理モードにおけるJMSアダプタの構成

プロジェクトで必要な値

リソース・プロバイダ名(A)

application.xmlと

(29)

手順7b − JMSアダプタ: データベース・リソース・

プロバイダの構成(application.xml)

y ESBサーバーをインストールする

%ESB_HOME%

¥

j2ee

¥

home

¥

configへナビゲートす

例:

cd D:

¥

ORACLE

¥

OracleESB_beta

¥

j2ee

¥

home

¥

config

y application.xmlをオープンして次のエントリを追加

する

(30)

手順7c

− JMSアダプタ: JMSコネクション・

ファクトリの構成(oc4j-ra.xml)

y ESBサーバーのインストールで、JMSアダプタをデプロイする

例:

D:

¥

ORACLE

¥

OracleESB_beta

¥

j2ee

¥

home

¥

applicationdeployments

¥

default

¥

JmsAdapter

y oc4j-ra.xmlをオープンして次のエントリを追加する

プロジェクトで指定したJNDI名(B)

任意の名前

プロジェクトおよびapplication.xmlで指

定したリソース・プロバイダ名(A)

(31)

手順7d − 管理モードにおけるDatabase Adapterの

構成

プロジェクトで必要な値

JNDI名(A)

oc4j-ra.xmlで使用

(32)

手順7e

− Database

Adapter(oc4j-ra.xml)

y ESBサーバーのインストールで、Database Adapterをデ

プロイする

例:

D:¥ORACLE¥OracleESB_beta¥j2ee¥home¥

applicationdeployments¥default¥DBAdapter

y oc4j-ra.xmlをオープンして次のエントリを追加する

プロジェクトで指定したJNDI名(A)

(33)

手順7f − Database Adapter(data-sources.xml)

y ESBサーバーをインストールする

%ESB_HOME%¥j2ee¥home¥configへナビゲートする

例:

cd D:

¥

ORACLE

¥

OracleESB_beta

¥

j2ee

¥

home

¥

config

y data-sources.xmlをオープンして次のエントリを追加する

Oc4j-ra.xmlで指定した

データソース名

(34)

手順7g

−サーバーの再起動

opmnctl stopall

opmnctl startall

デバッグ

次のログ・ファイルを見る

%ESB_HOME%

¥

j2ee

¥

home

¥

log

¥

home_default_group_1

¥

oc4j

¥

log.xml

%ESB_HOME%

¥

opmn

¥

logs

¥

default_group~home~default_group~1.log

(35)

手順8 − 登録

これは設計時(新しい従業員のプロビジョニン

グ・サービスをテストするとき)に実行する

y すべて保存する

y AQJMStoDBプロジェクトを右クリックし、

「Register with ESB」、

「LocalIntegrationServer」を選択する

y 確認のダイアログが表示される

(36)

手順9 − ESBコントロールのチェック

ESBコンソールをオープンする

http://localhost:8888/esb/esb/EsbConsole.html

(37)

手順10 − JMSメッセージを送信して

新しいサービスをトリガする

y

DOSプロンプトをオープンして、toolsの下のチュートリアル・ディレクトリへ移動する

例:

cd C:¥ESBSamples¥AQJMStoDB¥tools

y

setenv.batを編集して、実際の環境を反映させる(クラスパス)

y

oems.propertiesを編集して、サーバーの設定を反映させる(場所、ポート、sidなど)

y

次のようにメッセージを送信する

(38)

手順11 − ESBコントロールの実行のチェック

ESBコンソールをオープンする

http://localhost:8888/esb/esb/EsbConsole.html

右上の「Instances」をクリックする

「Search」の右の緑の矢印をクリックする

1つのインスタンスが次のように表示される

(39)

手順12 − sqlplusの実行のチェック

1. DOSプロンプトをオープンする

2. 次のコマンドを発行する

employee_tableに新しい従業員が追加されたことを確認

する

(40)
(41)

付録B − topic_create.sql

exec dbms_aqadm.create_queue_table(queue_table=>'JMSDEMO_QUEUE_TABLE',

queue_payload_type=>'sys.aq$_jms_text_message',multiple_consumers=>true);

exec dbms_aqadm.create_queue(queue_name=>'JMSDEMO_TOPIC',

queue_table=>'JMSDEMO_QUEUE_TABLE');

exec dbms_aqadm.start_queue(queue_name=>'JMSDEMO_TOPIC');

commit;

参照

関連したドキュメント

myocardial perfusion imaging; normal database; Japanese Society of Nuclear Medicine working group; coronary artery disease;

「第 3 章 SAS/ACCESS Interface to R/3 のインストール」では、SAS/ACCESS Interface to R/3 のインストールについて順を追って説明します。SAS Data Surveyor for

The database accumulates health insurance claims every month and specific health checkup data every year, resulting in one of the most exhaustive healthcare database of a national

Vondrák: Optimal approximation for the submodular welfare problem in the value oracle model, STOC 2008,

LicenseManager, JobCenter MG/SV および JobCenter CL/Win のインストール方法を 説明します。次の手順に従って作業を行ってください。.. …

注意: Dell Factory Image Restore を使用す ると、ハードディスクドライブのすべてのデ

サーバー費用は、Amazon Web Services, Inc.が提供しているAmazon Web Servicesのサーバー利用料とな

このマニュアル全体を読んで、Oracle Diagnostics Pack に同梱の Oracle Performance Manager、Oracle Capacity Planner、Oracle TopSessions および Oracle Event