| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 00:21:12
|
Sergio Lopes
Moderador
![[Avatar]](/images/avatar/8232e119d8f59aa83050a741631803a6.jpg)
Membro desde: 17/11/2003 00:22:10
Mensagens: 1368
Localização: São Paulo - SP
Offline
|
Oi pessoal!
Alguém aí usando o AppEngine com JPA conseguiu fazer o second-level cache funcionar?
Andei lendo por aí mas tá difícil (a documentação é terrível).
Estou usando o GAE 1.3.3.1 com datanucleus-cache-1.1.1. Configurei o persistence.xml com o cache usando javax.cache, coloquei Serializable nas entidades, mas toda vez que chamo um merge, acabo com uma:
Alguma ideia? Alguém está usando o cache de segundo nível com JPA no GAE?
PS. Estou pensando seriamente em não usar mais JPA e partir pro objectify ou twig... muita dor de cabeça esse datanucleus
Valeu
|
Sérgio Lopes - twitter: @sergio_caelum - blog pessoal: sergiolopes.org
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 08:31:11
|
ralphsilver
Java Ninja
![[Avatar]](/images/avatar/2b720b5359202de2d62768369718f694.jpg)
Membro desde: 09/03/2008 19:53:14
Mensagens: 269
Offline
|
Bom,
eu já utilizei o EhCache para fazer second-level no Hibernate EntityManager ... você quer que eu poste o código para você dar uma olhada? não tive nenhum problema com ele.
|
No mundo há apenas 10 tipos de pessoas: os que sabem binário e os que não sabem |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 11:03:51
|
Sergio Lopes
Moderador
![[Avatar]](/images/avatar/8232e119d8f59aa83050a741631803a6.jpg)
Membro desde: 17/11/2003 00:22:10
Mensagens: 1368
Localização: São Paulo - SP
Offline
|
Oi ralphsilver!
ralphsilver wrote:eu já utilizei o EhCache para fazer second-level no Hibernate EntityManager ... você quer que eu poste o código para você dar uma olhada? não tive nenhum problema com ele.
Também estou acostumado a esse tipo de ambiente e a usar o Ehcache sem problemas em uma aplicação normal. Valeu a ajuda.
O problema lá é que o AppEngine faz tudo diferente
A implementação de JPA é deles, a forma de fazer caching é deles... tudo meio esquisito... e a documentação bem falha.
[]'s
|
Sérgio Lopes - twitter: @sergio_caelum - blog pessoal: sergiolopes.org
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 11:25:24
|
Edufa
JavaEvangelist
![[Avatar]](/images/avatar/5747a0021eb349e9c8d3667cf1a5e9ec.jpg)
Membro desde: 18/04/2006 10:20:03
Mensagens: 315
Localização: Curitiba, PR
Offline
|
Sergio Lopes wrote:Oi pessoal!
PS. Estou pensando seriamente em não usar mais JPA e partir pro objectify ou twig... muita dor de cabeça esse datanucleus
Olá Sergio, já pensei nisso, mas não me aprofundei. Imagino que estas outras solução sejam específicas para o AppEngine certo? Ou seja fico amarrado ao google se quiser/precisar mudar para o cloud da amazon, por exemplo, terei de refazer muitas coisas. É isso ou to viajando?
Não que seja um grande falha, mas é só para eu ter isso em mente se eu mudar como persistir.
[]s
|
Edufa
Curitiba, PR
--
"O estado sou eu". - Luís XIV
"O estado somos nós."- Lênin
"O estado somos eu." - Lula
--
O mundo é deles mas a amazônia é nossa
O petróleo é nosso, mas o gás é deles.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 14:23:41
|
Sergio Lopes
Moderador
![[Avatar]](/images/avatar/8232e119d8f59aa83050a741631803a6.jpg)
Membro desde: 17/11/2003 00:22:10
Mensagens: 1368
Localização: São Paulo - SP
Offline
|
Edufa wrote:Olá Sergio, já pensei nisso, mas não me aprofundei. Imagino que estas outras solução sejam específicas para o AppEngine certo? Ou seja fico amarrado ao google se quiser/precisar mudar para o cloud da amazon, por exemplo, terei de refazer muitas coisas. É isso ou to viajando?
Não que seja um grande falha, mas é só para eu ter isso em mente se eu mudar como persistir.
Oi Edufa!
Realmente se voce não usar JPA/JDO terá depois mais trabalho pra migrar. Teoricamente. O pessoal que argumenta a favor desses frameworks alternativos para persistência no GAE diz que a JPA lá é tão esquisita que acaba não abstraindo todos os detalhes da camada de baixo do Datastore. Ou seja, vira e mexe, mesmo com JPA, você acaba fazendo código que só funciona no GAE por causa das limitações do ambiente (isso é verdade, passo direto por isso). Então, no fundo, a JPA que você escreve no GAE não é tão portável assim e você teria que reescrever boa parte das coisas quando mudar de estrutura.
No fim, o argumento desses outros frameworks é que se você vai reescrever mesmo, então ao invés de usar JPA/JDO no GAE que são cheios de detalhes e complicações, use um framework mais simples como Objectify ou Twig. O SimpleDS, um outro famoso também, funciona até fora do GAE.
Mas claro que sempre é boa prática encapsular tudo isso nos DAOs e não deixar vazar esses detalhes. Assim conseguimos trocar depois sem problemas.
PS. achei um link bom sobre frameworks alternativos de persistência no GAE (to lendo ainda mas parece bom):
http://borglin.net/gwt-project/?page_id=604
[]'s
|
Sérgio Lopes - twitter: @sergio_caelum - blog pessoal: sergiolopes.org
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 16:17:47
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Não sei se ajuda
Saiu hoje no TSS http://www.theserverside.com/discussions/thread.tss?thread_id=60093
SimpleDS
http://code.google.com/p/simpleds/
Introduction wrote:SimpleDS provides a simple persistence framework for Google AppEngine that gets as little in the way as possible. It is barely a wrapper around Datastore APIs, providing mapping between Entity and Java classes.
Cache
http://code.google.com/p/simpleds/wiki/Cache
How to use cache with SimpleDS wrote:
SimpleDS includes a Level 1 and Level 2 cache that will be used for classes annotated with @Cacheable.
When retrieving cacheable classes:
Check the Level 1 cache.
If no match is found, check the Level 2 cache.
If none matches, the datastore will be queried and the retrieved data will be published on both caches.
The cache will work with any single or batch get(), cleared with delete() and updated with put().
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2010 16:23:05
|
Sergio Lopes
Moderador
![[Avatar]](/images/avatar/8232e119d8f59aa83050a741631803a6.jpg)
Membro desde: 17/11/2003 00:22:10
Mensagens: 1368
Localização: São Paulo - SP
Offline
|
Nossa *acabei* de responder pra ele na lista do google-appengine
Perguntei se o SimpleDS tem query cache também além do cache de entidades que ele fala nesse link. Senão não me ajuda muito
PS. Na prática, hoje, to fazendo cache de tudo na mão colocando e invalidando o memcache. Mas é muito trabalhoso, por isso queria uma solução "mágica". O pessoal do Datanucleus diz que tem um cache de 2o nível mas não consigo fazê-lo funcionar. E o pessoal de lá não foi muito simpático quando perguntei como fazer funcionar
Valeu, Luca!
|
Sérgio Lopes - twitter: @sergio_caelum - blog pessoal: sergiolopes.org
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/06/2010 17:16:41
|
ebengtso
What is classpath?
Membro desde: 28/06/2006 16:20:11
Mensagens: 5
Offline
|
Sergio, Corrigi o problema. veja http://www.jpox.org/servlet/jira/browse/NUCCORE-539
Agora basta esperar que google atualize seu framework
|
|
|
 |
|
|