Используя JBoss 4.2.x, как я могу развернуть новый источник данных, не удаляя существующие? - PullRequest
1 голос
/ 19 февраля 2009

Управление конфигурацией для нашего приложения 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 ]

2 голосов
/ 20 февраля 2009

Как упоминал г-н Шини и Нью, выше, правильный путь - это разместить данные источники в своих файлах. Хитрость в том, что имена файлов должны соответствовать к суффиксу, поддерживаемому в файле развертывания jbossjca-service.xml.

Итак, создайте новый файл для каждого источника данных с именем foo -ds.xml.

2 голосов
/ 20 февраля 2009

Вы можете хранить источники данных каждый в своем собственном файле. Таким образом, вы можете избежать удаления других источников данных в файле, который вы изменяете. Вы можете просто назвать файл источника данных xml после имени источника данных, что облегчает поиск и редактирование необходимого файла.

...