Как отключить кластеризацию в JBoss 5? - PullRequest
3 голосов
/ 18 ноября 2011

Кто-нибудь знает, как отключить автоматическую кластеризацию в JBoss 5.1.0? у нас на каждом компьютере разработчика работает JBoss, и поскольку мы все в одной сети, они выполняют автоматическую кластеризацию. Проблема может быть решена, если каждый из нас может получить свой собственный IP-адрес многоадресной рассылки, но сетевое оборудование не способно на это.

Нет ли в jboss переключателя, чтобы деактивировать это?

Ответы [ 3 ]

4 голосов
/ 13 июня 2013

В Eclipse под Windows вы можете запустить сервер, используя следующее свойство JVM (см. Конфигурация открытого запуска):

-Djboss.partition.name=${env_var:COMPUTERNAME}

Таким образом, каждая машина разработчика будет иметь свой собственный кластер (с одним сервером, если вы используете только один сервер). В Linux вам нужно заменить COMPUTERNAME на HOSTNAME.

Если вы запускаете JBoss AS из командной строки, вы будете использовать что-то вроде -Djboss.partition.name=%COMPUTERNAME% в Windows (не тестировалось).

Обратите внимание, что использование -Djgroups.udp.ip_ttl=0 (как предлагается в другом ответе) имеет следующие недостатки:

  • запуск сервера медленнее (4 минуты вместо 1 минуты в моем случае);
  • есть много журналов предупреждений / ошибок NAKACK;
  • многоадресная рассылка JGroups UDP ограничена локальной машиной, которая может конфликтовать с другими приложениями на основе JGroupds UDP;
  • другие серверы на той же машине с той же конфигурацией будут в том же кластере, что может быть нежелательно.
4 голосов
/ 01 октября 2014

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

Однако, если вы хотите отключить кластеризацию в конфигурации «production» или «all», вам нужно сделать следующеедействия:

Удалить

  • ферма /
  • deploy-hasingleton /
  • deploy / cluster /

Indeploy / messaging / * - persistence-service.xml, измените Clustered на false:

<attribute name="Clustered>false</attribute>

и удалите

<depends optional-attribute-name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</depends>

В файле conf / bootstrap / profile.xml замените

<bean name="BootstrapProfileFactory" class="org.jboss.system.server.profileservice.StaticClusteredProfileFactory">

с помощью

<bean name="BootstrapProfileFactory" class="org.jboss.system.server.profileservice.repository.StaticProfileFactory">

и удалите свойство farmURIs на несколько строк ниже этого.

Замените deploy / httpha-invoker.sar на http-invoker.sar изпрофиль по умолчанию

В файле deployers / clustering-deployer-jboss-beans.xml закомментируйте WebAppClusteringDependencyDeployer.

В SOA-P, если вы удаляете кластеризацию, вам потребуется взятьнесколько дополнительных шагов.

  • Скопируйте сервер / default / deploy / jbpm.esb / hibernate.cfg.xml в server // deploy / jbpm.esb / hibernate.cfg.xml

  • Удалить сервер // deploy / riftsaw * и cp -R server / default / deploy / riftsaw * server // deploy/

3 голосов
/ 18 ноября 2011

Вы можете сделать это, установив TTL (время жизни) для многоадресных пакетов на ноль.Кластеризация по-прежнему будет включена, но ни один из серверов JBoss, работающих на машинах разработчика, не сможет найти друг друга.

При запуске JBoss установите системное свойство jgroups.udp.ip_ttl, например,

-Djgroups.udp.ip_ttl=0

Вам, скорее всего, придется взломать это в сценарии запуска JBoss.

...