EhcacheとTerracottaでキャッシュレプリケーション(2)Terracotta・Ehcache設定
次は、
1.Terracotta・Ehcacheの資産(.tar.gz)を用意し定義体も用意する。またTerracottaはTerracottaサーバにインストールする。
を行う。
1.Terracotta(Ehcache)ダウンロード
Terracottaは下記よりダウンロードした。
In-Memory Data Management for the Enterprise | Terracotta
トップページ>Products>Open Source>「No thanks, just take me to the download ›」>Terracotta Server Arrayの項より.tar.gzファイルをダウンロードした。
Terracottaの説明文を読むと、「This is compatible with Ehcache 2.6.8 and Quartz 2.1.7 only. Newer versions of Ehcache & Quartz may not be compatible with this」とある。
ダウンロードした.tar.gzファイル内にEhcache(Ehcache 2.6.8)の資産が入っているので、そちらを使用する。
2.定義体を作る(ehcache.xmlのみ)
用意すべき定義体は以下の通り。
ただし、今回Terracottaサーバの定義はデフォルトの定義を使用するため、tc-config.xmlは用意しない。Terrracottaサーバの多重化やセッションレプリケーションなどを行う場合は用意する必要がある。
→Ehcacheの資産として「ehcache.xml」が.tar.gzファイル内に格納されているのでそれを編集する。
コメントとサンプルは不要なので以下のように更新する。
<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" updateCheck="false" dynamicConfig="true"> <!--ディスクキャッシュの保存先の設定 --> <diskStore path="java.io.tmpdir" /> <!--デフォルトキャッシュの設定 --> <defaultCache /> <!-- Terracottaサーバの設定 --> <terracottaConfig url="(Terracottaサーバのホスト名・IPアドレス):9510" /> <!--APサーバ1号機用キャッシュの設定 --> <cache name="terracottaCacheAP01" maxElementsInMemory="100" maxElementsOnDisk="100" eternal="false" memoryStoreEvictionPolicy="LRU" timeToIdleSeconds="60" timeToLiveSeconds="60"> <!-- Terracottaサーバを利用するCacheには以下の一文を追記する --> <terracotta /> </cache> </ehcache>
APサーバ2号機にも同じ定義体を使用する。
→1号機と2号機で使用するキャッシュのキャッシュ名を同一にするため。
ehcache.xmlはサーバ側の資産を作るときに使用するので一旦おいておく。
3.Terracottaをサーバにインストールする。
→terracotta-3.7.7.tar.gzをサーバにアップロードし、解凍後「/usr/local」配下に置く。
(1)tar zxvf /home/(ftpユーザディレクトリ)/terracotta-3.7.7.tar.gz
(2)cp -ap /home/(ftpユーザディレクトリ)/terracotta-3.7.7 /usr/local/
4.Terracottaサーバ起動
(1)/usr/local/terracotta-3.7.7/bin/start-tc-server.sh
→「-f (定義体)」を指定することで定義体(tc-config.xml)を読み込ませることができる。
(2)Teratermで操作している場合、.shファイルを実行した後の操作は、「セッションの複製」より別窓を開いて操作するようにする。
(3)起動に成功すると以下のようなメッセージが標準出力に出力される。
[root@ip-xxx-xxx-xxx-xxx ~]# /usr/local/terracotta-3.7.7/bin/start-tc-server.sh 2014-05-05 07:18:34,386 INFO - Terracotta 3.7.7, as of 20140117-104005 (Revision 24356 by jenkins-slave@sfo-c64-jenkins-slave-007.eur.ad.sag from 3.7.7-rc) 2014-05-05 07:18:35,100 INFO - Successfully loaded base configuration from Java resource at '/com/tc/config/schema/setup/default-config.xml', relative to class com.tc.config.schema.setup.StandardXMLFileConfigurationCreator. 2014-05-05 07:18:35,184 INFO - Log file: '/root/terracotta/server-logs/terracotta-server.log'. 2014-05-05 07:18:37,792 INFO - Available Max Runtime Memory: 494MB 2014-05-05 07:18:40,237 INFO - JMX Server started. Available at URL[service:jmx:jmxmp://0.0.0.0:9520] 2014-05-05 07:18:46,375 INFO - Becoming State[ ACTIVE-COORDINATOR ] 2014-05-05 07:18:46,398 INFO - Terracotta Server instance has started up as ACTIVE node on 0:0:0:0:0:0:0:0:9510 successfully, and is now ready for work.
【注意】
Terracottaサーバの終了時はプロセスをkillせず、「stop-tc-server.sh」より終了する。
実行した.shのプロセスをkillするとJVM上にTerracottaのプロセスが残ってしまうので、
再度Terracottaサーバを起動しようとすると下記のエラーが出て怒られる。怒られた。
※エラーメッセージにもプロセスが多重に起動されているかも、という文言が出ていた。
java.lang.RuntimeException: Unable to setup StatisticsGathererSubSystem at com.tc.server.TCServerImpl.<init>(TCServerImpl.java:158) at com.tc.server.TCServerImpl.<init>(TCServerImpl.java:137) at com.tc.server.StandardServerFactory.createServer(StandardServerFactory.java:12) at com.tc.server.TCServerMain.main(TCServerMain.java:29)
次はTomcat上にのせる資産を作る。