Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DataNucleus JDO故障排除_Java_Google App Engine_Jdo_Datanucleus - Fatal编程技术网

Java DataNucleus JDO故障排除

Java DataNucleus JDO故障排除,java,google-app-engine,jdo,datanucleus,Java,Google App Engine,Jdo,Datanucleus,我正在使用适用于谷歌应用程序引擎1.2.6和Web Toolkit 1.7.1的Eclipse插件 DataNucleus/JDO快把我逼疯了! 我怀疑要么我的创建在写入之前悄悄出错,要么读取不一致地填充对象 我可以用一些技巧来弄清楚到底发生了什么 使用最小未修改的GAE项目,dn增强器编写的日志在哪里 是否存在由数据存储代码编写的日志 是否仍要检查本地_db.bin文件的内容 使用下面的基本JDO事务语法,如何在不干扰内置错误处理机制的情况下理解错误/异常 蒂亚, 安迪 私人最终提供商pm

我正在使用适用于谷歌应用程序引擎1.2.6和Web Toolkit 1.7.1的Eclipse插件 DataNucleus/JDO快把我逼疯了! 我怀疑要么我的创建在写入之前悄悄出错,要么读取不一致地填充对象

我可以用一些技巧来弄清楚到底发生了什么

  • 使用最小未修改的GAE项目,dn增强器编写的日志在哪里
  • 是否存在由数据存储代码编写的日志
  • 是否仍要检查本地_db.bin文件的内容

  • 使用下面的基本JDO事务语法,如何在不干扰内置错误处理机制的情况下理解错误/异常

蒂亚, 安迪

私人最终提供商pmp; 私人经理; MyResult结果;//处理程序的结果,通常具有对象id或错误消息 试一试{ pm=pmp.get(); pm.currentTransaction().begin(); /*验证、获取、创建/更新持久化myObject*/ pm.currentTransaction().commit(); 结果=新的MyResult(myObject.getId()); }最后{ if(pm.currentTransaction().isActive()){ 记录器。严重(“DN故障…”); pm.currentTransaction().rollback(); 结果=新的MyResult(“错误消息为什么失败”); } } 返回(结果);
所以你想调试它,但是你把日志级别设置为INFO?我建议调试会更有意义。GAE/J文档有一些关于日志的页面-记不起URL对不起;搜索他们的谷歌群组,因为有几篇关于它的帖子。如何调用增强器还没有定义?使用谷歌的Eclipse插件?还是人工?还是Maven2?还是蚂蚁?DN文档定义日志的位置。。。除了谷歌的插件(因为那是他们的,我们不支持)

显然有一个本地的数据库查看器-搜索他们的Google组


--安迪(DataNucleus)

DN的运行时日志记录受logging.properties文件内容的影响,我在这里将其从WARN改为INFO:DataNucleus.JDO.level=INFO DataNucleus.Persistence.level=INFO DataNucleus.Cache.level=INFO DataNucleus.MetaData.level=INFO DataNucleus.General.level=INFO DataNucleus.Utility.level=INFODataNucleus.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 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);