Как запустить несколько экземпляров JBoss на одной машине?

Мне нужно запустить несколько (более 4) экземпляров сервера JBoss на одной машине. Я использую JBoss 4.2.3 GA.

Ответ 1

Я нашел ответ. Мы должны настроить jboss-service.xml для запуска нескольких экземпляров на одном компьютере.

Возможно, нам понадобится сохранить тот же самый экземпляр по умолчанию, что и в JBOSS_HOME\Serve.

Нам нужно создать еще одну папку: "instance2" в разделе JBOSS_HOME\Server. Скопируйте все содержимое из JBOSS_HOME\Server\default в эту вновь созданную папку.

Теперь перейдите в папку conf в каталоге JBOSS_HOME\Server\instance2. Измените jboss-service.xml. Найдите mbean code="org.jboss.services.binding.ServiceBindingManager" в этом файле конфигурации.

По умолчанию этот тег xml прокомментирован. Нам нужно прокомментировать это и изменить значение ports-00 на ports-01.

Затем запустите этот экземпляр instance2 jboss. Мы можем получить доступ к этому приложению, используя номер порта 8180.

Мы можем пройти максимум в 3 экземпляра таким образом.

Чтобы запустить больше, чем это, мы должны добавить еще несколько бегущих тегов в JBOSS_HOME\Docs\\ примеры связывания-менеджер\выборки bindings.xml.

Ответ 2

Вы можете сделать вещи намного проще, просто изменив IP-адрес, на который привязан сервер.

Вам нужно будет скопировать всю папку jboss несколько раз и настроить run.bat для использования параметра -b при запуске.

Если это сервер Windows, и вы используете jboss в качестве службы, вы можете отредактировать service.bat для каждого экземпляра, чтобы все серверы имели разные имена в панели управления службами.

Часть проблемы, с которой мы столкнулись при попытке использовать разные порты HTTP, заключалась в том, что jboss использует "много" портов для разных целей, и было больно редактировать все эти номера портов, чтобы быть уникальными для каждого экземпляра. Изменяя адрес связывания, вы можете полностью избежать этой проблемы.

Ответ 3

Создайте несколько адаптеров loopback и привяжите каждый IP-адрес к другому экземпляру.

Не нужно менять порт.

Р.К.

Ответ 4

1) Скопируйте папку по умолчанию с новым именем: имя экземпляра

2) В jboss-service.xml Раскомментируйте службу ServiceBindingManager mbean и измените имя сервера на порты-01 или 02 или 03, например: конфигурация портов-01 и ports-01/02/03 должна присутствовать в sample-bindings.xml(присутствует в docs/examples/binding-manager) И внесите изменения во все порты, упомянутые в тегах ports-01/02/03, чтобы порты не конфликтуют. Помните, что сервер будет работать на порту привязки, например, 8080/8180/8182.

из cmd promt перейдите в папку bin и запустите экземпляры с cmd:

run -c instancename

Ответ 5

Запуск нескольких экземпляров JBoss на одном сервере:

  • Мы должны сохранить экземпляр "по умолчанию" таким же, как и в поле ** JBOSS_HOME\Server
  • Скопируйте папку по умолчанию с новым именем (имя экземпляра), скажем default2 в разделе JBOSS_HOME\Server. Скопируйте все содержимое из JBOSS_HOME\Server\default в эту вновь созданную папку.
  • Диспетчер служб привязки должен быть включен в conf/jboss-service.xml для экземпляров, которые не используют порты по умолчанию. а. (т.е.) В скопированном экземпляре перейдите в папку conf в каталоге JBOSS_HOME\Server\default2. Измените jboss-service.xml. б. Найдите mbean code="org.jboss.services.binding.ServiceBindingManager" в этом файле конфигурации. с. По умолчанию этот тег xml прокомментирован. Мы должны раскомментировать его и изменить значения портов-00 на порты-01.
  • В том же файле В разделе "Коннектор транспорта Socket" в разделе "Конфигурация" серверBindPort должен быть изменен на другое значение или он будет конфликтовать с по умолчанию (4446).

    <mbean code="org.jboss.remoting.transport.Connector"
    name="jboss.remoting:service=Connector,transport=socket"
    display-name="Socket transport Connector">
    ...
    <attribute name="Configuration">
    ...
    <attribute name="serverBindPort">25447</attribute>
    

    ...       

  • В default2/deploy/ejb3.deployer/META-INF/jboss-service.xml, для remoting.transport.Connector mbean, порт 3873 должен быть изменен на другое значение или он будет конфликтовать с значением по умолчанию.

       <mbean code="org.jboss.remoting.transport.Connector"
          name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3">
      <depends>jboss.aop:service=AspectDeployer</depends>
      <attribute name="InvokerLocator">socket://${jboss.bind.address}:25874</attribute>
     ...
    

  • В default2\deploy\jboss-web.deployer\server.xml

