2009-11-28 169 views
1

我使用谷歌应用程序引擎1.2.6 Eclipse插件和Web工具包1.7.1 DataNucleus将/ JDO是推动我疯了! 我怀疑我的创建是在写入之前默默地出错和/或读取不一致地填充对象。故障排除DataNucleus将JDO

我可以使用在搞清楚什么是真正发生的一些技巧。

  • 利用最小未修改的GAE项目,其中日志写的DN增强?
  • 有数据存储区编写的代码日志?
  • 反正是有检查的内容是local_db.bin文件?

  • 使用基本JDO事务下面的语法,我怎么知道不会干扰内建的错误处理机制的错误/异常?

TIA, 安迪

 
    private final Provider<PersistenceManager> pmp; 
    private PersistenceManager pm; 
    MyResult result; // results from handler, usually has object id or error message 

    try { 
    pm = pmp.get(); 
    pm.currentTransaction().begin(); 

     /* validate, fetch, create/update persistent myObject */ 

     pm.currentTransaction().commit(); 
     result = new MyResult(myObject.getId()); 
    } finally { 
     if (pm.currentTransaction().isActive()) { 
      logger.severe("DN fails..."); 
      pm.currentTransaction().rollback(); 
      result = new MyResult("error message why failed"); 
     } 
    } 
    return (result); 
+0

为DN的运行记录是由logging.properties的内容,受影响的文件 我已经改变从WARN到的信息在这里: DataNucleus.JDO.level = INFO DataNucleus.Persistence.level = INFO DataNucleus.Cache.level = INFO DataNucleus.MetaData.level = INFO DataNucleus.General.level = INFO DataNucleus将.Utility.level = INFO DataNucleus.Transaction.level = INFO DataNucleus.Datastore.level = INFO DataNucleus.ClassLoading.level = INFO DataNucleus.Plugin.level = INFO DataNucleus.ValueGeneration.level = INFO DataNucleus.Enhancer .LEVEL = INFO DataNucleus.SchemaTool.level = INFO – Stevko 2009-11-29 03:36:24

回答

2

所以,你要还这个调试设置日志级别为INFO?我建议DEBUG会更有意义。 GAE/J文档有一些关于日志记录的页面 - 不记得网址对不起;搜索他们的谷歌集团COS有几个关于它的帖子。您如何调用增强器没有定义?使用Google的Eclipse插件?或手动?或Maven2?还是Ant? DN文档定义了日志所在的位置...除了谷歌插件之外的所有选项(因为这是他们的,我们不支持它)。

显然是有local_db浏览器 - 搜索他们的谷歌集团

--Andy(DataNucleus将)

+1

实测值在 HTTP本地数据视图://本地主机:8080/_ah /管理/数据存储 – Stevko 2010-02-02 23:41:38