エンタープライズ・アプリケーションでトランザクションのCoherenceを使用する

目的

このチュートリアルでは、トランザクションのコンテキスト内でCoherenceキャッシュを使用する方法について説明します。

所要時間

約1時間

概要

Oracle Coherenceは、トランザクション・フレームワークを提供します。このフレームワークは、次のようなさまざまな要素で構成されています。

シナリオ

Coherenceは、EJB、JMSなどを使用したトランザクションをサポートしており、通常、複数のトランザクションを1つのトランザクションに統合します。 このOracle By Example(OBE)では、いくつかの手順を実行して、トランザクション対応のキャッシュや1つ以上の他のトランザクション対応のリソースにアクセスする、簡単なWebアプリケーションを作成して配置します。

 



ソフトウェア要件とハードウェア要件(オプション)

必要なソフトウェアは、以下のとおりです。

前提条件:

このチュートリアルを始める前に、以下のことを確認してください。

.

WebLogic Server 10.3.4をダウンロードしてインストールしていること(Coherence 3.6およびEclipseとOracle Enterprise Pack for Eclipseを含む)。 Coherence 3.6が含まれたWebLogic Serverパッケージは、こちらからダウンロードできます。


Oracle CoherenceとOracle WebLogic Serverの開発環境をセットアップする方法(およびEclipse IDEの使用方法)について説明したチュートリアルが提供されています。 本チュートリアルを開始する前に、そちらのチュートリアルを完了してください (Oracle CoherenceおよびOracle WebLogic Serverをインストールし、本チュートリアルで必要になるWebLogic Serverドメインをセットアップする方法が記載されています)。 このチュートリアルを参照するには、次のリンクをクリックしてください。 Oracle CoherenceとOracle WebLogic Server:Eclipse開発環境の設定

製品のインストール場所には任意の場所を選択できますが、このチュートリアルではそれぞれに対して以下の汎用ラベルが使用されています。

  • $MIDDLEWARE_HOME:Oracle WebLogic Serverがインストールされている場所(現在のインストール・ドキュメントでは、BEA_HOMEになっています)
  • $WORKSPACE:Eclipseのワークスペースを作成する場所
  • $COHERENCE_HOME:Oracle Coherenceがインストールされている場所
  • $DOMAIN_HOME: WebLogic Serverドメインを作成する場所

.

   

次のドキュメントを参照すること。


アプリケーションを配置するWebLogic Serverドメインの作成

アプリケーションを実行する場所が必要です。 以下の手順で、アプリケーションを配置するためにEclipseから使用できる、シンプルなWebLogicドメインを作成します。

.

ドメイン構成ウィザードを使用してOracle WebLogic Serverドメインを作成する方法について説明しているドキュメントを参照します。このドメインの作成方法を説明しているドキュメントを参照するには、こちらをクリックします。

 

.

スタート」→「すべてのプログラム」→「Oracle WebLogic」→「WebLogic Server 11gR11」→「Tools」→「Configuration Wizard」の順に選択して、WebLogic Domain Configuration Wizardを実行します。


.

Welcomeダイアログ・ボックスで、「Create a new WebLogic domain」を選択し、「Next」をクリックします。

 

.

Select Domain Sourceダイアログ・ボックスで、すべてのオプションの選択を解除したままにして、「Next」をクリックします。

 

.

Specify Domain Name and Locationダイアログ・ボックスで、Domain nameフィールドに適切なドメイン名を入力します。Domain locationフィールドに、ドメインを配置するディレクトリへのパスを入力し、「Next」をクリックします。 このチュートリアルでは、ドメインにcoh_domainという名前を指定し、d:\domainsに配置しています。

 

.

Configure Administrator User Name and Passwordダイアログ・ボックスで、適切なパスワードを入力します。 このチュートリアルでは、Welcome1を使用しています。両方のパスワードが同一であることを確認し、「Next」をクリックします。

 

.

Configure Server Start Mode and JDKダイアログ・ボックスで、「Next」をクリックします。 このチュートリアルでは、Sun JDKを選択していますが、 JRockitを選択することもできます。

 

.

Select Optional Configurationダイアログ・ボックスで、すべてのチェック・ボックスの選択を解除したままにして、「Next」をクリックします。

 

.

Configuration Summaryダイアログ・ボックスで、値を確認して「Next」をクリックします。

 

.

