JPOUG Tech Talk Night #2 で話した内容に飲み会で質問された内容を加えています。Read less
JPOUG Tech Talk Night #2 で話した内容に飲み会で質問された内容を加えています。Read less
これはJava EE Advent Calendar 2013の21日目 昨日は[twitter:@Hachiro808]さんのThymeleafを業務で使いたいでした。 皆様はJPAのL2キャッシュというものをご存知でしょうか。 L2キャッシュとは エンティティをキャッシュし、複数のスレッド間でエンティティを使ってデータをやりとりする場合にいちいちデータベースにアクセスしなくて良くするためのキャッシュです。 普通にエンティティのキャッシュです。ちなみにL1キャッシュというのもありまして、そちらは同じスレッド内で同じエンティティを取得する場合に毎回DBにアクセスしに行かなくて良くするためのキャッシュです。 詳しくはOracleの人が書いた資料があったのでそちらを参照してください。 JPAのキャッシュを使ったアプリケーション高速化手法 超クセモノなL2キャッシュ とまあ、字面だけ見ると非常に
といっても、起動してみた程度だけど。 Infinispanってなに? Infinispanは、JBoss Cacheを前身とする、「データグリッド」プラットフォームです。と書いてあります。わかりやすい言葉でいうと、キャッシュサーバーです。 http://www.jboss.org/infinispan 今回は、Downloadからたどってinfinispan-5.0.0.BETA2-all.zipを落としました。 使いかたは、このgetting startedがわかりやすいです。 Getting Started with Infinispan とりあえず使う とりあえず使ってみます。zipを展開したところにあるinfinispan-core.jarとlibフォルダのすべてのjarをクラスパスに通します。 import org.infinispan.Cache; import org.inf
さて、分散データグリッドのInfinispanですが、いまだにInterspinとかInfospamとかInfinispecとか、名前なんだったか覚えてないですって話じゃなくて、代表的メモリキャッシュであるmemcachedと同じインタフェースをもってるんでmemcachedの代わりにつかってみましょうという話です。 memcachedプロトコルで接続するためには、プロトコルにhotrodではなくてmemcachedと指定してサーバーを起動します。 > bin/startServer.sh -r memcached で、接続してみます。 今回はspymemcachedというJava用memcachedクライアントライブラリを使ってみます。 ここから、memcached-2.5.jarをダウンロードしてクラスパスに通します。 http://code.google.com/p/spymemca
Ehcacheとは? Ehcacheは米TerracottaによるオープンソースのキャッシュライブラリでApache License, Version 2.0の下で提供されている。豊富な機能が提供されており、Javaのキャッシュライブラリとしての定番として広く利用されている。JMXによるモニタリングや、Terracottaによるレプリケーション、RESTやSOAP経由でキャッシュサーバとしての利用も可能など、非常に高機能だ。 Ehcacheの本稿執筆時点の最新の安定板は2.0.1となっている。本稿ではこのバージョンをもとにEhcacheの基本的な利用方法を紹介する。また、最近リリースされたEhcache 2.1.0-betaの新機能についても簡単に紹介する。 Ehcacheを使ってみよう Ehcacheを利用するにはクラスパスルートにehcache.xmlという設定ファイルを配置しておく必
オープンソースのJavaのキャッシュライブラリというとEhcacheとOSCacheが有名です。どちらも基本的な機能は似ていますが、いろいろと違いもあります。 単純に機能面で見るとEhcacheのほうがJMXでモニタリングが可能だったり、トランザクションに対応していたり、RESTやSOAPでアクセスするキャッシュサーバとしての利用が可能だったり、Terracottaでレプリケーションができたりなど、かなり高機能です。デコレータという仕組みで機能を追加することもできるようになっていますし、ディスクキャッシュにスプールバッファが設定できるなど性能面の配慮も行き届いている印象です。 これだけだとOSCacheの出番がなさそうですが、OSCacheはキャッシュエントリをグループ化することができるという特徴があります。1つのエントリを複数のグループに割り当てることもでき、グループ単位でキャッシュを削
ehcache.xmlでのキャッシュ設定 Ehcacheではクラスパスルートのehcache.xmlというXMLファイルで設定を行います。設定項目はかなり多岐に渡りますが、中でも肝になるキャッシュの設定について調べてみました。もちろんここで書いている項目以外にもクラスタリングやらトランザクションやら様々な設定がありますが、それらについてはまた別の機会にということで。 maxElementsInMemory メモリに格納する最大エントリ数、0の場合は無制限 eternal trueを指定した場合タイムアウト値は無視される timeToIdleSeconds キャッシュのアイドル秒数を指定、0の場合は無制限(デフォルトは0) timeToLiveSeconds キャッシュの有効秒数を指定、0の場合は無制限(デフォルトは0) overflowToDisk メモリへの格納数をこえた場合にディスクに
S2Click 1.0.3をリリースしました。 http://s2click.sandbox.seasar.org/ このバージョンはS2Click 1.0.2でClickのJARファイル内に含まれるリソースの自動デプロイに関する問題を修正したバージョンになります。 Seasar2徹底入門で紹介しようと思い、途中まで原稿も書いていたS2Cachingについてですが、せっかくなのでこのブログで紹介しておこうと思います。 S2CachingはAOPで任意のメソッドの呼び出しをインターセプトし、戻り値をキャッシュするための機能を提供します。バックエンドのキャッシュライブラリとしてEhcacheを使用しています。 S2Cachingを使うには以下のURLからs2caching-0.1-SNAPSHOT.jarをダウンロードし、クラスパスに追加します。 http://s2caching.sandbo
米Terracottaは3月9日(米国時間)、オープンソースのJavaキャッシュ技術の最新版「Ehcache 2.0」を公開した。オープンソース版を同社のダウンロードページより入手できる。 EhcacheはTerracottaが2009年8月に買収したオープンソースのJavaキャッシュ技術。Javaオブジェクトをキャッシュする機構を提供するもので、これによりJavaアプリケーションの性能改善やデータベースへの負荷を抑えることができる。 Ehcache 2.0の新機能として、まずオープンソースのO/Rマッピングフレームワーク「Hibernate」のセカンドレベルキャッシュとしてEhcacheを利用できるようになった点が挙げられる。分散キャッシュにも対応し、アプリケーションに変更を加えることなしに容易ににクラスタ化が行えるようになる。「Grails」などのフレームワークを利用して構築したアプリ
少し前にOSCache(オープンソースのJavaキャッシュライブラリ)のバグで悩まされたことがあったので書いておきます。たぶん以下のバグレポートが該当のバグだと思います。 http://jira.opensymphony.com/browse/CACHE-309 OSCacheはメモリキャッシュとディスクキャッシュを選択することができるのですが(併用することもできます)、ディスクキャッシュを使用する場合、一度も読み込まれていないキャッシュはflushGroup()メソッドを呼んでも削除されないという問題がありました。OSCacheはディスクキャッシュを行う場合でもキーだけはメモリ上に保持しています。ただし、一度もディスクから読み込んでいないエントリについてはキー自体がメモリ上に存在しない状態になっています。flushGroup()メソッドはメモリ上にキーが存在するエントリだけを削除するため
OSCacheではキャッシュの振る舞いに関する設定をクラスパスルートのoscache.propertiesという設定ファイルで行います。以前の日記で一度書いたのですが、消えてしまったのでメモを兼ねてもう一度書いておきます。ちなみにOSCacheの設定ファイルリファレンスの原文はこちらです。 cache.memory メモリキャッシュを行うかどうかをtrueまたはfalseで指定します。デフォルトはtrueです。 cache.capacity キャッシュを保持する最大数を指定します。デフォルトは無制限です。 cache.algorithm キャッシュアルゴリズムを指定します。キャッシュサイズが指定されない場合、このプロパティの設定内容に関わらず無制限のキャッシュになります。キャッシュサイズを指定して、かつこのプロパティを指定しない場合、キャッシュアルゴリズムはcom.opensymphony
CacheManager manager = CacheManager.getInstance(); URL url = getClass().getResource("/package/anothername.xml"); CacheManager manager = CacheManager.create(url); CacheManager manager = CacheManager.create("src/config/ehcache.xml"); manager.shutdown(); Cache cache = manager.getCache("sampleCache1"); // Cache(String name, int maximumSize, boolean overflowToDisk, // boolean eternal, long timeToLiveSe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く