gpt4 book ai didi

java - Glassfish - 从 32 位到 64 位操作系统的 Java EE 应用程序,不完整的数据库查询?

转载 作者:搜寻专家 更新时间:2023-11-01 03:55:30 25 4
gpt4 key购买 nike

从 32 位系统迁移到 64 位系统时,我遇到了非常非常奇怪的问题。我有 2 个环境:

  • 开发 - Windows XP 32 位
  • 生产 - Windows 2008 服务器 R264位

在这两个系统上,我都使用 jdk7u1 32 位、Glassfish 3.1.1 Web 配置文件和默认 JPA (eclipselink)。在生产环境中,我有 Oracle Database 11g Release 11.2.0.1.0 32 位。在 Glassfish 中,我使用来自 Oracle (ojdbc6.jar) 的适当驱动程序。我还有 Java EE 应用程序,它从数据库 View 加载产品列表并将其显示给用户,没什么特别的。

当我将应用程序部署到开发计算机并连接到生产数据库时,一切正常,我可以看到所有记录。但是当我部署到生产环境时,命名查询只返回很少的记录。没有错误,警告等。应用程序的行为就像没有更多记录一样,但事实并非如此。在两台机器上,连接属性完全相同。当我从两台计算机连接到 SQL Developer 时,我可以看到所有记录。

我完全不知道发生了什么。唯一的区别是操作系统,但这应该不会造成问题,因为 JDK 是一样的。我说得对吗?

最佳答案

可能是缓存问题。我记得 Toplink(EclipseLink 的基础)默认有缓存机制ON。因此,如果是这种情况:

  1. 如果您从 机器 A 创建/修改了记录,这些修改不会反射(reflect)在 机器 B 中,因为它们没有更新其缓存。
  2. 如果您在 Glassfish (EclipseLink) 之外创建/修改记录,则此记录不会在 Machine AMachine B 的 EclipeLink 中更新。

您可以验证它直接在数据库上更改记录并验证它是否反射(reflect)在两台机器上,如果更改没有反射(reflect)您有缓存问题,您可以根据以下文档进行配置:

http://wiki.eclipse.org/Introduction_to_Cache_%28ELUG%29

关于java - Glassfish - 从 32 位到 64 位操作系统的 Java EE 应用程序,不完整的数据库查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com