Приветствую Вас Гость!
Пятница, 19.04.2024, 20:07
Главная | Регистрация | Вход | RSS

Advert

Категории раздела

Администрирование ОС [2]
Вопросы администрирования ОС
Виртуализация ОС [2]
Технологии виртуализации
Программирование [19]
Вопросы программирования и проектирования (OpenSource, Java, DSP, Portal, SSO, Identity, Collaboration, WebSerives, ORM, RDBMS, SOA, SOA Secutity etc.)
Общие Вопросы [8]
Общие жизненные вопросы...
Программирование Java [15]
Программирование Java - технология Java SE
Программирование Java EE [1]
Программирование Java - технология Java EE
Обучение программированию [1]
Обучение программированию - курсы, источники в интернете, учебные материалы
Oracle [5]
Oracle, Java, jDeveloper, Oracle Application Express, Oracle Database Express Edition

Наш опрос

Оцените мой сайт
Всего ответов: 32

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0

Реклама

Вход на сайт

Меню сайта

Поиск

Календарь

«  Декабрь 2008  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
293031

Архив записей

Друзья сайта

DSA.Statistics

Дневник

Главная » 2008 » Декабрь » 8 » Java Caching System (JCS) простой пример - есть с чего начать
15:13
Java Caching System (JCS) простой пример - есть с чего начать

JCS (Java Caching System) - библиотека, позволяющая реализовать эффективное кеширование данных в приложении (в том числе и Веб).

Возможности

  • создание кеша в ОП, на диске, кеша с доступом по сетевым протоколам (UDP, RMI)
  • организация распределенного кеша

Преимущества

  • простота использования
  • гибкость (перекофигурирование черех конфигурационный файл)
  • высокая скорость работы

Страничка проекта

http://jakarta.apache.org/jcs/

Пример класса для работы с JCS

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package demojcssimple;

import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.jcs.JCS;
import org.apache.jcs.access.exception.CacheException;

/**
 *
 * @author dev
 */
public class DemoJCSClass {

  private JCS cache;

  public DemoJCSClass() {
  try {
  cache = JCS.getInstance("testRegion");
  } catch (CacheException ex) {
  Logger.getLogger(DemoJCSClass.class.getName()).log(Level.SEVERE, null, ex);
  }
  }

  public void addElement(String key, String value) {
  try {
  cache.put(key, value);
  } catch (CacheException ex) {
  Logger.getLogger(DemoJCSClass.class.getName()).log(Level.SEVERE, null, ex);
  }
  }

  public String getElement(String key) {
  return (String) cache.get(key);
  }
}

Пример вызова

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package demojcssimple;

import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.jcs.JCS;
import org.apache.jcs.access.exception.CacheException;

/**
 *
 * @author dev
 */
public class DemoJCSClass {

  private JCS cache;

  public DemoJCSClass() {
  try {
  cache = JCS.getInstance("testRegion");
  } catch (CacheException ex) {
  Logger.getLogger(DemoJCSClass.class.getName()).log(Level.SEVERE, null, ex);
  }
  }

  public void addElement(String key, String value) {
  try {
  cache.put(key, value);
  } catch (CacheException ex) {
  Logger.getLogger(DemoJCSClass.class.getName()).log(Level.SEVERE, null, ex);
  }
  }

  public String getElement(String key) {
  return (String) cache.get(key);
  }
}

Пример файла cache.ccf

# DEFAULT CACHE REGION
jcs.default=DC
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=1000
jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.default.cacheattributes.UseMemoryShrinker=false
jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.default.cacheattributes.ShrinkerIntervalSeconds=60
jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes
jcs.default.elementattributes.IsEternal=false
jcs.default.elementattributes.MaxLifeSeconds=21600
jcs.default.elementattributes.IdleTime=1800
jcs.default.elementattributes.IsSpool=true
jcs.default.elementattributes.IsRemote=true
jcs.default.elementattributes.IsLateral=true

# PRE-DEFINED CACHE REGIONS
jcs.region.testRegion=DC
jcs.region.testRegion.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes
jcs.region.testRegion.cacheattributes.MaxObjects=1000
jcs.region.testRegion.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.region.testRegion.cacheattributes.UseMemoryShrinker=false
jcs.region.testRegion.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.region.testRegion.cacheattributes.ShrinkerIntervalSeconds=60
jcs.region.testRegion.cacheattributes.MaxSpoolPerRun=500
jcs.region.testRegion.elementattributes=org.apache.jcs.engine.ElementAttributes
jcs.region.testRegion.elementattributes.IsEternal=false

# AVAILABLE AUXILIARY CACHES
jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory
jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes
jcs.auxiliary.DC.attributes.DiskPath=c:/temp
jcs.auxiliary.DC.attributes.MaxPurgatorySize=10000000
jcs.auxiliary.DC.attributes.MaxKeySize=1000000
jcs.auxiliary.DC.attributes.MaxRecycleBinSize=5000
jcs.auxiliary.DC.attributes.OptimizeAtRemoveCount=300000
jcs.auxiliary.DC.attributes.ShutdownSpoolTimeLimit=60

Возможные проблемы

1. Failed to load properties for name [/cache.ccf]

Решение Файл cache.ccf должен непосредственно располагаться в папке src

2. Exception in thread "main" java.lang.NoClassDefFoundError: EDU/oswego/cs/dl/util/concurrent/Channel

Решение скачать http://www.java2s.com/Code/JarDownload/concurrent-1.3.4.jar.zip (ровно как и другие библиотеки необходимые для работы (см. http://jakarta.apache.org/jcs/dependencies.html))

Полезные ссылки

Полный список зависимостей http://jakarta.apache.org/jcs/dependencies.html

Полный исходный текст

http://dsa.ucoz.ru/demo_sources/demoJCSSimple.zip

Категория: Программирование | Просмотров: 3209 | Добавил: Dsa | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
blEnt29