林檎と珈琲

Apple product(Macbook, iPhone, iPad) and Programming language(Java) .

Oracle CoherenceをEclipse上で実行させる(Cache Server編)

前回の記事にてCoherenceのインストールとMaven環境の構築まで完了しましたので今回はEclipse上でCoherenceのCache Serverを実行してみたいと思います。

以降の内容は、Coherenceのインストール及びMaven環境の準備が出来ている前提で書いています。
インストール及びMaven環境の構築がまだの場合は以下の記事を参考に準備してください。

akio-t.hatenablog.com

環境

バージョン
OS Mac OS X Yosemite 10.10.3
Java Oracle JDK 1.8.0_45
Maven Apache Maven 3.3.1
Eclipse Sprint Tool Suite 3.6.4
Coherence Oracle Coherence 12.1.3

Oracle Enterprise Pack for Eclipse(OEPE)のインストール

Coherenceにはいくつかの設定ファイルが必要となります。
これらの設定ファイルのベースを作成したり、コード補完機能を有効にする為にEclipseプラグインのOracle Enterprise Pack for Eclipseをインストールします。

今回はSTS版Eclipseに対し、プラグインのみの追加インストールを行います。

oepe1

oepe2 ※1 http://download.oracle.com/otn_software/oepe/12.1.3.6/luna/repository

oepe3

oepe4

インストール完了後にEclipseを再起動し、インストールは完了です。

pom.xmlの設定

Eclipseにて新規Mavenプロジェクトを作成し、pom.xmlへ以下の設定を追加します。

  • Javaバージョンの指定
  • ソースの文字コード指定
  • Coherenceライブラリの追加

pom.xml例

Cache定義の作成

Coherenceでは、デフォルトキャッシュ定義が存在し基本的に何の設定を追加せずともCacheライブラリとして使用する事が可能ですが、せっかくなのでデフォルトとは別のCache定義を作成して実行させたいと思います。

Cache定義を追加するには、Cache定義用の設定ファイルを作成する必要があります。

先ほどOEPEをインストールしましたので、そのプラグインを使って設定ファイルのベースを作成します。

cache-config1

cache-config2

cache-config3

設定内容の説明については今回は割愛しますが、今回はいつかあるCoherenceのCacheのタイプで分散Cacheの形式にて設定ファイルを定義しています。

Cache定義ファイル例(cache-config.xml)

Cache Serverプロセスの起動

Cacheの準備が出来ましたので、Cache Serverプロセスを起動させてみます。

以下の手順にてCache Serverプロセスを起動させます。

cache-server1

cache-server2

cache-server3 ※1 com.tangosol.net.DefaultCacheServer

cache-server4 ※2 VM引数として以下を設定

VM引数 説明
tangosol.coherence.distributed.localstorage true Cache情報を保持させるプロセスの場合はtrue
tangosol.coherence.cacheconfig cache定義ファイルパス 作成した定義ファイルへのパス
tangosol.coherence.localport 任意のポート Coherenceとの接続を行う為のポート

コンソールウィンドウに以下の様なログが出力されます。

2015-05-30 19:15:50.994/0.517 Oracle Coherence 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational configuration from "jar:file:/Users/akio/.m2/repository/com/oracle/coherence/coherence/12.1.3-0-0/coherence-12.1.3-0-0.jar!/tangosol-coherence.xml"
2015-05-30 19:15:51.043/0.566 Oracle Coherence 12.1.3.0.0 <Info> (thread=main, member=n/a): Loaded operational overrides from "jar:file:/Users/akio/.m2/repository/com/oracle/coherence/coherence/12.1.3-0-0/coherence-12.1.3-0-0.jar!/tangosol-coherence-override-dev.xml"

<中略>

Services
  (
  ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=12.1.3, OldestMemberId=1}
  InvocationService{Name=Management, State=(SERVICE_STARTED), Id=2, Version=12.1.3, OldestMemberId=1}
  PartitionedCache{Name=sampleCacheService, State=(SERVICE_STARTED), LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=0, BackupPartitions=0, CoordinatorId=1}
  )

Started DefaultCacheServer...

2015-05-30 19:15:55.834/5.356 Oracle Coherence GE 12.1.3.0.0 <D5> (thread=DistributedCache:sampleCacheService, member=1): This member has become the distribution coordinator for MemberSet(Size=1
  Member(Id=1, Timestamp=2015-05-30 19:15:52.149, Address=192.168.59.3:35100, MachineId=21251, Location=site:,process:42492, Role=CoherenceServer)
  )

上記のログで以下の一文が出力されていれば、正常に定義したCacheのサービスが起動している事になります。

PartitionedCache{Name=sampleCacheService, State=(SERVICE_STARTED), LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=0, BackupPartitions=0, CoordinatorId=1}

まとめ

今回はEclipse上でCoherenceのCache Serverプロセスを起動させてみました。
次回はこのCache ServerへアクセスするCache Clientを作成してみたいと思います。

ちょっと画像を編集するのに時間がかかっちゃっているので、次回からは出来るだけ画像抜きで書こうかと・・・。
いえ、決して面倒くさくなってきたわけじゃないですからね!?(´・ω・`)