Как переключить контроллер домена, если основной контроллер домена не работает

Я использую JBoss EAP 7 и тестирую отработку отказа DC в соответствии с этим руководством: https://access.redhat.com/solutions/1247783

Все работает достаточно хорошо, пока я не остановил DomainController и не попытался подключить интерфейс командной строки JBoss к Host1, мне не удалось установить cli-соединение с host1 со следующей ошибкой:

/opt/jboss-eap-7.0/bin/jboss-cli.sh --connect --controller=192.168.56.127:39999
Failed to connect to the controller: The controller is not available at 192.168.56.127:39999: java.net.ConnectException: WFLYPRT0053: Could not connect to http-remoting://192.168.56.127:39999. The connection failed: WFLYPRT0053: Could not connect to http-remoting://192.168.56.127:39999. The connection failed: Connection refused.

netstat -tpln показывает, что порт 39999 активен.

Я думаю, что host1 не настроен как DC, это может быть причиной того, что cli-соединение с ним получило ответ об ошибке, я думаю, что могут быть некоторые ошибки в host-slave.xml в host1, вот некоторые аннотации:

<domain-controller>
    <remote security-realm="ManagementRealm">
        <discovery-options>
            <static-discovery name="primary" protocol="${jboss.domain.master.protocol:remote}" host="192.168.56.11" port="${jboss.domain.master.port:9999}"/>
        </discovery-options>
    </remote>
</domain-controller>

Я использовал следующую оболочку для запуска host1:

/opt/jboss-eap-7.0/bin/domain.sh --backup \
-Djboss.domain.base.dir=/opt/mytest/m3/domain/ \
--host-config=host-slave.xml  \
-Djboss.bind.address.management=192.168.56.127 \
-Djboss.domain.master.address=192.168.56.11 \
-Djboss.management.native.port=39999

Может ли кто-нибудь показать мне руководство?

С наилучшими пожеланиями

Лан


person Lan    schedule 14.02.2018    source источник
comment
Это происходит потому, что клиент jboss-cli, если он не настроен, пытается угадать, какой протокол использовать, основываясь на номере порта. Поскольку JBoss EAP 7 использует удаленное взаимодействие по протоколу http вместо удаленного взаимодействия (используемого в JBoss EAP 6), при использовании нестандартного собственного порта клиент предполагает, что это может быть JBoss EAP 7.   -  person Anup Dey    schedule 15.02.2018
comment
Можете ли вы попробовать добавить контроллер в свой файл jboss-cli.xml: ‹controllers› ‹имя контроллера=example› ‹protocol›remoting‹/protocol› ‹host›host.example.com‹/host› ‹port›39999‹ /port› ‹/controller› ‹/controllers› и передать указанный контроллер в параметре --controller скрипту jboss-cli.(sh|bat): ./jboss-cli.sh --connect --controller=example Кроме того, вы также можете передать протокол вместе с расположением контроллера, чтобы избежать редактирования файла jboss-cli.xml: ./jboss-cli.sh --connect --controller=remoting://host.example.com:39999   -  person Anup Dey    schedule 15.02.2018
comment
JBoss EAP 7 обслуживает HTTP-запросы по адресу 8080. Убедитесь, что никакая другая версия/экземпляр сервера не запущена и не работает...   -  person Anup Dey    schedule 15.02.2018
comment
привет Ануп, это работает, большое спасибо.   -  person Lan    schedule 16.02.2018
comment
Привет, Лан, я обновил тот же ответ в разделе «Ответ». Можете ли вы пометить его как правильный ответ, пожалуйста?   -  person Anup Dey    schedule 17.02.2018


Ответы (1)


  • Это происходит потому, что клиент jboss-cli, если он не настроен, пытается угадать, какой протокол использовать, основываясь на номере порта. Поскольку JBoss EAP 7 использует удаленное взаимодействие по протоколу http вместо удаленного взаимодействия (используемого в JBoss EAP 6), при использовании нестандартного собственного порта клиент предполагает, что это может быть JBoss EAP 7.

Можете ли вы попробовать добавить контроллер в файл jboss-cli.xml:

<controllers> 
<controller name="example"> 
<protocol>remoting</protocol> 
<host>host.example.com</host> 
<port>39999</port> </controller> 
</controllers>

и передайте указанный контроллер в параметре --controller скрипту jboss-cli.(sh|bat):

./jboss-cli.sh --connect --controller=example

Кроме того, вы также можете передать протокол вместе с местоположением контроллера, чтобы избежать редактирования файла jboss-cli.xml:

./jboss-cli.sh --connect --controller=remoting://host.example.com:39999
  • JBoss EAP 7 обслуживает HTTP-запросы по адресу 8080. Убедитесь, что никакая другая версия/экземпляр сервера не запущена и не работает.
person Anup Dey    schedule 17.02.2018