jboss_eap_6.x_standalone_session_clustering

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
jboss_eap_6.x_standalone_session_clustering [2016/05/20 03:21] koovjboss_eap_6.x_standalone_session_clustering [2016/05/20 05:42] (현재) koov
줄 1: 줄 1:
 +====== JBoss EAP 6.x – Standalone Session Clustering ======
 +
 +원문출처 :  http://blog.beany.co.kr/archives/3971 이상훈 (imfjbh@gmail.com)
 +
 +
 ====== 설치환경 ====== ====== 설치환경 ======
   * CentOS 6.5   * CentOS 6.5
줄 19: 줄 24:
 sysctl -w net.core.wmem_max=1048576 sysctl -w net.core.wmem_max=1048576
 </code> </code>
 +</WRAP>
  
 ==== 영구적용 ==== ==== 영구적용 ====
줄 192: 줄 198:
 아래의 내용으로 시작 쉘 스크립트를 입력한 후 저장합니다. 아래의 내용으로 시작 쉘 스크립트를 입력한 후 저장합니다.
  
-/app/jboss-as/nodes/node01/jboss-env.shShell +<WRAP prewrap> 
 +<code vim /app/jboss-as/nodes/node01/jboss-env.sh>
 #!/bin/sh #!/bin/sh
  
줄 267: 줄 273:
 echo "JBOSS_GC_LOG=$JBOSS_GC_LOG" echo "JBOSS_GC_LOG=$JBOSS_GC_LOG"
 echo "==================================================================" echo "=================================================================="
-+</code> 
-+</WRAP> 
-+ 
-+=== jboss-run.sh – 실행 스크립트 (시작&종료) ===
-+
-+
-+
-+
-+
-10 +
-11 +
-12 +
-13 +
-14 +
-15 +
-16 +
-17 +
-18 +
-19 +
-20 +
-21 +
-22 +
-23 +
-24 +
-25 +
-26 +
-27 +
-28 +
-29 +
-30 +
-31 +
-32 +
-33 +
-34 +
-35 +
-36 +
-37 +
-38 +
-39 +
-40 +
-41 +
-42 +
-43 +
-44 +
-45 +
-46 +
-47 +
-48 +
-49 +
-50 +
-51 +
-52 +
-53 +
-54 +
-55 +
-56 +
-57 +
-58 +
-59 +
-60 +
-61 +
-62 +
-63 +
-64 +
-65 +
-66 +
-67 +
-68 +
-69 +
-70 +
-71 +
-72 +
-73 +
-#!/bin/sh +
-  +
-DATE=`date +%Y%m%d%H%M%S` +
-BASE_DIR=$(dirname $0) +
-  +
-export JBOSS_CONF=$BASE_DIR/jboss-env.conf +
-  +
-[ -r "$JBOSS_CONF" ] && . "${JBOSS_CONF}" +
-  +
-let JBOSS_CONTROLLER_PORT=9999+$JBOSS_PORT_OFFSET +
-export JBOSS_CONTROLLER_PORT +
-  +
-########## JBoss System module and User module directory ########## +
-export JBOSS_MODULEPATH=$JBOSS_HOME/modules:$JBOSS_HOME/modules/ext +
-  +
-# JVM Options : Server +
-export JAVA_OPTS="-server $JAVA_OPTS" +
-  +
-# JVM Options : Memory +
-export JAVA_OPTS=" $JAVA_OPTS -Xms1024m -Xmx1024m -XX:MaxPermSize=256m" +
-export JAVA_OPTS=" $JAVA_OPTS -XX:+PrintGCTimeStamps " +
-export JAVA_OPTS=" $JAVA_OPTS -XX:+PrintGCDetails " +
-export JAVA_OPTS=" $JAVA_OPTS -Xloggc:$JBOSS_GC_LOG" +
-export JAVA_OPTS=" $JAVA_OPTS -XX:+UseParallelGC " +
-#export JAVA_OPTS=" $JAVA_OPTS -XX:+UseConcMarkSweepGC " +
-export JAVA_OPTS=" $JAVA_OPTS -XX:+ExplicitGCInvokesConcurrent " +
-export JAVA_OPTS=" $JAVA_OPTS -XX:-HeapDumpOnOutOfMemoryError " +
-  +
-# Linux Large Page Setting +
-#export JAVA_OPTS=" $JAVA_OPTS -XX:+UseLargePages " +
-export JAVA_OPTS=" $JAVA_OPTS -verbose:gc" +
-export JAVA_OPTS=" $JAVA_OPTS -Djava.net.preferIPv4Stack=true" +
-export JAVA_OPTS=" $JAVA_OPTS -Dorg.jboss.resolver.warning=true" +
-export JAVA_OPTS=" $JAVA_OPTS -Dsun.rmi.dgc.client.gcInterval=3600000 " +
-export JAVA_OPTS=" $JAVA_OPTS -Dsun.rmi.dgc.server.gcInterval=3600000" +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.modules.system.pkgs=org.jboss.byteman" +
-export JAVA_OPTS=" $JAVA_OPTS -Djava.awt.headless=true" +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.server.base.dir=$JBOSS_NODE_BASE_DIR/$JBOSS_NODE_NAME" +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.server.log.dir=$JBOSS_BASE_LOG_DIR" +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.socket.binding.port-offset=$JBOSS_PORT_OFFSET" +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.node.name=$JBOSS_NODE_NAME" +
-  +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.bind.address.management=$JBOSS_MANAGEMENT_ADDR" +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.bind.address=$JBOSS_BIND_ADDR" +
-#export JAVA_OPTS=" $JAVA_OPTS -Djboss.bind_addr=$JBOSS_MULTICAST_ADDR" +
-#export JAVA_OPTS=" $JAVA_OPTS -Djboss.default.jgroups.stack=tcp" +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.default.multicast.address=$JBOSS_MULTICAST_ADDR" +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.messaging.group.address=$JBOSS_JMS_MULTICAST_ADDR" +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.modcluster.multicast.address=$JBOSS_MODCLUSTER_MULTICAST_ADDR" +
-export JAVA_OPTS=" $JAVA_OPTS -Dorg.jboss.as.logging.per-deployment=false" +
-export JAVA_OPTS=" $JAVA_OPTS -Dserver.mode=local" +
-  +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.server.config.user.dir=$JBOSS_DOMAIN_BASE_DIR/$JBOSS_DOMAIN_NAME/configuration" +
-export JAVA_OPTS=" $JAVA_OPTS -Djboss.domain.config.user.dir=$JBOSS_DOMAIN_BASE_DIR/$JBOSS_DOMAIN_NAME/configuration" +
-  +
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH +
-  +
-echo "==================================================================" +
-echo "JAVA_HOME=$JAVA_HOME" +
-echo "JBOSS_HOME=$JBOSS_HOME" +
-echo "JBOSS_NODE_NAME=$JBOSS_NODE_NAME" +
-echo "JBOSS_NODE_BASE_DIR=$JBOSS_NODE_BASE_DIR" +
-echo "JBOSS_CONFIG=$JBOSS_CONFIG" +
-  +
-echo "JBOSS_BIND_ADDR=$JBOSS_BIND_ADDR" +
-echo "JBOSS_PORT_OFFSET=$JBOSS_PORT_OFFSET" +
-echo "JBOSS_MULTICAST_ADDR=$JBOSS_MULTICAST_ADDR" +
-echo "JBOSS_CONTROLLER=$JBOSS_CONTROLLER_IP:$JBOSS_CONTROLLER_PORT" +
-  +
-echo "JBOSS_PIDFILE=$JBOSS_PIDFILE" +
-echo "JBOSS_CONSOLE_LOG=$JBOSS_CONSOLE_LOG" +
-echo "JBOSS_GC_LOG=$JBOSS_GC_LOG" +
-echo "==================================================================" +
-jboss-run.sh – 실행 스크립트 (시작&종료)+
  
 JBoss Node 실행 쉘 스크립트 파일을 생성합니다. JBoss Node 실행 쉘 스크립트 파일을 생성합니다.
  
