新着情報

HOME > 開発者ブログ > intra-mart > intra mart でメモリキャッシュを利用する場合の注意点

intra mart でメモリキャッシュを利用する場合の注意点

 

Icons made by Good Ware from www.flaticon.com is licensed by CC 3.0 BY

 

 

intra mart でメモリキャッシュを利用する場合の注意点をご紹介します。

 

メモリキャッシュは無駄なDBアクセスやファイルアクセスを無くし、メモリ上に保存するこで
パフォーマンスが大幅に上がるよく利用する手段かと思います。

 

そこでintra-martでは標準として「EHCache」というキャッシュモジュールが搭載されています。

 

■Cacheサービス
https://www.intra-mart.jp/download/product/iap/development/script_programming_guide/texts/application/cache/index.html
※スクリプト開発モデルのプログラミングガイドですが、Javaでも利用可能です。

 

しかし、注意として場所によっては利用できません。

例えば、SSOユーザコードプロバイダ等のログイン前に動作する箇所ではテナントIDが取得できないため、利用することができません。


■Javaコード例(SSOユーザコードプロバイダ内で実行)

import jp.co.intra_mart.foundation.cache.Cache;
import jp.co.intra_mart.foundation.cache.CacheManager;
import jp.co.intra_mart.foundation.cache.CacheManagerFactory;

final CacheManager manager = CacheManagerFactory.getCacheManager();
final Cache<String, String> cache = manager.getCache(キャッシュ名);

 

すると、以下のエラーが発生します。

 

 java.lang.IllegalStateException: [E.IWP.CACHE.00005] テナントが指定されていません。

 

どうやら内部ではテナント毎にEhcacheManagerが管理されているようです。

 

この場合、テナントIDを取得できないような場所では手立てはありませんので、

「EHCache」モジュールを純正のまま利用することも可能です。
※利用の際は十分な検証をお願いします。

 

■純正のEHCacheをインポートする

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;

 

■Javaコード例

final CacheManager manager = CacheManager.getInstance();
final Cache cache = manager.getCache(キャッシュ名);

 

純正のEHCacheを利用した場合は、ガイドに記載のim-ehcache-config配下に配置した設定ファイルは読み込まれません。
※IMのEHCacheと純正のEHCacheで微妙に設定可能な項目が異なる為、EHCacheのドキュメントを参照してください。

 

以下の様に設定ファイルを明示的に指定することも可能です。

final CacheManager cacheManager = CacheManager.newInstance(getClass().getResource(XMLファイルのパス));

2017年09月12日(火)

テレマーケティングシステムsakuraトライアル

コールセンターシステム sakuraCTI

資料請求

お問合わせ

コラム

用語集

開発者ブログ

イントラマート

Sakuraテレマーケティングシステム

 

 

営業リスト

インフラソリューションのご案内

導入事例

テレアポノウハウ本プレゼントキャンペーン

認証マーク

アースリンクは
プライバシーマークを
取得しています。

プライバシーポリシー


SSLとは?

当サイトでは、実在性の証明とプライバシー 保護のためSSLサーバ証明書を使用しSSL 暗号化通信を実現しています。

このページの先頭へ