【问题标题】:GlassFish Dynamic JDBC PoolGlassFish 动态 JDBC 池
【发布时间】:2012-12-19 05:17:14
【问题描述】:

我有带有 3 个数据库的 MySQL DBMS

  • 配置
  • master1
  • master2

一个 JSF 2.1 应用程序在配置数据库上使用特定用户名登录,然后进行一些查询并获取进行连接的数据库的名称。

现在有了 2 个简单的数据库,解决方案很简单:

  1. master1master2 加入配置并创建一个具有关系的单一单声道数据库...可能,但有分离用户数据的请求 - 所以丢弃。

  2. 在 Glassfish 中创建 n 池,然后使用适当的池。

其实我用的是这个方案,但是如果我有master 0...1000,我必须手动创建所有这些,这非常耗时。

我想:

  1. 照常连接到配置
  2. 检索数据库名称
  3. 检查资源(同名)是否存在
    1. 如果它不存在;创建它
  4. 现在使用它

【问题讨论】:

    标签: mysql jdbc glassfish glassfish-3 connection-pooling


    【解决方案1】:

    你应该看看这个答案:https://stackoverflow.com/a/21029975/686036

    我相信你可以使用 RESTful API 来做你想做的事。

    1. 连接到配置//不确定是否需要再执行此步骤
    2. 检索数据库名称​​//这是由你来做的
    3. 检查给定名称的资源是否退出

      curl LIST http://localhost:4848/management/domain/resources/jdbc-connection-pool/ 
      

      这将为您提供所有可用 jdbc 连接池的列表。然后由您自己查找是否找到了您要查找的那个。

      1. 如果资源不存在,则创建它

        curl -X POST -H "X-Requested-By: GlassFish REST HTML interface" 
        -d id=jdbc/myjdbcresource -d connectionpoolid=DerbyPool 
        http://localhost:4848/management/domain/resources/jdbc-resource
        

        这将是通过 cURL 请求在您的服务器上创建资源的示例代码。

    4. 使用资源//来自应用程序。

    另见:

    【讨论】:

    • @user1594895 是的,这基本上是我发现的。由于直接修改domain.xml 文件需要重新启动,但通过API 调用进行更改,只需使其生效。它对我有用。不确定它是否会被视为 hack,因为在 Java 服务器上包含 RESTful API 是一个 JSR。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 2015-11-16
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    相关资源
    最近更新 更多