-Shell+<WRAP prewrap> 
 +<code bash> 
 +vi /app/jboss-as/nodes/node01/jboss-run.sh 
 +</code> 
 +</WRAP>
  
-vi /app/jboss-as/nodes/node01/jboss-run.sh 
-1 
-vi /app/jboss-as/nodes/node01/jboss-run.sh 
 아래의 내용으로 실행 쉘 스크립트를 입력한 후 저장합니다. 아래의 내용으로 실행 쉘 스크립트를 입력한 후 저장합니다.
  
-/app/jboss-as/nodes/node01/jboss-run.shShell +<WRAP prewrap> 
 +<code vim /app/jboss-as/nodes/node01/jboss-run.sh>
 #!/bin/sh #!/bin/sh
  
줄 445: 줄 309:
  
 #tail -f $JBOSS_CONSOLE_LOG #tail -f $JBOSS_CONSOLE_LOG
-+</code> 
-+</WRAP> 
-+ 
-+==jboss-jconsole.sh – JConsole ===
-+
-+
-+
-+
-+
-10 +
-11 +
-12 +
-13 +
-14 +
-15 +
-16 +
-17 +
-18 +
-19 +
-#!/bin/sh +
-  +
-BASE_DIR=$(dirname $0) +
-  +
-. $BASE_DIR/jboss-env.sh +
-  +
-if [ "x$1" == "xstart" ]; then +
-  if [ -e $JBOSS_CONSOLE_LOG ]; then +
-    mv $JBOSS_CONSOLE_LOG $JBOSS_CONSOLE_LOG.$DATE +
-  fi +
-  +
-  if [ -e $JBOSS_GC_LOG ]; then +
-    mv $JBOSS_GC_LOG $JBOSS_GC_LOG.$DATE +
-  fi +
-fi +
-  +
-$JBOSS_HOME/bin/init.d/jboss-as-standalone.sh $1 +
-  +
-#tail -f $JBOSS_CONSOLE_LOG +
-jboss-jconsole.sh – JConsole+
  
 JConsole 쉘 스크립트 파일을 생성합니다. JConsole 쉘 스크립트 파일을 생성합니다.
  
-Shell +<WRAP prewrap> 
- +<code bash>
-vi /app/jboss-as/nodes/node01/jboss-jconsole.sh +
-1+
 vi /app/jboss-as/nodes/node01/jboss-jconsole.sh vi /app/jboss-as/nodes/node01/jboss-jconsole.sh
 +</code>
 +</WRAP>
 +
 아래의 내용을 JConsole 쉘 스크립트를 입력한 후 저장합니다. 아래의 내용을 JConsole 쉘 스크립트를 입력한 후 저장합니다.
  
-/app/jboss-as/nodes/node01/jboss-jconsole.shShell +<WRAP prewrap> 
 +<code vim /app/jboss-as/nodes/node01/jboss-jconsole.sh>
 #!/bin/sh #!/bin/sh
  
줄 507: 줄 337:
  
 $JBOSS_HOME/bin/jconsole.sh $JBOSS_HOME/bin/jconsole.sh
-+</code> 
-+</WRAP> 
-+ 
-+=== jboss-cli.sh – CLI ===
-+
-+
-+
-+
-+
-10 +
-11 +
-#!/bin/sh +
-  +
-BASE_DIR=$(dirname $0) +
-  +
-. $BASE_DIR/jboss-env.sh +
-  +
-echo "=======================================================" +
-echo " JMX URL : service:jmx:remoting-jmx://$JBOSS_MANAGEMENT_ADDR:$JBOSS_CONTROLLER_PORT" +
-echo "=======================================================" +
-  +
-$JBOSS_HOME/bin/jconsole.sh +
-jboss-cli.sh – CLI+
  
 CLI 쉘 스크립트 파일을 생성합니다. CLI 쉘 스크립트 파일을 생성합니다.
  
-Shell +<WRAP prewrap> 
- +<code bash>
-vi /app/jboss-as/nodes/node01/jboss-cli.sh +
-1+
 vi /app/jboss-as/nodes/node01/jboss-cli.sh vi /app/jboss-as/nodes/node01/jboss-cli.sh
 +</code>
 +</WRAP>
 +
 아래의 내용을 CLI 쉘 스크립트를 입력한 후 저장합니다. 아래의 내용을 CLI 쉘 스크립트를 입력한 후 저장합니다.
  
-/app/jboss-as/nodes/node01/jboss-cli.shShell +<WRAP prewrap> 
 +<code vim /app/jboss-as/nodes/node01/jboss-cli.sh>
 #!/bin/sh #!/bin/sh
  
줄 551: 줄 363:
  
 $JBOSS_HOME/bin/jboss-cli.sh --controller=$JBOSS_CONTROLLER_IP:$JBOSS_CONTROLLER_PORT --connect $@ $JBOSS_HOME/bin/jboss-cli.sh --controller=$JBOSS_CONTROLLER_IP:$JBOSS_CONTROLLER_PORT --connect $@
-+</code> 
-+</WRAP> 
-+ 
-+=== 실행권한 부여 ===
-+
-+
-+
-+
-+
-#!/bin/sh +
-  +
-BASE_DIR=$(dirname $0) +
-  +
-. $BASE_DIR/jboss-env.sh +
-  +
-export JAVA_OPTS=" -Djava.awt.headless=false $JAVA_OPTS" +
-  +
-$JBOSS_HOME/bin/jboss-cli.sh --controller=$JBOSS_CONTROLLER_IP:$JBOSS_CONTROLLER_PORT --connect $@ +
-실행권한 부여+
  
 쉘 스크립트에 실행 권한을 부여합니다. 쉘 스크립트에 실행 권한을 부여합니다.
  
