java - 使用 JBoss 4.2.x,如何在不取消部署现有数据源的情况下部署新数据源?

标签 java deployment jakarta-ee jboss

我们的 EE 应用程序的配置管理要求我们不时创建一个新的数据库连接数据源。我们现在通过修改 deploy/[dbtype]-ds.xml 文件,将附加的连接定义插入到该文件中来执行此操作。问题是,这样做除了会创建新连接外,还会导致现有连接被取消部署和重新部署。

来自 JBoss 日志:

12:52:13,096 INFO  [ConnectionFactoryBindingService] Unbound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=dsmDS' from JNDI name 'java:dsmDS'
12:52:13,386 INFO  [ConnectionFactoryBindingService] Unbound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=ecourierDS' from JNDI name 'java:ecourierDS'
12:52:20,321 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=ecourierDS' to JNDI name 'java:ecourierDS'
12:52:20,671 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=dsmDS' to JNDI name 'java:dsmDS'
12:52:26,512 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=ecourier-core360aDS' to JNDI name 'java:ecourier-core360aDS'

有没有一种方法可以部署新数据源(或删除或修改现有数据源)而不解除绑定(bind)任何其他未受影响的数据源?

(edit) 有人建议我们只在新文件中添加数据源,但这行不通,至少不是开箱即用;如果我在部署目录中名为 core360aDS.xml 的文件中添加 core360aDS 数据源,则会发出以下错误消息:

--- Packages waiting for a deployer ---
org.jboss.deployment.DeploymentInfo@3ccd9d83 { url=file:/home/rosec/testing/ecas/var/jboss/server/core41/deploy/core360aDS.xml }
  deployer: null
  status: null
  state: INIT_WAITING_DEPLOYER
  watch: file:/home/rosec/testing/ecas/var/jboss/server/core41/deploy/core360aDS.xml
  altDD: null
  lastDeployed: 1235079499893
  lastModified: 1235079499000
  mbeans:

--- Incompletely deployed packages ---
org.jboss.deployment.DeploymentInfo@3ccd9d83 { url=file:/home/rosec/testing/ecas/var/jboss/server/core41/deploy/core360aDS.xml }
  deployer: null
  status: null
  state: INIT_WAITING_DEPLOYER
  watch: file:/home/rosec/testing/ecas/var/jboss/server/core41/deploy/core360aDS.xml
  altDD: null
  lastDeployed: 1235079499893
  lastModified: 1235079499000
  mbeans:

最佳答案

您可以将每个数据源存储在各自的文件中。这样您就可以避免取消部署正在修改的文件中的其他数据源。您可以简单地以数据源名称命名数据源 xml 文件,这样可以轻松查找和编辑必要的文件。

关于java - 使用 JBoss 4.2.x,如何在不取消部署现有数据源的情况下部署新数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/566892/

相关文章:

java - 试图弄清楚如何求和

java - 使用 Integer.parseInt 转换 32 位二进制字符串失败

java - @JoinColumn 注解中名称和引用列名的区别?

python - 使用 Python 以编程方式检查环境完整性的最佳实践?

c# - 正确的 DI 项目/build设置

java - 嵌入式 tomcat 7 servlet 3.0 注释不起作用

Java 国际化 (i18n) 库/框架

java - Spring Boot - 将 AWS 中的文件从一项服务移动到另一项服务

ruby-on-rails - heroku[路由器] : at=error code=H10 desc ="App crashed" method

java - 在 Hibernate 中生成实体