установить значение перенаправления порта, настроенное на шаге 4

<Connector port="8180" address="${jboss.bind.address}" 
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="25447" acceptCount="100" 
connectionTimeout="20000" disableUploadTimeout="true" />

Кроме того, значение порта, настроенное на шаге 5

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="25010" address="${jboss.bind.address}" protocol="AJP/1.3" //change the connector port value to avoid conflict
emptySessionPath="true" enableLookups="false" redirectPort="25874" /> // port value configured in step 5

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

$JBOSS_HOME/сервер/по умолчанию

$JBOSS_HOME/сервер/default2

$JBOSS_HOME/сервер/default2/CONF/JBoss-service.xml

$JBOSS_HOME/сервер/default2/развернуть/ejb3.deployer/META-INF/JBoss-service.xml

$JBOSS_HOME/сервер/default2/развернуть/JBoss-web.deployer/server.xml **

$JBOSS_HOME/сервер/default3

$JBOSS_HOME/сервер/default3/CONF/JBoss-service.xml

$JBOSS_HOME/сервер/default3/развернуть/ejb3.deployer/META-INF/JBoss-service.xml

$JBOSS_HOME/сервер/default3/развернуть/JBoss-web.deployer/server.xml **

7. Из командной строки перейдите в папку bin и запустите экземпляры с cmd:

run -c instancename

В этом случае это: выполнить -c default2

И приложения, к которым обращаются с помощью URL:

http://localhost:8080/myapp/
http://localhost:8180/myapp/
http://localhost:8280/myapp/

Примечание. Таким образом, мы можем использовать максимум 3 экземпляра. Чтобы запустить больше, нам нужно добавить еще несколько бегущих тегов в JBOSS_HOME\docs\examples\binding-manager\sample-bindings.xml.

Ответ 6

Я использовал эту статью для установки моего. http://wiki.adempiere.net/Setup_2_Adempiere_JBoss_server_in_1_physical_server

Вам необходимо создать различные службы для управления серверами adempiere.

Также, если вы работаете с сообщением jasper, используйте уникальные имена файлов для отчетов или вы столкнетесь с исключением, разрешенным для разрешения.

Пример: если вы прикрепляете "report.jrxml" к двум серверам. Сервер создаст файл /tmp/report.jrxml tmp.

Второй сервер также попытается создать тот же файл и потерпеть неудачу

Ответ 7

Самый быстрый и простой способ - просто настроить несколько IP-адресов на хостинг-машину. Затем вы можете использовать разные IP-адреса для привязки к каждому экземпляру. Это означает, что вам не нужно изменять какие-либо порты по умолчанию и позволяет управлять более легкой средой.

Ответ 8

Мы можем легко сделать это на JBOSS EAP Для первого примера просто запустите JBOSS, как есть.

для второго экземпляра, Скопируйте домашнюю папку JBOSS в другое место.

перейти в автономный /configuration/standalone.xml. перейдите в раздел (внизу файла) и установите значение смещения порта для некоторого значения (EX: 10000), которое не имеет проблемы с привязкой к порту в текущем запуске приложения. Здесь значение по умолчанию-porteset по умолчанию равно 0.

запустите второй экземпляр, как обычно.

Ответ 9

Скопируйте полную установку JBOSS в новое место и запустите новый сервер с опцией offset, которая запустит сервер на существующем ip и изменит порт на before_configured_port + offset

standalone.bat -c standalone-full.xml -Djboss.socket.binding.port-offset=100

Эта команда сделает консоль jboss по умолчанию 9990 до 10090

Теперь вы можете добавить свой военный файл в новую папку развертывания и начать развертывание на новом порту