[英]Glassfish - Java EE application from 32bit to 64bit OS, incomplete DB queries?
我面临着从32位系统迁移到64位系统的非常非常奇怪的问题。 我有2个环境:
在这两个系统上我都使用jdk7u1 32bit,Glassfish 3.1.1 Web Profile和默认的JPA(eclipselink)。 在制作时,我有Oracle数据库11g版本11.2.0.1.0 32位。 在Glassfish中,我使用来自Oracle的适当驱动程序(ojdbc6.jar)。 我还有Java EE应用程序,它从数据库视图加载产品列表并向用户显示,没什么特别的。
当我将应用程序部署到开发计算机并连接到生产数据库时,一切正常,我可以看到所有记录。 但是,当我部署到生产envirnoment命名查询时,只返回几条记录。 没有错误,警告等。应用程序的行为就像没有更多的记录,但事实并非如此。 在两台机器上,连接属性完全相同。 当我从两台计算机连接SQL Developer时,我可以看到所有记录。
我完全不知道发生了什么。 唯一的区别是操作系统,但这不应该产生问题,因为JDK是相同的。 我对吗?
也许你有缓存问题。 我记得Toplink(EclipseLink的基础)默认情况下缓存机制为ON 。 所以如果这是场景:
Machine A
创建/修改了记录,则这些修改不会反映在Machine B
因为它们没有更新其缓存。 Machine A
或Machine B
的EclipeLink中更新。 您可以验证它是否直接在数据库上更改记录并验证它是否反映在两台计算机上,如果未反映更改,则表明存在缓存问题,您可以根据以下文档对其进行配置:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.