Creating Domainダイアログ・ボックスが表示されます。Start Admin Serveチェック・ボックスの選択が解除されていることを確認し、進行状況が100%に達したら、「Done」をクリックします。

 

EclipseとOracle Enterprise Pack for Eclipseのアップグレード


Eclipse 3.6.1(コード名Helios)は、WebLogic Serverインストールに事前にパッケージ化された状態で提供されています。 事前にパッケージ化されたEclipseインストールには、Oracle Enterprise Pack for Eclipseが含まれています。ただし、事前にパッケージ化されたバージョンのEclipseを使用できないユーザーは、最新バージョンのOEPEにアップグレードする必要があります。既存のバージョンのEclipseにOEPEをインストールするには、以下の手順を実行します。 以下の手順は、HeliosバージョンのEclipseのインストールに関するものです。 以前のバージョンのサポートも存在しますが、インストールが異なる場合があります。 事前にパッケージ化されたバージョンを使用するユーザーは、アップグレード・プロセスを省略できます。一部の手順を実行して、最新バージョンのOEPEがインストールされていることを確認することもできます。

Eclipseのワークスペースの場所を選択するには、以下の手順を実行します。


.

Eclipseを起動します。

このチュートリアルでは、次のようなコマンドを使用して、コマンドラインからEclipseを起動できます。

D:\oracle\Middleware\oepe_11gR1PS3\eclipse.exe


または「すべてのプログラム」→「Oracle WebLogic」→「Oracle Enterprise Pack For Eclipse」の順にクリックします。
 

.

Eclipse Workspace Launcherが表示されたら、ワークスペースの場所を選択します。 このチュートリアルでは、D:\oracle\tutorialを使用しています。 以降、この場所を$WORKSPACEとします。

OK」をクリックします。


Oracle Enterprise Pack for Eclipseをインストールまたは更新するには、以下の手順を実行します。

注:Oracle Enterprise Pack for Eclipseについて、詳しくはこちらを参照してください。

.

Eclipseワークスペースを開いた状態で、「X」をクリックして、表示されているWelcome画面を終了します。


.

EclipseのHelpメニューから、「Install New Software」を選択します。


.

URL:http://download.oracle.com/otn_software/oepe/heliosを入力し、[Enter]を押します。Eclipse Heliosに利用できるすべての更新が表示されます。


.

Oracle Enterprise Pack for Eclipse」(展開された状態で表示)を選択し、「Next > 」をクリックします。


.

プロンプトの指示に従って、インストールを完了します。 完全なインストールを実行した場合、OEPEはWebLogic Server 10.3.4にインストール済みの状態になります。


エンタープライズ・アプリケーションと必要となるすべてのプロジェクトの作成


Eclipseは、複数のエンタープライズ・アプリケーション(WebアプリケーションやEJBなど)を1つのエンタープライズ・アプリケーション・プロジェクトにパッケージ化します。これらのプロジェクトは、Webアプリケーション、Enterprise JavaBeans、リソース、JARファイル、およびその他のリソースで構成されます。

エンタープライズ・アプリケーションの作成には、以下の手順が伴います。

エンタープライズ・アプリケーション・プロジェクトとランタイム環境を作成する


.

Eclipseを起動します。

.

まず、エンタープライズ・アプリケーション・プロジェクトを作成します。 「File」→「New」の順に選択し、「Project」を選択します(または[Ctrl]+[N]を押します)。ポップアップ・ウィンドウで、Java EEカテゴリの「Enterprise Application Project」を選択します。


Next > 」をクリックします。

Java EEカテゴリが表示されるまで、ウィンドウをスクロールする必要があります。

.

Project nameフィールドにプロジェクト名を入力します。 このチュートリアルでは、プロジェクトにCoherenceTXという名前を指定しています。「New Runtime」ボタンをクリックしてから、「Next > 」ボタンをクリックします。


注:以前にランタイムを作成している場合は、新しいランタイムを作成せずに、以前に作成したランタイムを選択できます。

.


Define a new server runtime environmentダイアログ・ボックスで、「Oracle WebLogic Server 11gR1 PatchSet3」を選択します。



Next > 」をクリックします。


.


Define a WebLogic Runtimeダイアログ・ボックスで、WebLogic homeフィールドにWebLogic Serverインスタンスへの完全修飾パスを入力します。 このチュートリアルでは、WebLogicはD:\oracle\Middlewareにインストールしており、Browseボタンを使用して、インストースされたインスタンスを検索しています。 Java homeフィールドは自動的に入力されます。 このフィールドは空白のままにします。


