Olá!
Estou com um problema de performance numa aplicação que utiliza Floggy para persistência, e já gastei um bom tempo tentando utilizar o recurso de índice que foi incluída na versão 1.4.0 alpha mas sem sucesso. Será que terei que migrar para o Perst? rsrsrs
Tenho tabelas que vão de 30 a 4000 registros, e isto não está nem um pouco performático, problema já conhecido do RMS.
Ví no site do floggy (http://floggy.sourceforge.net/core-package.html#Using_the_index_feature_only_available_on_package_1.4.0-alpha) que a versão 1.4.0 alpha trabalha com o recurso de índice. Baixei o exemplo más abriu no Netbeans 6.8 com erros de dependência. Então resolvi criar um programa para teste que tem o objetivo de filtrar uma ‘tabela’ por um campo específico.
O problema é que recebo um erro de FloggyException na linha ObjectSet os = pm.find(TableOneDAO.class, fil, true) e quando tento visualizar o backtrace da erro de runMidlet no Netbeans. Estou usando o emulador LG KP500.
Já verifiquei o build.xml e o floggy.xml e aparentemente tudo esta certo.
método de filtro de registro (TableOneDAO), deve retornar uma ‘coleção’ de registros que condizem com o critério do filtro.
<!-- IMPORTANT: You must change the value of this property pointing it to the directory where you have installed Floggy. Some examples: Linux: /opt/floggy Windows: c:\floggy--><propertyname="floggy.path"value="C:\Desenvolvimento\JME\LIBS\Floggy_1.4.0"/><pathid="floggy.classpath"><filesetdir="${floggy.path}\lib"includes="*.jar"/></path><targetname="post-compile"><taskdefname="floggy-persistence-weaver"classname="net.sourceforge.floggy.persistence.WeaverTask"classpathref="floggy.classpath"/><floggy-persistence-weaverbootclasspath="${platform.bootclasspath}"classpath="${libs.classpath}"input="${build.classes.dir}"output="${build.classes.dir}"/></target>
É isto ai.
tmoreira2020
Boa noite Marcelo,
Você poderia nos fornecer o stack trace da exception? Sem ela não posso te dizer o que pode ou não estar acontecendo.
Ao examinar o observador da FloggyExceptio gerada, se tento abrir o ‘backtrace’, índice [0] da ‘rootCause’, o Netbeans retorna erro de runMidlet e aborta a execução.
Verifiquei e o objeto IndexFilter “fil” esta devidamente valorado. Inclusive testei com valores literais na passagem do construtor:
IndexFilter fil = new IndexFilter(“filtroUm”, “1”);
Mas o erro persistiu.
Não sei se isto ajuda, se precisar de mais informações por favor me informe.
tmoreira2020
Marcelo, tu poderia anexar aqui uma aplicação mínima que reproduzisse o problema? Pode ser pré connfigurada para Netbeans mesmo.