2009-02-26 5 views
3

JBoss FAQ 일 것이라고 생각했지만 찾을 수 없습니다.JBoss AS 5 및 JBoss AS 4 동시 실행

JBoss 4와 JBoss 5를 동시에 실행하고 싶습니다. 필자는 수동으로 포트의 앞자리 숫자를 9로 변경하여 JBoss 5 서버/기본 인스턴스의 모든 포트를 변경했으며 작동하는 것으로 보입니다. 포트 충돌없이 JBoss 4와 JBoss 5를 시작할 수 있습니다.

제 동료 중 한 명은 제이보스 5가 모든 포트 번호를 지정된 양만큼 이동시키는 "리베이스"하는 방법이 있다고 들었다고 생각한다고 말했습니다. 이는 포트 설정을 수동으로 편집하는 것보다 더 깔끔한 솔루션입니다.

JBoss 5에서 포트 설정을 변경하여 JBoss 4와 동시에 실행할 수있는 간단한 방법이 있습니까?

답변

10

두 가지 답변. IP 별칭은 영리합니다.

나는 또한 JBoss 포럼에서이 질문을했으며 호출 할 수있는 대체 포트 바인딩 ("rebase"옵션)이 있다는 것을 알게되었습니다. 이 같은 보스를 시작 여기

run -Djboss.service.binding.set=ports-01 

가 (이 글에 상호 참조)는 JBoss 포럼에 스레드에 대한 링크입니다 : 오래된 주제를 착수의 약간의,하지만 난 '

http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4213775#4213775 
1

표준 방법이있을 수 있지만 실제로는 구성 파일에 대체 마커를 삽입하여 스크립팅했습니다. 아마도 변경해야하는 모든 포트 목록을 온라인에서 찾을 수 있습니다.

이렇게하면 포트 중첩되지 않는 포트 창을 설정하는 것이 너무 어렵지 않습니다. 여기

우리가 (더 개선 될 수있는)를 사용하고 시작 명령의 예 : 나는 "리베이스"옵션 모르겠어요

run.sh -c <service name> -DJPATH=/usr/local/bin:/usr/bin:/bin:/usr/local/jre1.6.0_03/bin/ -Djboss.bind.address=192.168.110.21 \ 
-Djboss.port.connector=37079 -Djboss.port.classloader=37080 -Djboss.port.naming=37081 -Djboss.port.namingrmi=37082 -Djboss.port.jmxrmi=37083 \ 
-Djboss.port.pooled=37084 -Djboss.port.jndinaming=37085 -Djboss.port.jndirmi=37086 -Djboss.port.jms=37087 -Djboss.port.ajp=37078 
2

하지만 간단한 방법은을 설정하는 것입니다 IP 별명을 지정하고 -b 옵션을 run.sh으로 지정하여 별명이있는 인터페이스에 바인드하십시오. 이것은 모든 포트를 변경하는 것보다 훨씬 쉽습니다. 각 JBoss 인스턴스가 자체 주소에 바인딩되어있는 한 포트는 동일하게 유지 될 수 있습니다. 예 :

$ sudo ip addr add dev lo local 127.0.0.100/24 
$ run.sh -b 127.0.0.1 
$ run.sh -b 127.0.0.100 
$ wget http://127.0.0.1:8080 
$ wget http://127.0.0.100:8080 

Voila! 하나의 호스트에 두 개의 JBoss 인스턴스가 있습니다.

1

우리의 DMZ에서 Jboss AS 4를 5로 마이그레이션 할 때 최근에 같은 질문을하고 있습니다. 최근 게시물을 찾을 수 없어서 2 센트를 여기에 추가 할 것으로 생각했습니다.

start-jboss4.sh :

#!/bin/sh 
nohup /etc/jboss-4.2.3.GA/bin/run.sh -b 10.0.0.51 > jboss4.log & 

start-jboss5.sh :

첫 번째 대답에서 나는 Jboss4 별도의 파일 (5) 실행 및 로깅을 모두 가지고 그 2 쉬 스크립트를 작성
#!/bin/sh 
nohup /etc/jboss-5.1.0.GA/bin/run.sh -Djboss.service.binding.set=ports-01 -b 10.0.0.51 >> jboss5.log & 

하지만이 솔루션을 사용하면 더 중요한 것은 다른 인스턴스를 삭제하지 않고 이러한 인스턴스 중 하나를 중지하는 방법을 스스로에게 묻는 것입니다. 그리고 이것은 다음 2 개의 스크립트가 나오는 곳입니다.

stop-jboss4.SH :

#!/bin/sh 
/etc/jboss-4.2.3.GA/bin/shutdown.sh -S -s jnp://10.0.0.51 

stop-jboss5.sh : 첫 번째 중지 스크립트는 제이 보스 '는 기본 JNDI 포트를 사용하는

#!/bin/sh 
/etc/jboss-5.1.0.GA/bin/shutdown.sh -S -s jnp://10.0.0.51:1199 

참고. 그러나 두 번째 시작 스크립트가 가져온 포트가 높으면 두 번째 중지 스크립트는 shutdown 명령을 보낼 때 사용할 JNDI 포트로 1199 (기본값 + 100)를 사용합니다.

희망이 있으면 도움이됩니다.

1

jboss.service.binding.set 속성은 JBoss 5에서만 사용됩니다. 따라서 JBoss 4를 다른 포트 프로필에 사용하려면 $ {JBOSS_HOME}/server/default/conf/jboss -service.xml.

ServiceBindingManager를 참조하는 요소를 찾고 ServerName 특성을 변경하십시오. 보스 (4)에 의해 사용

<mbean code="org.jboss.services.binding.ServiceBindingManager" 
    name="jboss.system:service=ServiceBindingManager"> 
    <attribute name="ServerName">ports-01</attribute> 
    <attribute name="StoreURL">${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml</attribute> 
    <attribute name="StoreFactoryClassName"> 
    org.jboss.services.binding.XMLServicesStoreFactory 
    </attribute> 
</mbean> 

포트 값은 $ {} JBOSS_HOME /docs/examples/binding-manager/sample-bindings.xml로부터 판독된다. 다음과 같이 기본 포트 프로파일 이름은 다음과 같습니다

  • 포트를 기본
  • 포트-01
  • 포트-02
  • 포트-03
관련 문제