Next > 」をクリックします。

.


ConfigurationセクションのDomain Directoryフィールドに、前に作成したドメインの完全修飾パスを入力します。 このチュートリアルでは、ドメインはD:\oracle\domains\coh_domainに作成しています。


Finish」をクリックします。

.


ターゲット・ランタイムが設定されたEARアプリケーション・プロジェクトは、次のように表示されます。



Next > 」をクリックします。

.


Configure enterprise application settingsダイアログ・ボックスで、Generate application.xml deployment descriptorチェック・ボックスが選択されていることを確認します。



Finish」をクリックします。

Java EEパースペクティブを開くことを示すOpen Associated Perspectiveダイアログ・ボックスが表示されたら、「Yes」をクリックします。

.


EclipseのProject Explorerペインに、空のエンタープライズ・アプリケーションが表示されます。展開した場合、次のように表示されます。



アプリケーションに多くのエラーが表示されます。 これは、エンタープライズ・アプリケーションがEJB、Webアプリケーション、およびその他のアーチファクトに依存しているためです。

動的なWebプロジェクトを作成する

.

まず、エンタープライズ・アプリケーション・プロジェクトを作成します。 「File」→「New」の順に選択し、「Project」を選択します(または[Ctrl]+[N]を押します)。ポップアップ・ウィンドウで、Webカテゴリの「Dynamic Web Project」を選択します。


.


プロジェクト名を入力します。 このチュートリアルでは、プロジェクトにCoherenceWEBという名前を指定しています。EAR membershipセクションで、Add project to an EARチェック・ボックスが選択されていることを確認します。 CoherenceTX EARプロジェクト名が自動的に選択されます。 ワークスペースにその他のEARプロジェクトがある場合、「CoherenceTX」プロジェクトを選択します。



.


Javaダイアログ・ボックスで、変更を加えずに「Next > 」をクリックします。


.


Web Moduleダイアログ・ボックスで、変更を加えずに「Finish」をクリックします。 Generate web.xml deployment descriptorチェック・ボックスが選択されています。 「Finish」をクリックします。



トランザクションのCoherenceを使用するためのエンタープライズ・アプリケーションの構成

Coherenceは、リソース・アダプタを使用してトランザクションをサポートします。 リソース・アダプタを使用するには、多くのアプリケーション設定とファイルを変更する必要があります。 以下のような変更が必要になります。

エンタープライズ・アプリケーションを準備する


Coherenceでの使用に備えて、次の3つの方法でエンタープライズ・アプリケーションを準備する必要があります。

.

サポート・マテリアルをダウンロードします。 これらのサポート・マテリアルは、コード、XMLスニペット・ファイル、およびその他の便利なリソースを組み合わせたものです。これらのリソースは、こちらからダウンロードできます。

.

一時的な場所にファイルを解凍します。 このチュートリアルでは、これらのファイルはダウンロード後、デスクトップのcoh_tx_obe_supportディレクトリに展開しています。

.

CoherenceTXアプリケーションを展開すると、CoherenceTX\EarContentフォルダが表示されます。

.

coh_tx_obe_support\coherenceディレクトリから、coherence-transaction.rarファイルをCoherenceTX\EarContentディレクトリにドラッグします。 CopyまたはLinkを選択するよう表示されたら、「Copy」を選択し、「OK」をクリックします。更新されたアプリケーションは、次のように表示されます。



Coherenceトランザクション・アダプタの追加は、コネクタとしてアプリケーションに登録する必要があります。

.

CoherenceTX\EarContent\META-INFディレクトリに移動して、application.xml.を開きます。

.

Designタブで、最後のモジュール・エントリを選択します。 右クリックし、「Add After」を選択します。 新しいコネクタで、tokenをコネクタのRARファイルの名前であるcoherence-transaction.rarに置き換えます。

.

Sourceビューで、更新されたapplication.xmlファイルは次のように表示されます。



変更を保存します。

.

最後に、CoherenceTX/EarContent/APP-INF/libディレクトリに移動します。

.

ダウンロード・ディレクトリcoh_tx_obe_support/coherenceから、「coherence.jar」をクラス・ディレクトリにドラッグします。

CopyまたはLinkを選択するよう表示されたら、「Copy files」を選択し、「OK」をクリックします。

