【问题标题】:ActiveJDBC concurrent requests?ActiveJDBC 并发请求?
【发布时间】:2012-05-07 14:42:56
【问题描述】:

我在我的一个项目中使用ActiveJDBC,今天我遇到了一个令人讨厌的问题。

对我的应用程序的并发请求将失败,因为 ActiveJDBC 尝试从具有相同名称“default”的池中获取多个连接。

似乎有可能打开不同名称的连接,所以不要写:

Base.open(JNDI_NAME)

有人会写:

new DB("someRandomName").open(JNDI_NAME);

但是......当试图从数据库中获取一些数据时,出现了一个问题:ActiveJDBC 搜索连接“默认”(或模型类中的 @DbName 注释) - 据我了解,这个概念用于处理多个数据库(不是多个连接)。

我真的不想替换 ActiveJDBC,因为写了数千行代码 - 有什么想法吗?

【问题讨论】:

    标签: concurrency activejdbc


    【解决方案1】:

    想法存在:) 在您的代码中,您有:

    new DB("someRandomName").open(JNDI_NAME);
    

    ..但是您传递给类 DB 构造函数的字符串 不是一些随机字符串,也不是 JNDI 名称。它是数据库的逻辑名称。您正确地猜到了这与访问多个数据库访问有关。 这是解释这一点的文档: http://javalite.io/database_connection_management#multiple-database-example

    如果您的系统中只有一个数据库,您甚至不需要类 DB,只需使用 Base: http://javalite.github.io/activejdbc/snapshot/org/javalite/activejdbc/Base.html 它将确保数据库连接的名称为“默认”——这是您的模型所期望的

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多