Como configuro o JBoss 5.1.0.GA para executar múltiplas instâncias?

2

Alguém tem alguma experiência ou conselho na configuração de várias instâncias do JBoss 5.1.x na mesma máquina que possui 1 placa de rede?

Aqui está o que eu fiz:

  1. Instalado o JBoss 5.1.0.GA em c: \ myjboss 1.5. Eu copiei o diretório server / default para server / ports-01 e server / ports-02 para que eles tenham suas próprias configurações. eu assumi corretamente?
  2. Ran . \ run.bat -c ports-01
  3. Ran . \ run.bat -c ports-02

Neste ponto, há duas instâncias, mas a segunda instância não é carregada corretamente devido ao que provavelmente são alguns conflitos de porta. Por exemplo: a porta http acaba sendo 8080 para ambas as instâncias, o que é obtido da linha 49 no C: \ myjboss \ servidor \ todos \ conf \ bindingservice.beans \ META-INF \ bindings-jboss-beans arquivo .xml . Anteriormente, no carregamento do servidor, ele obtém claramente o valor da linha nº 63 nesse mesmo arquivo. Eu não sei porque faz parte da configuração da porta da linha # 49 e a outra parte da linha # 63. Confuso.

Eu também tentei: . \ run.bat -Djboss.service.binding.set = ports-01 -c portas-01 e fez pouca diferença.

Alguma idéia do que estou fazendo errado?

    
por djangofan 23.12.2009 / 00:11

5 respostas

1

Eu tenho que trabalhar sozinho. A resposta foram esses comandos:

. \ run.bat -Djboss.service.binding.set = portas-01 -c portas-01

. \ run.bat -Djboss.service.binding.set = ports-02 -c portas-02

Além disso, tive que copiar o servidor / default para 2 novos diretórios chamados server / ports-01 e server / ports-02 ...

Em seguida, no servidor \ ports-01 \ conf \ bindingservice.beans \ META-INF, tive que remover as referências às instâncias ports-02, ports-03 e "default" dele.

Em seguida, no servidor \ ports-02 \ conf \ bindingservice.beans \ META-INF, tive que remover as referências para as instâncias ports-01, ports-03 e "default" dele.

Então, finalmente, apaguei os diretórios "padrão", "web" e "padrão" da instalação padrão no diretório do servidor.

Em seguida, eu corri os dois servidores com os comandos acima e out-of-the-box , eles funcionam.

Além disso, aqui está um arquivo em lotes para executar instâncias em cluster em vez de separadas:

@echo off

start .\bin\run.bat -c ports-01 -g MyLocal -u 239.255.100.100 -b 127.0.0.1 -Djboss.messaging.ServerPeerID=1 -Djboss.service.binding.set=ports-01

@echo Wait until first server finishes starting and then hit 
@echo any key to start the second server in the cluster...
pause

start .\bin\run.bat -c ports-02 -g MyLocal -u 239.255.100.100 -b 127.0.0.1 -Djboss.messaging.ServerPeerID=2 -Djboss.service.binding.set=ports-02
    
por 23.12.2009 / 02:25
1

Você também pode configurar várias instâncias do jboss renomeando run.bat e criar um novo run.bat executando -c instance-name. Então, você poderá iniciar o Jboss como serviço e chamar o run.bat corretamente.

    
por 21.05.2010 / 21:30
0

Em vez de usar o BindingManager, você pode atribuir mais de um endereço à sua interface de rede (pelo menos se estiver no controle da sua rede) e permitir que cada instância do jboss seja executada usando seu próprio endereço (usando a opção -b codificar%). Isso também é possível na interface de loopback local (127.0.0.1, 127.0.0.2, ...).

    
por 20.01.2010 / 12:48
0

Acompanhamento rápido da postagem do Mafro sobre vários endereços IP - dependendo de quantas instâncias você deseja executar em um único host, o esquema de endereçamento IP múltiplo pode ser o mais estável. Uma vez que você comece a obter 4-5 instâncias do JBoss em um único host (e também dependendo de quais serviços J2EE você tem habilitado no seu aplicativo, se houver), você pode em breve encontrar problemas de conflito de porta quando usar a implementação de "portas" .

Vários endereços IP permitem que você execute todos os seus serviços J2EE e JBoss em suas portas padrão e evite muitos dos "cenários de conflito de portas" que você encontra ao executar mais de uma instância.

Uma nota final, de acordo com o wiki do JBoss, usando vários endereços IP é a "solução preferida" especialmente para ambientes de produção - link . Veja este link para recursos adicionais sobre como usar o Binding Manager para configurar serviços e aplicativos do JBoss para evitar conflitos.

    
por 20.01.2010 / 14:19
0

Se você não usa RMI ou remoting, você pode ajustar a configuração do jboss para usar apenas uma porta. É um trabalho muito chato de se fazer (muitos arquivos de configuração), mas é possível se você realmente precisar.

Para fazer isso:  - remover todos os serviços que você não usa  - se você não pode remover um invocador, provavelmente você pode definir transport="local" para usar no transporte de memória  - defina as portas do serviço restante para -1  - Defina as seguintes propriedades do sistema para desabilitar as portas de gerenciamento do arjuna: com.arjuna.ats.arjuna.coordinator.transactionStatusManagerEnable = NO com.arjuna.ats.arjuna.recovery.recoveryListener = NÃO

Arquivos de configuração você precisa mudar: - jboss-service.xml - desativa todos os serviços que você não precisa - legacy-invokers-service.xml (remova os serviços legados, se possível) - messaging / messaging-bisocket-service.xml: altere o transporte para local em vez de bisocket

Haverá mais alguns arquivos.

O que resta é um jboss que escuta a porta da web e uma outra porta escolhida aleatoriamente para a qual eu ainda não sei o uso. Isso facilitará a execução de várias instâncias em um host.

    
por 05.02.2010 / 17:09