我们的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:
答案 0 :(得分:2)
您可以将每个数据源存储在自己的文件中。这样,您可以避免取消部署正在修改的文件中的其他数据源。您只需在数据源名称后面命名数据源xml文件,即可轻松查找和编辑必要的文件。
答案 1 :(得分:2)
正如Shiny先生和New先生提到的,正确的方法是放置数据
源自他们自己的文件。诀窍是文件名必须符合
到jbossjca-service.xml
部署者文件中支持的后缀。
因此,创建一个新的每个数据源文件,名称为 foo -ds.xml
。