最終的には、次のように表示されます。


Coherenceキャッシュ構成を準備する


次の手順を実行して、Coherenceキャッシュ構成を準備する必要があります。

.


CoherenceTX\EarContent\APP-INF\classes」フォルダを展開します。

.

ダウンロード・ディレクトリcoh_tx_obe_support/coherenceから、「coherence-cache-config.xml」をclassesディレクトリにドラッグします。

CopyまたはLinkを選択するよう表示されたら、「Copy files」を選択し、「OK」をクリックします。

.


ファイルを開き、ソース・ビューで下方向にスクロールして、<caching-scheme-mapping>セクションを見つけます。

.

caching-scheme-mapping要素の直後に、次のような新しいキャッシュ・マッピングを追加します。
   
<cache-mapping>
      <cache-name>tx-*</cache-name>
      <scheme-name>example-transactional</scheme-name>
</cache-mapping>

この追加のような貼り付け可能なXMLのスニペットは、coh_tx_obe_support/xml/coherence-cache-config.snippet.txtファイルにあります。

.

完全な追加は次のようになります。新しいコードは太字で示されています。

 <caching-scheme-mapping>
    <cache-mapping>
        <cache-name>tx-*</cache-name>
        <scheme-name>example-transactional</scheme-name>
    </cache-mapping>
<cache-mapping>

.

<caching-schemes>セクションを見つけます。

.

<caching-schemes>要素の直後に、次のように新しいスキーマを追加します。

<transactional-scheme>
      <scheme-name>example-transactional</scheme-name>
      <scheme-ref>base-transactional</scheme-ref>
      <thread-count>10</thread-count>
 </transactional-scheme>
 <transactional-scheme>
      <scheme-name>base-transactional</scheme-name>
      <service-name>TransactionalCache</service-name>
      <request-timeout>30000</request-timeout>
      <autostart>true</autostart>
</transactional-scheme>

この追加のような貼り付け可能なXMLのスニペットは、coh_tx_obe_support/xml/coherence-cache-config.snippet.txtファイルにあります。

.


変更を保存し、エディタを終了します。

Webアプリケーションを準備する


アプリケーションおよびアプリケーションの構成に応じて、WebアプリケーションがCoherenceディレクトリにアクセスできる場合とできない場合があります。ただし、そのようなことは少なくないため、必要な構成をここに示します。このチュートリアルのアプリケーションは、実際にCoherenceを参照しています。

.


前に作成した「CoherenceWEB」アプリケーションを選択します。



.


右クリックし、「Properties」を選択します。

.


Propertiesダイアログ・ボックスで、「Java Build Path」を選択し、「Libraries」タブをクリックします。



.


Add External JARs」をクリックし、JAR Selectionダイアログ・ボックスでd:\oracle\Middleware\coherence3.6\libフォルダに移動し、「coherence.jar」ファイルを選択します。



Open」をクリックします。

.


Java Build Pathダイアログ・ボックスにcoherence.jarファイルが表示されます。



OK」をクリックします。

.


メニューから、「File」→「Import」の順に選択します。

.


Importダイアログ・ボックスで、「General」を展開し、「File System」を選択します。


Next > 」をクリックします。

.


Browseボタンを使用して、coherence obeサポートディレクトリの「code」フォルダを選択します。



OK」をクリックします。

.


Tests.java」クラスを選択します。




.


Into folderのBrowseボタンを使用して、「CoherenceWEB/src」を選択します。



Finish」をクリックします。

.


新しいクラスがCoherenceWEBアプリケーションに追加されます。



新しく追加されたテスト・クラスはJavaサーブレットであるため、Webアプリケーションに登録する必要があります。

.


Deployment Descriptor: CoherenceWeb」フォルダを展開します。




.


Servlets」を選択して右クリックし、「New」→「Servlet」の順に選択します。

.


Create Servletダイアログ・ボックスで、「Use an existing Servlet class or JSP」を選択し、インポートされたクラスTestsを参照します。



Finish」をクリックします。

.


すべて小文字のクラス名を使用して、クラスにサーブレットのデフォルト・マッピングが生成されました。


リソース参照を追加する

多くの場合、Webアプリケーションの環境設定には、環境参照を使用して外部からアクセスします。 Coherenceアプリケーションも同様で、環境参照を使用してアクセスし、トランザクション・キャッシュへの接続を作成します。環境参照を追加するには、アプリケーションで次の手順を行う必要があります。

