2010-01-06 6 views
3

Google App Engine Datastore에 JDO 레벨 2 캐시를 사용하는 것이 가능합니까?Google App Engine의 Datanucleus/JDO 레벨 2 캐시

우선 Google의 페이지에서 이에 대한 문서가없는 이유는 무엇입니까? 거기에 몇 가지 문제가 있습니까? Memcache 할당량을 보호하기 위해 제한을 설정해야합니까?

DataNucleus on Stackoverflow에 따르면, 다음과 같은 지속성 속성을 설정할 수 있습니다

datanucleus.cache.level2.type=javax.cache 
datanucleus.cache.level2.cacheName={cache name} 

모든인가요? 캐시 이름을 선택할 수 있습니까?

Othersources 다른 설정을 사용하는 인터넷 보고서.

또한 DataNucleus Cache support plugin을 다운로드해야합니다. 적절한 버전은 무엇입니까? 그리고 우리는 단지 WEB-INF/lib에 그것을 배치합니까, 아니면 그것을 활성화하기 위해 더 많은 설정이 필요합니까?

+0

어디서나 이걸 가지고 있니? JDO 레벨 2 캐시와 JCache 구현 사이에 Google 워드 프로세서가 언급하는 것을 결정하려고하는데,이 주제에 대한 워드 프로세서/토론이 부족한 것 같습니다. – tempy

+1

아니요. 어디에도 없습니다. 저수준 데이터 저장소 API (또는 그 위에 대체 라이브러리)를 사용할 생각입니다. JDO는 나를 위해 너무 많은 블랙 박스를 얻고 있습니다. – Thilo

+1

우리는 크고 불행한 클럽에 속해있는 것 같습니다./ – tempy

답변

1

L2 캐싱 및 GAE/J와 관련하여 알려진 문제가 없습니다. 사람들이 문제가 있다면 어쩌면 Google에보고해야합니다. 원하는대로 캐시 이름을 설정하십시오. Memcache에 들어간 모든 것은 Serializable이어야합니다. Memcache가하는 일이기 때문에 분명합니다. 예, datanucleus-cache 플러그인 (ver 1.x)이 필요하며 다른 DN jar와 같은 위치에 두어야합니다. 어느 날 구글은 대신 문제가있는 DN 2.x에서에게 것 같다

+0

왜 Entity 클래스가 Serializable이 필요합니까? DataNucleus는 이미 저수준 데이터 스토어로 변환 할 수 있습니다 .Entity는 이미 Serializable입니다. – Thilo

3

이 알아낼 전에, 당신은 하나의 질문에 대답해야합니다 :

어떤 버전의 DataNucleus를 사용하고 있습니까?

이 게시물의 모든 내용은 이전 버전의 플러그인 (v1)과 관련이 있습니다. 최근에야 Eclipse 용 Google 플러그인이 기본적으로 AppEngine 용 DataNucleus 플러그인 v2 (AppEngine과 DataNucleus Core 간의 도관)를 지원합니다.

AppEngine 용 Datanucleus 플러그인의 v2로 업그레이드하는 것이 좋습니다. Eclipse를 사용하는 경우 v1 또는 v2를 선택할 수있는 UI가 있습니다. 프로젝트 속성으로 이동하여 App Engine 설정을 찾고 "Datanucleus JDO/JPA 버전"을 찾으십시오.

또한 jdo-config.xml을 변경해야합니다. 특히, 당신은 단지 하나 개의 속성 변경해야합니다 : SO

<property name="javax.jdo.PersistenceManagerFactoryClass" value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/> 

을 - 당신이 v2로 업그레이드하면, 이것은 당신이 캐싱 (jdoconfig.xml 할 수있는 별도)를 지정하는 방법입니다

<property name="datanucleus.cache.level2.type" value="jcache"/> 
<property name="datanucleus.cache.level2.cacheName" value="NameItWhateverYouWant"/> 

을 이 시점에서, 캐싱은 PersistenceManager를 넣고 사용할 때마다 자동으로 발생해야합니다. 만세!