-Shell +<WRAP prewrap> 
 +<code bash>
 chmod 755 /app/jboss-as/nodes/node01/*.sh chmod 755 /app/jboss-as/nodes/node01/*.sh
-1 +</code> 
-chmod 755 /app/jboss-as/nodes/node01/*.sh +</WRAP> 
-설정+ 
 +==== 설정 ====
  
 Standalone 기반의 Clustering 구성을 위하여 standalone-ha.xml 파일을 수정합니다. Standalone 기반의 Clustering 구성을 위하여 standalone-ha.xml 파일을 수정합니다.
  
-Shell +<WRAP prewrap> 
- +<code bash>
-vi /app/jboss-as/nodes/node01/configuration/standalone-ha.xml +
-1+
 vi /app/jboss-as/nodes/node01/configuration/standalone-ha.xml vi /app/jboss-as/nodes/node01/configuration/standalone-ha.xml
 +</code>
 +</WRAP>
 +
 아래의 항목을 다음과 같이 수정또는 추가합니다. 아래의 항목을 다음과 같이 수정또는 추가합니다.
 +  * ''deployment-scanner'' -> ''path : Web Application'' 배포 디렉토리를 지정합니다.
 +  * ''deployment-scanner'' -> ''scan-interval : path'' (Web Application 배포 디렉토리) 의 파일들에 대한 변경 감지 시간을 설정합니다. (1/1000 초) 0 으로 설정시 변경 감지를 하지 않습니다.
 +  * ''deployment-scanner'' -> ''auto-deploy-exploded : true'' 로 설정했을 경우 war 파일이 아닌 디렉토리로 설정할 수 있습니다.
 +  * ''instance-id'' : ''jvmRoute'' 기능을 하기 위한 설정이며, 설정값 ''${jboss.node.name}'' 는 외부 설정값으로 대체됩니다.
 +  * ''enable-welcome-root'' : ROOT Context 를 사용할 경우 false 로 설정합니다. true 로 설정이 되어있을 경우 Root Context 는 JBoss 에 기본으로 내장되어 있는 Content 를 표시하게 됩니다.
  
-deployment-scanner -path : Web Application 배포 디렉토리를 지정합니다. +<WRAP prewrap
-deployment-scanner -> scan-interval : path (Web Application 배포 디렉토리) 의 파일들에 대한 변경 감지 시간을 설정합니다. (1/1000 초) “0” 으로 설정시 변경 감지를 하지 않습니다. +<code vim /app/jboss-as/nodes/node01/configuration/standalone-ha.xml>
-deployment-scanner -> auto-deploy-exploded : true 로 설정했을 경우 war 파일이 아닌 디렉토리로 설정할 수 있습니다. +
-instance-id : jvmRoute 기능을 하기 위한 설정이며, 설정값 ${jboss.node.name} 는 외부 설정값으로 대체됩니다. +
-enable-welcome-root : ROOT Context 를 사용할 경우 false 로 설정합니다. true 로 설정이 되어있을 경우 Root Context 는 JBoss 에 기본으로 내장되어 있는 Content 를 표시하게 됩니다. +
-/app/jboss-as/nodes/node01/configuration/standalone-ha.xmlXHTML +
- +
-<?xml version='1.0' encoding='UTF-8'?> +
- +
-<server xmlns="urn:jboss:domain:1.5"> +
- +
-    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +
- +
-    <profile> +
- +
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +
- +
-        <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1"> +
-            <!-- +
-            <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/> +
-            --> +
-            <deployment-scanner path="/app/webapps/deployments" scan-interval="0" auto-deploy-exploded="true" /> +
- +
-        </subsystem> +
- +
-        <subsystem xmlns="urn:jboss:domain:web:1.5" default-virtual-server="default-host" instance-id="${jboss.node.name}" native="false"> +
-            <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> +
-            <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/> +
-            <virtual-server name="default-host" enable-welcome-root="false"> +
-                <alias name="localhost"/> +
-                <alias name="example.com"/> +
-            </virtual-server> +
-        </subsystem> +
- +
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +
- +
-    </profile> +
- +
-    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +
- +
-</server> +
-+
-+
-+
-+
-+
-+
-+
-+
-+
-10 +
-11 +
-12 +
-13 +
-14 +
-15 +
-16 +
-17 +
-18 +
-19 +
-20 +
-21 +
-22 +
-23 +
-24 +
-25 +
-26 +
-27 +
-28 +
-29 +
-30 +
-31 +
-32 +
-33 +
-34+
 <?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
    
줄 698: 줄 429:
    
 </server> </server>
-JBoss Clustering Node 추가+</code> 
 +</WRAP> 
 + 
 +===== JBoss Clustering Node 추가 ===== 
 하나의 물리적인 서버에 Clustering Node 추가 작업에 대한 설명입니다. 하나의 물리적인 서버에 Clustering Node 추가 작업에 대한 설명입니다.
  
-Standalone Node 복사+==== Standalone Node 복사 ====
  
 아래의 명령을 실행하여 기존의 JBoss Home 폴더의 standalone 폴더를 복사한 후 해당 Node 의 이름을 변경합니다. 아래의 명령을 실행하여 기존의 JBoss Home 폴더의 standalone 폴더를 복사한 후 해당 Node 의 이름을 변경합니다.
  
-현재는 기존의 /app/jboss-as/nodes/node01” 폴더가 존재하기 때문에 /app/jboss-as/nodes/node02” 로 설정합니다. +현재는 기존의 ''/app/jboss-as/nodes/node01'' 폴더가 존재하기 때문에 ''/app/jboss-as/nodes/node02'' 로 설정합니다.
- +
-Shell+
  
 +<WRAP prewrap>
 +<code bash>
 cp -R /app/jboss-as/jboss-eap-6.2/standalone /app/jboss-as/nodes cp -R /app/jboss-as/jboss-eap-6.2/standalone /app/jboss-as/nodes
 mv /app/jboss-as/nodes/standalone /app/jboss-as/nodes/node02 mv /app/jboss-as/nodes/standalone /app/jboss-as/nodes/node02
-+</code> 
-+</WRAP>
-cp -R /app/jboss-as/jboss-eap-6.2/standalone /app/jboss-as/nodes +
-mv /app/jboss-as/nodes/standalone /app/jboss-as/nodes/node02 +
-실행 스크립트 복사+
  
-“/app/jboss-as/nodes/node01” 에서 생성한 실행 스크립트를 신규로 생성하는 Node 로 복사합니다.+==== 실행 스크립트 복사 ====
  
-Shell+''/app/jboss-as/nodes/node01'' 에서 생성한 실행 스크립트를 신규로 생성하는 Node 로 복사합니다.
  
 +<WRAP prewrap>
 +<code bash>
 cp /app/jboss-as/nodes/node01/*.sh /app/jboss-as/nodes/node01/*.conf /app/jboss-as/nodes/node02 cp /app/jboss-as/nodes/node01/*.sh /app/jboss-as/nodes/node01/*.conf /app/jboss-as/nodes/node02
-1 +</code> 
-cp /app/jboss-as/nodes/node01/*.sh /app/jboss-as/nodes/node01/*.conf /app/jboss-as/nodes/node02 +</WRAP>
-환경설정+
  
-아래의 명령을 실행하여 “jboss-env.conf” 파일을 편집합니다.+==== 환경설정 ====
  
-Shell+아래의 명령을 실행하여 ''jboss-env.conf'' 파일을 편집합니다.
  
 +<WRAP prewrap>
 +<code bash>
 vi /app/jboss-as/nodes/node02/jboss-env.conf vi /app/jboss-as/nodes/node02/jboss-env.conf
-1 +</code> 
-vi /app/jboss-as/nodes/node02/jboss-env.conf+</WRAP> 
 아래의 항목을 현재 설정에 맞도록 수정한 후 저장합니다. 아래의 항목을 현재 설정에 맞도록 수정한 후 저장합니다.
  
-/app/jboss-as/nodes/node02/jboss.confShell +<WRAP prewrap> 
 +<code vim /app/jboss-as/nodes/node02/jboss.conf>
 JAVA_HOME=/opt/jdk1.7.0_55 JAVA_HOME=/opt/jdk1.7.0_55
  
줄 763: 줄 499:
 STARTUP_WAIT=30 STARTUP_WAIT=30
 SHUTDOWN_WAIT=30 SHUTDOWN_WAIT=30
-+</code> 
-+</WRAP>
-+
-+
-+
-+
-+
-+
-+
-10 +
-11 +
-12 +
-13 +
-14 +
-15 +
-16 +
-17 +
-18 +
-19 +
-20 +
-21 +
-22 +
-23 +
-24 +
-25 +
-26 +
-JAVA_HOME=/opt/jdk1.7.0_55 +
-  +
-JBOSS_NODE_NAME=node02 +
-JBOSS_PORT_OFFSET=200 +
-  +
-JBOSS_USER=wasadmin +
-JBOSS_HOME=/app/jboss-as/jboss-eap-6.2 +
-JBOSS_NODE_BASE_DIR=/app/jboss-as/nodes +
-  +
-JBOSS_PIDFILE=/var/run/jboss-as/jboss-as-$JBOSS_NODE_NAME.pid +
-JBOSS_CONFIG=standalone-ha.xml +
-JBOSS_BASE_LOG_DIR=/var/log/jboss-as +
-JBOSS_CONSOLE_LOG=$JBOSS_BASE_LOG_DIR/$JBOSS_NODE_NAME-console.log +
-JBOSS_GC_LOG=$JBOSS_BASE_LOG_DIR/$JBOSS_NODE_NAME-gc.log +
-  +
-JBOSS_BIND_ADDR=0.0.0.0 +
-JBOSS_MANAGEMENT_ADDR=127.0.0.1 +
-JBOSS_CONTROLLER_IP=$JBOSS_MANAGEMENT_ADDR +
-JBOSS_MULTICAST_ADDR=230.0.0.4 +
-JBOSS_JMS_MULTICAST_ADDR=231.7.0.1 +
-JBOSS_MODCLUSTER_MULTICAST_ADDR=224.0.1.105 +
-  +
-LAUNCH_JBOSS_IN_BACKGROUND=true +
-  +
-STARTUP_WAIT=30 +
-SHUTDOWN_WAIT=30 +
-기본 Node 에서 “standalone-ha.xml” 파일을 복사합니다.+
  
-Shell+기본 Node 에서 ''standalone-ha.xml'' 파일을 복사합니다.
  
 +<WRAP prewrap>
 +<code bash>
 cp /app/jboss-as/nodes/node01/configuration/standalone-ha.xml /app/jboss-as/nodes/node02/configuration/ cp /app/jboss-as/nodes/node01/configuration/standalone-ha.xml /app/jboss-as/nodes/node02/configuration/
-1 +</code> 
-cp /app/jboss-as/nodes/node01/configuration/standalone-ha.xml /app/jboss-as/nodes/node02/configuration+</WRAP> 
-전체 Node 실행 Shell Script+ 
 +===== 전체 Node 실행 Shell Script ===== 
 JBoss Node 기본 디렉토리로 이동합니다. JBoss Node 기본 디렉토리로 이동합니다.
  
-Shell +<WRAP prewrap> 
 +<code bash>
 cd /app/jboss-as/nodes cd /app/jboss-as/nodes
-1 +</code> 
-cd /app/jboss-as/nodes +</WRAP> 
-all-run.sh – 전체 실행 기본 스크립트+ 
 +==== all-run.sh – 전체 실행 기본 스크립트 ====
  
 아래의 명령을 실행하여 전체 실행시 공통으로 사용할 run-all.sh 파일을 생성합니다. 아래의 명령을 실행하여 전체 실행시 공통으로 사용할 run-all.sh 파일을 생성합니다.
  
-Shell+<WRAP prewrap> 
 +<code bash> 
 +vi /app/jboss-as/nodes/all-run.sh 
 +</code> 
 +</WRAP>
  
-vi /app/jboss-as/nodes/all-run.sh 
-1 
-vi /app/jboss-as/nodes/all-run.sh 
 아래와 같이 Shell Script 작성 후 저장합니다. 아래와 같이 Shell Script 작성 후 저장합니다.
  
-/app/jboss-as/nodes/all-run.shShell +<WRAP prewrap> 
 +<code vim /app/jboss-as/nodes/all-run.sh>
 #!/bin/sh #!/bin/sh
  
줄 869: 줄 560:
  
 IFS=$BAKIFS; IFS=$BAKIFS;
-1 +</code> 
-+</WRAP> 
-+ 
-+==== all-start.sh – 전체 시작 ====
-+
-+
-+
-+
-+
-10 +
-11 +
-12 +
-13 +
-14 +
-15 +
-16 +
-17 +
-18 +
-19 +
-20 +
-21 +
-22 +
-23 +
-24 +
-25 +
-26 +
-#!/bin/sh +
-  +
-if [ "x$1" == "x" ]; then +
-    exit 0 +
-fi +
-  +
-BAKIFS=$IFS; +
-IFS=','; +
-  +
-BASE_NODE_DIR=$(dirname $0) +
-WAIT=3 +
-  +
-nodes="node01,node02"; +
-nodeArray=($nodes); +
-  +
-for ((i=0; i<${#nodeArray[@]}; ++i)); +
-do +
-    echo ">>> Run Node : ${nodeArray[$i]}"; +
-  +
-    runScript="${BASE_NODE_DIR}/${nodeArray[$i]}/jboss-run.sh $1"; +
-    eval $runScript +
-  +
-    sleep $WAIT +
-done +
-  +
-IFS=$BAKIFS; +
-all-start.sh – 전체 시작+
  
 아래의 명령을 실행하여 전체 시작 Shell Script 파일을 생성합니다. 아래의 명령을 실행하여 전체 시작 Shell Script 파일을 생성합니다.
  
-Shell +<WRAP prewrap> 
- +<code bash>
-vi /app/jboss-as/nodes/all-start.sh +
-1+
 vi /app/jboss-as/nodes/all-start.sh vi /app/jboss-as/nodes/all-start.sh
 +</code>
 +</WRAP>
 +
 아래와 같이 Shell Script 작성 후 저장합니다. 아래와 같이 Shell Script 작성 후 저장합니다.
  
-/app/jboss-as/nodes/all-start.shShell +<WRAP prewrap> 
 +<code vim /app/jboss-as/nodes/all-start.sh>
 #!/bin/sh #!/bin/sh
  
줄 939: 줄 582:
  
 $BASE_NODE_DIR/all-run.sh start $BASE_NODE_DIR/all-run.sh start
-+</code> 
-+</WRAP>
-+
-+
-+
-#!/bin/sh +
-  +
-BASE_NODE_DIR=$(dirname $0) +
-  +
-$BASE_NODE_DIR/all-run.sh start +
-all-stop.sh – 전체 종료+
  
-아래의 명령을 실행하여 전체 종료 Shell Script 파일을 생성합니다. +==== all-stop.sh – 전체 종료 ====
- +
-Shell+
  
 +아래의 명령을 실행하여 전체 종료 Shell Script 파일을 생성합니다.
 +<WRAP prewrap>
 +<code bash>
 vi /app/jboss-as/nodes/all-stop.sh vi /app/jboss-as/nodes/all-stop.sh
-1 +</code> 
-vi /app/jboss-as/nodes/all-stop.sh+</WRAP> 
 아래와 같이 Shell Script 작성 후 저장합니다. 아래와 같이 Shell Script 작성 후 저장합니다.
  
-/app/jboss-as/nodes/all-stop.shShell +<WRAP prewrap> 
 +<code vim /app/jboss-as/nodes/all-stop.sh>
 #!/bin/sh #!/bin/sh
  
줄 967: 줄 603:
  
 $BASE_NODE_DIR/all-run.sh stop $BASE_NODE_DIR/all-run.sh stop
-+</code> 
-+</WRAP> 
-+ 
-+==== all-restart.sh – 전체 재시작 ====
-5 +
-#!/bin/sh +
-  +
-BASE_NODE_DIR=$(dirname $0) +
-  +
-$BASE_NODE_DIR/all-run.sh stop +
-all-restart.sh – 전체 재시작+
  
 아래의 명령을 실행하여 전체 재시작 Shell Script 파일을 생성합니다. 아래의 명령을 실행하여 전체 재시작 Shell Script 파일을 생성합니다.
  
-Shell+<WRAP prewrap> 
 +<code bash> 
 +vi /app/jboss-as/nodes/all-restart.sh 
 +</code> 
 +</WRAP>
  
-vi /app/jboss-as/nodes/all-restart.sh 
-1 
-vi /app/jboss-as/nodes/all-restart.sh 
 아래와 같이 Shell Script 작성 후 저장합니다. 아래와 같이 Shell Script 작성 후 저장합니다.
  
-/app/jboss-as/nodes/all-restart.shShell +<WRAP prewrap> 
 +<code vim /app/jboss-as/nodes/all-restart.sh>
 #!/bin/sh #!/bin/sh
  
줄 995: 줄 625:
  
 $BASE_NODE_DIR/all-run.sh restart $BASE_NODE_DIR/all-run.sh restart
-1 +</code> 
-+</WRAP> 
-+ 
-+==== all-log.sh – 콘솔 로그 전체 보기 ====
-+
-#!/bin/sh +
-  +
-BASE_NODE_DIR=$(dirname $0) +
-  +
-$BASE_NODE_DIR/all-run.sh restart +
-all-log.sh – 콘솔 로그 전체 보기+
  
 아래의 명령을 실행하여 콘솔로그 전체 보기 Shell Script 파일을 생성합니다. 아래의 명령을 실행하여 콘솔로그 전체 보기 Shell Script 파일을 생성합니다.
  
-Shell +<WRAP prewrap> 
- +<code bash>
-vi /app/jboss-as/nodes/all-log.sh +
-1+
 vi /app/jboss-as/nodes/all-log.sh vi /app/jboss-as/nodes/all-log.sh
-아래와 같이 Shell Script 작성 후 저장합니다.+</code> 
 +</WRAP>
  
-/app/jboss-as/nodes/all-log.shShell+아래와 같이 Shell Script 작성 후 저장합니다.
  
 +<WRAP prewrap>
 +<code vim /app/jboss-as/nodes/all-log.sh>
 #!/bin/sh #!/bin/sh
  
 tail -n 50 -f /var/log/jboss-as/node*-console.log tail -n 50 -f /var/log/jboss-as/node*-console.log
-+</code> 
-+</WRAP>
-+
-#!/bin/sh +
-  +
-tail -n 50 -f /var/log/jboss-as/node*-console.log +
-실행권한 부여 +
-쉘 스크립트에 실행권한을 부여합니다.+
  
-Shell+===== 실행권한 부여 =====
  
 +쉘 스크립트에 실행권한을 부여합니다.
 +
 +<WRAP prewrap>
 +<code bash>
 chmod 755 /app/jboss-as/nodes/*.sh chmod 755 /app/jboss-as/nodes/*.sh
-1 +</code> 
-chmod 755 /app/jboss-as/nodes/*.sh +</WRAP>
-소유권 변경 +
-아래의 명령을 실행하여 JBoss 설치 관련 디렉토리의 소유권을 변경합니다.+
  
-Shell+===== 소유권 변경 =====
  
 +아래의 명령을 실행하여 JBoss 설치 관련 디렉토리의 소유권을 변경합니다.
 +
 +<WRAP prewrap>
 +<code bash>
 chown -R wasadmin:wasadmin /app/jboss-as /app/webapps /var/log/jboss-as chown -R wasadmin:wasadmin /app/jboss-as /app/webapps /var/log/jboss-as
-1 +</code> 
-chown -R wasadmin:wasadmin /app/jboss-as /app/webapps /var/log/jboss-as +</WRAP>
-Clustering Sample Application 생성 +
-Sample Application 배포 폴더를 생성합니다.+
  
-Shell+====== Clustering Sample Application 생성 ======
  
 +Sample Application 배포 폴더를 생성합니다.
 +
 +<WRAP prewrap>
 +<code bash>
 mkdir -p /app/webapps/deployments/clustering.war/WEB-INF mkdir -p /app/webapps/deployments/clustering.war/WEB-INF
-1 +</code> 
-mkdir -p /app/webapps/deployments/clustering.war/WEB-INF +</WRAP>
-web.xml +
-web.xml 파일을 생성합니다.+
  
-Shell+===== web.xml =====
  
 +web.xml 파일을 생성합니다.
 +
 +<WRAP prewrap>
 +<code bash>
 vi /app/webapps/deployments/clustering.war/WEB-INF/web.xml vi /app/webapps/deployments/clustering.war/WEB-INF/web.xml
-1 +</code> 
-vi /app/webapps/deployments/clustering.war/WEB-INF/web.xml+</WRAP> 
 web.xml 의 설정을 다음과 같이 입력한 후 저장합니다. web.xml 의 설정을 다음과 같이 입력한 후 저장합니다.
  
-<distributable/> : Web Application 을 Session Clustering 에 참여시킵니다. +  * ''<distributable/>'' : Web Application 을 Session Clustering 에 참여시킵니다. 
-/app/webapps/deployments/clustering.war/WEB-INF/web.xmlShell +<WRAP prewrap> 
 +<code vim /app/webapps/deployments/clustering.war/WEB-INF/web.xml>
 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
줄 1076: 줄 705:
  
 </web-app> </web-app>
-+</code
-+</WRAP>
-+
-+
-+
-+
-+
-+
-+
-10 +
-11 +
-12 +
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +
-        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" +
-        version="3.0"+
-  +
-    <display-name>JBoss Sample Web App</display-name> +
-    <welcome-file-list> +
-        <welcome-file>/index.jsp</welcome-file> +
-    </welcome-file-list> +
-  +
-    <distributable/> +
-  +
-</web-app> +
-jboss-web.xml +
-jboss-web.xml 파일을 생성합니다.+
  
-Shell+===== jboss-web.xml =====
  
 +jboss-web.xml 파일을 생성합니다.
 +
 +<WRAP prewrap>
 +<code bash>
 vi /app/webapps/deployments/clustering.war/WEB-INF/jboss-web.xml vi /app/webapps/deployments/clustering.war/WEB-INF/jboss-web.xml
-1 +</code> 
-vi /app/webapps/deployments/clustering.war/WEB-INF/jboss-web.xml+</WRAP> 
 jboss-web.xml 을 아래와 같이 설장한 후 저장합니다. jboss-web.xml 을 아래와 같이 설장한 후 저장합니다.
  
-<context-root> : Context Path 을 지정하는 옵션입니다. +  * ''<context-root>'' : Context Path 을 지정하는 옵션입니다.
-/app/webapps/deployments/clustering.war/WEB-INF/jboss-web.xmlXHTML+
  
 +<WRAP prewrap>
 +<code vim /app/webapps/deployments/clustering.war/WEB-INF/jboss-web.xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
  
줄 1118: 줄 729:
     <context-root>clustering</context-root>     <context-root>clustering</context-root>
 </jboss-web> </jboss-web>
-+</code
-+</WRAP
-+ 
-+===== index.jsp ===== 
-+
-<?xml version="1.0" encoding="UTF-8"?> +
-  +
-<jboss-web> +
-    <context-root>clustering</context-root+
-</jboss-web+
-index.jsp+
 index.jsp 파일을 생성합니다. index.jsp 파일을 생성합니다.
  
-Shell+<WRAP prewrap> 
 +<code bash> 
 +vi /app/webapps/deployments/clustering.war/index.jsp 
 +</code> 
 +</WRAP>
  
-vi /app/webapps/deployments/clustering.war/index.jsp 
-1 
-vi /app/webapps/deployments/clustering.war/index.jsp 
 아래의 내용을 입력한 후 저장합니다. 아래의 내용을 입력한 후 저장합니다.
  
-/app/webapps/deployments/clustering.war/index.jspJava +<WRAP prewrap> 
 +<code vim /app/webapps/deployments/clustering.war/index.jsp>
 <%@ page session="true" %> <%@ page session="true" %>
  
줄 1166: 줄 772:
 </body> </body>
 </html> </html>
-+</code
-+</WRAP
-+ 
-+====== 방화벽 설정 ====== 
-+
-+
-+
-+
-+
-10 +
-11 +
-12 +
-13 +
-14 +
-15 +
-16 +
-17 +
-18 +
-19 +
-20 +
-21 +
-22 +
-23 +
-24 +
-25 +
-26 +
-<%@ page session="true" %> +
-  +
-<html> +
-<head> +
-    <title>Session Tracking Test</title+
-</head+
-<body> +
-<h1>Session Tracking Test</h1> +
-Session tracking with JSP is easy +
-<p> +
-<% +
-// Get the session data value +
-Integer ival (Integer) session.getValue ("counter"); +
-  +
-if (ival == null) ival new Integer (1); +
-else ival new Integer (ival.intValue() + 1); +
-session.putValue ("counter", ival); +
-%> +
-<h4>Server Name : <%=session.getId().substring(session.getId().indexOf(".") + 1) %></h4> +
-You have hit this page <%= ival %> times.<br> +
-<% +
-out.println("Your Session ID is " + session.getId() + "<br>"); +
-System.out.println("session=" + session.getId() + ", counter=" + ival); +
-%> +
-</body> +
-</html> +
-방화벽 설정+
 아래의 명령을 실행하여 방화벽 정책 파일을 편집합니다. 아래의 명령을 실행하여 방화벽 정책 파일을 편집합니다.
  
-Shell+<WRAP prewrap> 
 +<code bash> 
 +vi /etc/sysconfig/iptables 
 +</code> 
 +</WRAP>
  
-vi /etc/sysconfig/iptables 
-1 
-vi /etc/sysconfig/iptables 
 방화벽 정책은 JBoss 가 구성될 네트워크의 환경에 맞도록 수정한 저장합니다. 방화벽 정책은 JBoss 가 구성될 네트워크의 환경에 맞도록 수정한 저장합니다.
  
-/etc/sysconfig/iptablesShell +<WRAP prewrap> 
 +<code vim /etc/sysconfig/iptables>
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8180 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 8180 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8280 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 8280 -j ACCEPT
줄 1241: 줄 800:
 -A INPUT -m iprange --src-range 192.168.122.21-192.168.122.23 -p udp -j ACCEPT -A INPUT -m iprange --src-range 192.168.122.21-192.168.122.23 -p udp -j ACCEPT
 #-A INPUT -s 192.168.122.0/24 -p udp -j ACCEPT #-A INPUT -s 192.168.122.0/24 -p udp -j ACCEPT
-+</code> 
-+</WRAP> 
-+
-+
-+
-+
-+
-+
-+
-10 +
-11 +
--A INPUT -m state --state NEW -m tcp -p tcp --dport 8180 -j ACCEPT +
--A INPUT -m state --state NEW -m tcp -p tcp --dport 8280 -j ACCEPT +
-  +
--A INPUT -m iprange --src-range 192.168.122.21-192.168.122.23 -p tcp -m tcp --dport 7600  -j ACCEPT +
--A INPUT -m iprange --src-range 192.168.122.21-192.168.122.23 -p tcp -m tcp --dport 54200 -j ACCEPT +
--A INPUT -m iprange --src-range 192.168.122.21-192.168.122.23 -p tcp -m tcp --dport 57600 -j ACCEPT +
--A INPUT -s 230.0.0.4/32   -p udp -m udp --dport 45688 -j ACCEPT +
--A INPUT -s 230.0.0.4/32   -p udp -m udp --dport 45700 -j ACCEPT +
--A INPUT -s 224.0.1.105/32 -p udp -m udp --dport 23364 -j ACCEPT +
--A INPUT -m iprange --src-range 192.168.122.21-192.168.122.23 -p udp -j ACCEPT +
-#-A INPUT -s 192.168.122.0/24 -p udp -j ACCEPT+
 아래의 명령을 실행하여 방화벽 정책을 적용합니다. 아래의 명령을 실행하여 방화벽 정책을 적용합니다.
  
-Shell +<WRAP prewrap> 
 +<code bash>
 service iptables restart service iptables restart
-1 +</code> 
-service iptables restart +</WRAP> 
- + 
 +====== 실행 확인 ====== 
 + 
 +===== JBoss Cluster Node 실행 =====
  
-실행 확인 
-JBoss Cluster Node 실행 
 아래의 명령을 실행하여 JBoss Cluster Node 를 모두 실행합니다. 아래의 명령을 실행하여 JBoss Cluster Node 를 모두 실행합니다.
  
-Shell +<WRAP prewrap> 
- +<code bash>
-/app/jboss-as/nodes/all-start.sh +
-1+
 /app/jboss-as/nodes/all-start.sh /app/jboss-as/nodes/all-start.sh
 +</code>
 +</WRAP>
 +
 정상적으로 실행되면 아래와 같이 메시지가 출력이 됩니다. 정상적으로 실행되면 아래와 같이 메시지가 출력이 됩니다.
  
-Shell +<WRAP prewrap> 
 +<code bash>
 >>> Run Node : node01 >>> Run Node : node01
 ================================================================== ==================================================================
줄 1317: 줄 859:
 ================================================================== ==================================================================
 Starting jboss-as:                                          OK  ] Starting jboss-as:                                          OK  ]
-+</code
-+</WRAP
-+ 
-+====== Clustering 동작 로그 확인 ====== 
-+
-+
-+
-+
-+
-10 +
-11 +
-12 +
-13 +
-14 +
-15 +
-16 +
-17 +
-18 +
-19 +
-20 +
-21 +
-22 +
-23 +
-24 +
-25 +
-26 +
-27 +
-28 +
-29 +
-30 +
-31 +
-32 +
->>> Run Node : node01 +
-================================================================== +
-JAVA_HOME=/opt/jdk1.7.0_55 +
-JBOSS_HOME=/app/jboss-as/jboss-eap-6.2 +
-JBOSS_NODE_NAME=node01 +
-JBOSS_NODE_BASE_DIR=/app/jboss-as/nodes +
-JBOSS_CONFIG=standalone-ha.xml +
-JBOSS_BIND_ADDR=0.0.0.0 +
-JBOSS_PORT_OFFSET=100 +
-JBOSS_MULTICAST_ADDR=230.0.0.4 +
-JBOSS_CONTROLLER=127.0.0.1:10099 +
-JBOSS_PIDFILE=/var/run/jboss-as/jboss-as-node01.pid +
-JBOSS_CONSOLE_LOG=/var/log/jboss-as/node01-console.log +
-JBOSS_GC_LOG=/var/log/jboss-as/node01-gc.log +
-================================================================== +
-Starting jboss-as:                                          OK  ] +
->>> Run Node : node02 +
-================================================================== +
-JAVA_HOME=/opt/jdk1.7.0_55 +
-JBOSS_HOME=/app/jboss-as/jboss-eap-6.2 +
-JBOSS_NODE_NAME=node02 +
-JBOSS_NODE_BASE_DIR=/app/jboss-as/nodes +
-JBOSS_CONFIG=standalone-ha.xml +
-JBOSS_BIND_ADDR=0.0.0.0 +
-JBOSS_PORT_OFFSET=200 +
-JBOSS_MULTICAST_ADDR=230.0.0.4 +
-JBOSS_CONTROLLER=127.0.0.1:10199 +
-JBOSS_PIDFILE=/var/run/jboss-as/jboss-as-node02.pid +
-JBOSS_CONSOLE_LOG=/var/log/jboss-as/node02-console.log +
-JBOSS_GC_LOG=/var/log/jboss-as/node02-gc.log +
-================================================================== +
-Starting jboss-as:                                          OK  ] +
-Clustering 동작 로그 확인+
 아래의 명령을 실행하여 “node01” 서버의 로그를 출력합니다. 아래의 명령을 실행하여 “node01” 서버의 로그를 출력합니다.
  
-Shell +<WRAP prewrap> 
 +<code bash>
 tail -n 100 /var/log/jboss-as/node01-console.log tail -n 100 /var/log/jboss-as/node01-console.log
-1 +</code> 
-tail -n 100 /var/log/jboss-as/node01-console.log +</WRAP>
-아래와 같이 Cluster member 개수와 하단에 “node02” 가 등록되었다는 메시지를 확인 하실수 있습니다. 현재 Cluster member 가 1 개로 표시된 것은 “node01” 이 처음에 실행이 되어서 현재 등록 되어있는 Cluster member 가 존재하지 않기 때문입니다.+
  
-Shell+아래와 같이 Cluster member 개수와 하단에 ''node02'' 가 등록되었다는 메시지를 확인 하실수 있습니다. 현재 Cluster member 가 1 개로 표시된 것은 ''node01'' 이 처음에 실행이 되어서 현재 등록 되어있는 Cluster member 가 존재하지 않기 때문입니다.
  
 +<WRAP prewrap>
 +<code bash>
 17:16:06,477 INFO  [org.infinispan.factories.GlobalComponentRegistry] (ServerService Thread Pool -- 53) ISPN000128: Infinispan version: Infinispan 'Delirium' 5.2.7.Final 17:16:06,477 INFO  [org.infinispan.factories.GlobalComponentRegistry] (ServerService Thread Pool -- 53) ISPN000128: Infinispan version: Infinispan 'Delirium' 5.2.7.Final
 17:16:06,507 INFO  [org.jboss.as.clustering] (MSC service thread 1-3) JBAS010238: Number of cluster members: 1 17:16:06,507 INFO  [org.jboss.as.clustering] (MSC service thread 1-3) JBAS010238: Number of cluster members: 1
줄 1404: 줄 887:
 17:16:15,553 INFO  [org.jboss.as.clustering] (Incoming-1,shared=udp) JBAS010225: New cluster view for partition web (id: 1, delta: 1, merge: false) : [node01/web, node02/web] 17:16:15,553 INFO  [org.jboss.as.clustering] (Incoming-1,shared=udp) JBAS010225: New cluster view for partition web (id: 1, delta: 1, merge: false) : [node01/web, node02/web]
 17:16:15,553 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (Incoming-1,shared=udp) ISPN000094: Received new cluster view: [node01/web|1] [node01/web, node02/web] 17:16:15,553 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (Incoming-1,shared=udp) ISPN000094: Received new cluster view: [node01/web|1] [node01/web, node02/web]
-+</code> 
-+</WRAP>
-+
-+
-+
-+
-+
-+
-+
-10 +
-11 +
-17:16:06,477 INFO  [org.infinispan.factories.GlobalComponentRegistry] (ServerService Thread Pool -- 53) ISPN000128: Infinispan version: Infinispan 'Delirium' 5.2.7.Final +
-17:16:06,507 INFO  [org.jboss.as.clustering] (MSC service thread 1-3) JBAS010238: Number of cluster members: 1 +
-17:16:06,525 INFO  [org.infinispan.factories.TransactionManagerFactory] (ServerService Thread Pool -- 54) ISPN000161: Using a batchMode transaction manager +
-  +
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +
-  +
-17:16:06,972 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:10090/management +
-17:16:06,973 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:10090 +
-17:16:06,973 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.2.0.GA (AS 7.3.0.Final-redhat-14) started in 7154ms - Started 218 of 348 services (129 services are passive or on-demand) +
-17:16:15,553 INFO  [org.jboss.as.clustering] (Incoming-1,shared=udp) JBAS010225: New cluster view for partition web (id: 1, delta: 1, merge: false) : [node01/web, node02/web] +
-17:16:15,553 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (Incoming-1,shared=udp) ISPN000094: Received new cluster view: [node01/web|1] [node01/web, node02/web] +
-아래의 명령을 실행하여 “node02” 서버의 로그를 출력합니다.+
  
-Shell+아래의 명령을 실행하여 ''node02'' 서버의 로그를 출력합니다.
  
 +<WRAP prewrap>
 +<code bash>
 tail -n 100 /var/log/jboss-as/node02-console.log tail -n 100 /var/log/jboss-as/node02-console.log
-1 +</code> 
-tail -n 100 /var/log/jboss-as/node02-console.log +</WRAP>
-“node01” 이 실행되고 난 후 실행된 “node02” 에서는 아래와 같이 Cluster member 로 등록되었다는 메시지가 나타나게 됩니다.+
  
-Shell+''node01'' 이 실행되고 난 후 실행된 ''node02'' 에서는 아래와 같이 Cluster member 로 등록되었다는 메시지가 나타나게 됩니다.
  
 +<WRAP prewrap>
 +<code bash>
 17:16:15,582 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ServerService Thread Pool -- 57) ISPN000094: Received new cluster view: [node01/web|1] [node01/web, node02/web] 17:16:15,582 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ServerService Thread Pool -- 57) ISPN000094: Received new cluster view: [node01/web|1] [node01/web, node02/web]
 17:16:15,686 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ServerService Thread Pool -- 57) ISPN000079: Cache local address is node02/web, physical addresses are [0.0.0.0:55400] 17:16:15,686 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ServerService Thread Pool -- 57) ISPN000079: Cache local address is node02/web, physical addresses are [0.0.0.0:55400]
줄 1444: 줄 909:
 17:16:15,752 INFO  [org.infinispan.factories.TransactionManagerFactory] (ServerService Thread Pool -- 54) ISPN000161: Using a batchMode transaction manager 17:16:15,752 INFO  [org.infinispan.factories.TransactionManagerFactory] (ServerService Thread Pool -- 54) ISPN000161: Using a batchMode transaction manager
 17:16:15,756 INFO  [org.infinispan.factories.TransactionManagerFactory] (ServerService Thread Pool -- 55) ISPN000161: Using a batchMode transaction manager 17:16:15,756 INFO  [org.infinispan.factories.TransactionManagerFactory] (ServerService Thread Pool -- 55) ISPN000161: Using a batchMode transaction manager
-+</code> 
-+</WRAP> 
-+ 
-+====== Clustering Sample Application 확인 ====== 
-+
-+
-+
-17:16:15,582 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ServerService Thread Pool -- 57) ISPN000094: Received new cluster view: [node01/web|1] [node01/web, node02/web] +
-17:16:15,686 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ServerService Thread Pool -- 57) ISPN000079: Cache local address is node02/web, physical addresses are [0.0.0.0:55400] +
-17:16:15,694 INFO  [org.infinispan.factories.GlobalComponentRegistry] (ServerService Thread Pool -- 57) ISPN000128: Infinispan version: Infinispan 'Delirium' 5.2.7.Final +
-17:16:15,709 INFO  [org.jboss.as.clustering] (MSC service thread 1-2) JBAS010238: Number of cluster members: 2 +
-17:16:15,752 INFO  [org.infinispan.factories.TransactionManagerFactory] (ServerService Thread Pool -- 53) ISPN000161: Using a batchMode transaction manager +
-17:16:15,752 INFO  [org.infinispan.factories.TransactionManagerFactory] (ServerService Thread Pool -- 54) ISPN000161: Using a batchMode transaction manager +
-17:16:15,756 INFO  [org.infinispan.factories.TransactionManagerFactory] (ServerService Thread Pool -- 55) ISPN000161: Using a batchMode transaction manager +
-Clustering Sample Application 확인+
 브라우저를 통하여 각 노드를 직접 연결하여 확인을 합니다. “Node01” 과 “Node02” 를 번갈아 가면서 새로 고침을 했을 경우 Page Hit 수가 연결되어 증가하는지 확인 합니다. 브라우저를 통하여 각 노드를 직접 연결하여 확인을 합니다. “Node01” 과 “Node02” 를 번갈아 가면서 새로 고침을 했을 경우 Page Hit 수가 연결되어 증가하는지 확인 합니다.
-jboss_eap_6_2_clustering_sample_application_01 
  
-Apache HTTPD Server 연동+ 
 +====== Apache HTTPD Server 연동 ====== 
 + 
 Apache HTTPD Server 의 연동은 mod_jk, mod_cluster, mod_proxy 등을 이용하여 할 수 있습니다. 다음의 연동방법 중 한 개를 선택하셔서 구성하시면 됩니다. Apache HTTPD Server 의 연동은 mod_jk, mod_cluster, mod_proxy 등을 이용하여 할 수 있습니다. 다음의 연동방법 중 한 개를 선택하셔서 구성하시면 됩니다.
  
-연동 방법 1 – mod_jk+===== 연동 방법 1 – mod_jk ===== 
 JBoss EAP 6.x – Apache HTTPD 2.2.x + mod_jk 1.2.x Session Clustering 구성 문서를 참고합니다. JBoss EAP 6.x – Apache HTTPD 2.2.x + mod_jk 1.2.x Session Clustering 구성 문서를 참고합니다.
  
-연동 방법 2 – mod_cluster 연동+==== 연동 방법 2 – mod_cluster 연동 ==== 
 JBoss EAP 6.x – Apache HTTPD 2.2.x + mod_cluster 1.2.x Session Clustering 구성 문서를 참고합니다. JBoss EAP 6.x – Apache HTTPD 2.2.x + mod_cluster 1.2.x Session Clustering 구성 문서를 참고합니다.
  
- +===== 오류관련 =====
  
-오류관련 +==== JBAS014612 : java.lang.RuntimeException: java.net.Unknowntion: standalone01: standalone01 ====
-JBAS014612 : java.lang.RuntimeException: java.net.Unknowntion: standalone01: standalone01 +
-오류 상세 메시지+
  
-JBoss Node 시작시 console 로그에 아래와 같은 오류 메시지 출력됩니다.+=== 오류 상세 메시지 ===
  
  
 +JBoss Node 시작시 console 로그에 아래와 같은 오류 메시지 출력됩니다.
 +
 +<WRAP prewrap>
 +<code bash>
 21:28:41,857 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 50) JBAS014612: Operation ("add") failed - address: ([("subsystem" => "webservices")]): java.lang.RuntimeException: java.net.Unknowntion: standalone01: standalone01 21:28:41,857 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 50) JBAS014612: Operation ("add") failed - address: ([("subsystem" => "webservices")]): java.lang.RuntimeException: java.net.Unknowntion: standalone01: standalone01
         at org.jboss.as.webservices.dmr.WSSubsystemAdd.createServerConfig(WSSubsystemAdd.java:103)         at org.jboss.as.webservices.dmr.WSSubsystemAdd.createServerConfig(WSSubsystemAdd.java:103)
줄 1505: 줄 966:
         at java.net.InetAddress.getLocalHost(InetAddress.java:1469) [rt.jar:1.7.0_55]         at java.net.InetAddress.getLocalHost(InetAddress.java:1469) [rt.jar:1.7.0_55]
         ... 14 more         ... 14 more
-1 +</code> 
-2 +</WRAP> 
-3 + 
-+=== 원인 ===
-+
-+
-+
-+
-+
-10 +
-11 +
-12 +
-13 +
-14 +
-15 +
-16 +
-17 +
-18 +
-19 +
-20 +
-21 +
-22 +
-23 +
-24 +
-25 +
-21:28:41,857 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 50) JBAS014612: Operation ("add") failed - address: ([("subsystem" => "webservices")]): java.lang.RuntimeException: java.net.Unknowntion: standalone01: standalone01 +
-        at org.jboss.as.webservices.dmr.WSSubsystemAdd.createServerConfig(WSSubsystemAdd.java:103) +
-        at org.jboss.as.webservices.dmr.WSSubsystemAdd.performBoottime(WSSubsystemAdd.java:88) +
-        at org.jboss.as.controller.AbstractBoottimeAddStepHandler.performRuntime(AbstractBoottimeAddStepHandler.java:57) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] +
-        at org.jboss.as.controller.AbstractAddStepHandler$1.execute(AbstractAddStepHandler.java:76) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] +
-        at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:607) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] +
-        at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:485) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] +
-        at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:282) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] +
-        at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:277) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] +
-        at org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandler.java:343) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14] +
-        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_55] +
-        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_55] +
-        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_55] +
-        at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.1.Final-redhat-1.jar:2.1.1.Final-redhat-1] +
-Caused by: java.net.UnknownHostException: standalone01: standalone01 +
-        at java.net.InetAddress.getLocalHost(InetAddress.java:1473) [rt.jar:1.7.0_55] +
-        at org.jboss.ws.common.management.AbstractServerConfig.setWebServiceHost(AbstractServerConfig.java:111) +
-        at org.jboss.as.webservices.dmr.WSSubsystemAdd.createServerConfig(WSSubsystemAdd.java:101) +
-        ... 12 more +
-Caused by: java.net.UnknownHostException: standalone01 +
-        at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) [rt.jar:1.7.0_55] +
-        at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901) [rt.jar:1.7.0_55] +
-        at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293) [rt.jar:1.7.0_55] +
-        at java.net.InetAddress.getLocalHost(InetAddress.java:1469) [rt.jar:1.7.0_55] +
-        ... 14 more +
-원인+
  
 JBoss 시작시 오류에 찍힌 호스트명 (standalone01) 을 인식하지 못하여 발생되는 문제입니다. hosts 파일에 해당 호스트명을 등록해야 합니다. JBoss 시작시 오류에 찍힌 호스트명 (standalone01) 을 인식하지 못하여 발생되는 문제입니다. hosts 파일에 해당 호스트명을 등록해야 합니다.
  
-해결+=== 해결 === 
  
 아래의 명령을 실행하여 “/etc/hosts” 파일을 편집 합니다. 아래의 명령을 실행하여 “/etc/hosts” 파일을 편집 합니다.
  
-Shell +<WRAP prewrap> 
- +<code bash>
-vi /etc/hosts +
-1+
 vi /etc/hosts vi /etc/hosts
 +</code>
 +</WRAP>
 +
 아래와 같이 해당 호스트명을 등록한 후 저장합니다. 아래와 같이 해당 호스트명을 등록한 후 저장합니다.
 +<WRAP prewrap>
 +<code vim /etc/hosts>
 +127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
 +192.168.0.11          standalone01  # 해당 서버의 아이피
 +</code>
 +</WRAP>
  
- 
-127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 standalone01 
-1 
-127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 standalone01 
 JBoss Server 을 재실행합니다. JBoss Server 을 재실행합니다.
 +
  • jboss_eap_6.x_standalone_session_clustering.1463714478.txt.gz
  • 마지막으로 수정됨: 2016/05/20 03:21
  • 저자 koov