.


CoherenceWEB/WebContent/WEB-INFフォルダに移動します。


.


web.xmlファイルを開いて「Source」タブをクリックし、<servlet- mapping>要素の後ろに次のようなリソース参照を追加します。

<resource-ref>
    <res-ref-name>eis/CoherenceTxCF</res-ref-name>
    <res-type>com.tangosol.coherence.transaction.ConnectionFactory</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

変更を保存します。

便宜上、webapp.snippet.web.txtという名前のスニペット・ファイルが、提供されたソースのこのリソース参照が含まれているXMLディレクトリに作成されます。

.


weblogic.xmlを開いて「Source」タブを選択し、<wls:context-root>要素の後ろに次のようなリソース記述を追加します。

<wls:resource-description>
    <wls:res-ref-name>eis/CoherenceTxCF</wls:res-ref-name>
    <wls:jndi-name>tangosol.coherenceTx</wls:jndi-name>
</wls:resource-description>

変更を保存します。

便宜上、webapp.snippet.weblogic.txtという名前のスニペット・ファイルが、提供されたソースのこのリソース記述が含まれているXMLディレクトリに作成されます。

配置とテスト

Eclipseでは、アプリケーションをパッケージ化して、アプリケーション・サーバーの実行中のインスタンスに展開できます。ただし、Eclipseでは、リソース・アダプタをパッケージする際、すべてのRARファイルが省略されます。 以下の手順で、エクスポートを使用してアプリケーションをパッケージ化し、WebLogic Server Consoleを使用して配置します。

  1. web.xmlを使用して環境参照を定義する
  2. weblogic.xmlを使用して参照のJNDI名を指定する

.


CoherenceTX」アプリケーションを選択します。

.

右クリックし、「Export」を選択し、「EAR file」を選択します。


.


エクスポート・ファイルの名前を入力します。 このチュートリアルでは、 D:\TEMP\CoherenceTX.earファイルを使用しています。



Finish」をクリックします。

.


Eclipseを最小化します。

.


コマンド・プロンプトを開いて、ディレクトリをCoherenceドメインを作成したディレクトリに変更します。 このチュートリアルでは、このディレクトリはd:\oracle\domains\coh_domainです。

.


次のようなコマンドを使用して、WebLogic Serverを起動します。

start d:\oracle\domains\coh_domain\startWebLogic.cmd

この起動コマンドは非常に便利です。

.


Firefoxなどの使い慣れたブラウザを開いて、次のURLを入力します。 http://localhost;:7001/console

.


ドメインの作成時に使用したユーザー名とパスワードを使用して、WebLogic Consoleにログインします。



.


Preferences」ボタンをクリックします。



.


Automatically Acquire Lock and Activate Changes」の選択を解除します。





Save」をクリックします。

.


Domain Structureペインで、「Deployments」をクリックします。



.


Summary of Deploymentsペインで、Deploymentsセクションの「Install」をクリックします。



.


Pathにエンタープライズ・アプリケーションをエクスポートしたディレクトリを指定し、一覧からアプリケーションを選択します。 複数のアプリケーションが存在する場合は、正しいアプリケーションを選択していることを確認します。 このチュートリアルでは、使用しているファイル名はCoherenceTX.earです。



Next」をクリックします。

.


Install Application Assistantペインで、Install this deployment as an applicationが選択されていることを確認します。



Next」をクリックします。

.


Optional Settingsペインでは、変更を加えません。



Finish」をクリックします。

.


Change Centerで、「Activate Changes」をクリックします。



.


別のタブで、URL:http://localhost:7001/CoherenceWEB/testsを入力してアプリケーションを実行します。




.


提供されたテストを試します。各テストを、それらのテストを実装するコードで比較します。


まとめ

このチュートリアルでは、Eclipseを使用してエンタープライズ・アプリケーションを作成し、リソース・アダプタを用いて作成したアプリケーションでCoherenceを使用できるようにする方法を検証しました。

このチュートリアルで学習した内容は、以下のとおりです。

参考資料


Hardware and Software Engineered to Work Together 会社情報 |オラクルとサン | Oracle RSS Feeds | 採用情報 | お問い合わせ | サイトマップ | 情報保護基本方針 | ウェブサイトのご使用条件 | 個人情報保護基本方針