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

时间:2009-02-19 19:57:22

标签: java deployment java-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'

是否有办法部署新数据源(或删除或修改现有数据源)而不解除任何其他未受影响的数据源?

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

--- 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:

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

正如Shiny先生和New先生提到的,正确的方法是放置数据 源自他们自己的文件。诀窍是文件名必须符合 到jbossjca-service.xml部署者文件中支持的后缀。

因此,创建一个新的每个数据源文件,名称为 foo -ds.xml