Oracle Fusion Middleware/Coherence

11장. WebLogic – Coherence 세션 그리드 서비스 – 2.1 (WKA을 활용한 MultiCast Cluster)

수상한 김토끼 2024. 7. 23. 19:35

안녕하세요.

‘수상한 김토끼’ 입니다.

 

6장의 코히어런스 세션그리드 서비스 – 2(https://with-kami.tistory.com/1534841)를 통해 별도의 코히어런스를 활용한 웹로직 – 코히어런스 세션 클러스터링을 확인 해 보았습니다.

 

https://with-kami.tistory.com/1534841

 

6장. WebLogic - Coherence 세션 그리드 서비스 - 2

안녕하세요. '수상한 김토끼' 입니다. 5장의 코히어런스 세션그리드 서비스 - 1을 통해 코히어런스 기반 세션 클러스터링을 확인 해 보았습니다. 6장에서는 별도의 코히어런스를 활용하여 웹로직

with-kami.tistory.com

 

이번 장에서는 6장에서 활용한 유니캐스트가 아닌 멀티캐스트 방식으로 같은 기능을 구현하는 내용을 정리하게 되었는데요, 클라우드 환경에서 해당 아키텍처를 구현하는 과정에서 클라우드 특성상 유니캐스트 방식은 허용되지 않아 또 다른 클러스터 구성 방식인 멀티캐스트 WKA (Well Known Address)을 활용하여 구현 해 보았습니다.

 

WKA (Well Known Address)를 사용하는 만큼 이를 검증하기 위해 코히어런스와 웹로직 서버를 분리하여 각각의 IP를 가진 서버들 간의 클러스터로 구성되었음을 알려 드립니다.

 

이 구성을 응용하면 (코히어런스 + 톰캣), (코히어런스 + 웹로직 + 톰캣)등의 구성에도 적용이 가능하며 비용이 저렴한 (웹로직 스탠다드 라이선스 + 코히어런스 라이선스) 조합으로 웹로직 엔터프라이즈 라이선스에서 제공되는 코히어런스 기반 세션 클러스터링 적용이 가능합니다.

 

이 블로그 글은 미들웨어 경험이 없으신 분들도 쉽게 따라 하실 수 있도록 쉽게 작성하는 것이 목표입니다.

설명을 보고 진행하시다가 궁금하신 내용은 댓글로 문의하시면 가능한 범위 내에서 알려 드리도록 하겠습니다.


1. 코히어런스 설정 변경

 

6장과 동일한 방식으로 코히어런스와 웹로직을 구성한 후 설정부분만 다음과 같이 변경하여 적용하면 멀티캐스트(WKA)방식 적용이 가능합니다.

 

우선 멀티캐스트 관련 설정을 위해 JAVA_OPT를 수정 해 줍니다.

 

위 cache-server.sh 파일에서 설정에 맞도록 수정해야 하는 부분은 크게 3부분으로 아래 스크린샷에서 확인하실 수 있습니다.

# 추가 항목 : 멀티캐스트 관련 설정
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.localport=9000"           : 코히어런스 클러스터의 Listen Port
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.localhost=10.0.0.58"      : 코히어런스 클러스터의 Listen IP
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.wka=10.0.0.58"            : 클러스터에 속할 서버들의 IP, 여러대는 wka2, wka3등으로 구분하여 추가
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.wka2=10.0.0.227"         

# 제거 항목 : 유니캐스트 관련 설정
#JAVA_OPTS="${JAVA_OPTS} -Dcoherence.clusteraddress=224.2.1.2"
#JAVA_OPTS="${JAVA_OPTS} -Dcoherence.clusterport=14199"
#JAVA_OPTS="${JAVA_OPTS} -Dcoherence.ttl=1"

# 예제에서 10.0.0.58은 코히어런스 서버, 10.0.0.227은 웹로직 서버이며, 이와 같이 구성하면 10.0.0.58:9000 으로 코히어런스 서버가 동작하게 됩니다.

 

수정 후 cache-server.sh 파일입니다.

더보기
[coherence@coherence bin]$ cat cache-server.sh
#!/bin/sh

# This will start a cache server

# specify the Coherence installation directory
SCRIPT_PATH="${0}"
while [ -h "${SCRIPT_PATH}" ]; do
  LS=`ls -ld "${SCRIPT_PATH}"`
  LINK=`expr "${LS}" : '.*-> \(.*\)$'`
  if [ `expr "${LINK}" : '/.*'` > /dev/null ]; then
    SCRIPT_PATH="${LINK}"
  else
    SCRIPT_PATH="`dirname "${SCRIPT_PATH}"`/${LINK}"
  fi
done

CURRENT_DIR=`pwd`
cd `dirname ${SCRIPT_PATH}` > /dev/null
SCRIPT_PATH=`pwd`
COHERENCE_HOME=`dirname $SCRIPT_PATH`
cd ${CURRENT_DIR}

# specify the JVM heap size
MEMORY=1g

# jvm ipv4 set
IPV4=-Djava.net.preferIPv4Stack=true

if [ ! -f ${COHERENCE_HOME}/bin/cache-server.sh ]; then
  echo "coherence.sh: must be run from the Coherence installation directory."
  exit
fi

if [ -f $JAVA_HOME/bin/java ]; then
  JAVAEXEC=$JAVA_HOME/bin/java
else
  JAVAEXEC=java
fi

if [ "$1" = "-jmx" ]; then
    JMXPROPERTIES="-Dcoherence.management=all -Dcoherence.management.remote=true"
    shift
fi

COHERENCE_NAME='weblogic_session_cluster'

JAVA_OPTS="-Xms${MEMORY} -Xmx${MEMORY}"
JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom"
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.cacheconfig=default-session-cache-config.xml"
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.session.localstorage=true"
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.cluster=${COHERENCE_NAME}"
#JAVA_OPTS="${JAVA_OPTS} -Dcoherence.clusteraddress=224.2.1.2"
#JAVA_OPTS="${JAVA_OPTS} -Dcoherence.clusterport=14199"
#JAVA_OPTS="${JAVA_OPTS} -Dcoherence.ttl=1"
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.localport=9000"
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.localhost=10.0.0.58"
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.wka=10.0.0.58"
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.wka2=10.0.0.227"

$JAVAEXEC -server -showversion -cp "$COHERENCE_HOME/lib/coherence.jar:${COHERENCE_HOME}/lib/coherence-web.jar" $JAVA_OPTS com.tangosol.net.DefaultCacheServer $1

수정이 완료 되면 cache-server.sh 파일을 실행하여 코히어런스 서버를 기동시켜 줍니다.

더보기
[coherence@coherence bin]$ ./cache-server.sh
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)

2024-07-22 21:46:13.835/0.493 Oracle Coherence 14.1.1.0.0 <Info> (thread=main, member=n/a): Loaded operational configuration from "jar:file:/home/coherence/coherence14c/coherence/lib/coherence.jar!/tangosol-coherence.xml"
2024-07-22 21:46:13.935/0.593 Oracle Coherence 14.1.1.0.0 <Info> (thread=main, member=n/a): Loaded operational overrides from "jar:file:/home/coherence/coherence14c/coherence/lib/coherence.jar!/tangosol-coherence-override-dev.xml"
2024-07-22 21:46:13.935/0.593 Oracle Coherence 14.1.1.0.0 <Info> (thread=main, member=n/a): Optional configuration override "/tangosol-coherence-override.xml" is not specified
2024-07-22 21:46:13.939/0.597 Oracle Coherence 14.1.1.0.0 <Info> (thread=main, member=n/a): Optional configuration override "cache-factory-config.xml" is not specified
2024-07-22 21:46:13.939/0.597 Oracle Coherence 14.1.1.0.0 <Info> (thread=main, member=n/a): Optional configuration override "cache-factory-builder-config.xml" is not specified
2024-07-22 21:46:13.939/0.597 Oracle Coherence 14.1.1.0.0 <Info> (thread=main, member=n/a): Optional configuration override "/custom-mbeans.xml" is not specified

Oracle Coherence Version 14.1.1.0.0 Build 77467
 Grid Edition: Development mode
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

2024-07-22 21:46:14.169/0.827 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=n/a): Loaded cache configuration from "jar:file:/home/coherence/coherence14c/coherence/lib/coherence-web.jar!/default-session-cache-config.xml"
2024-07-22 21:46:14.597/1.255 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=n/a): Created cache factory com.tangosol.net.ExtensibleConfigurableCacheFactory
2024-07-22 21:46:14.878/1.537 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=n/a): TCMP bound to /10.0.0.58:9000 using SystemDatagramSocketProvider
2024-07-22 21:46:18.172/4.830 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=NameService:TcpAcceptor, member=n/a): TcpAcceptor now listening for connections on coherence:9000.3
2024-07-22 21:46:18.173/4.831 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Cluster, member=n/a): NameService now listening for connections on coherence:7574.3
2024-07-22 21:46:18.174/4.832 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Cluster, member=n/a): Created a new cluster "weblogic_session_cluster" with Member(Id=1, Timestamp=2024-07-22 21:46:14.929, Address=10.0.0.58:9000, MachineId=62836, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:coherence,process:5281, Role=CoherenceServer, Edition=Grid Edition, Mode=Development, CpuCount=2, SocketCount=2)
2024-07-22 21:46:18.195/4.853 Oracle Coherence GE 14.1.1.0.0 <D5> (thread=Transport:TransportService, member=n/a): Service TransportService is bound to tmb://10.0.0.58:9000.60504
2024-07-22 21:46:18.205/4.863 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Transport:TransportService, member=n/a): Service TransportService joined the cluster with senior service member 1
2024-07-22 21:46:18.208/4.866 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=n/a): Started cluster Name=weblogic_session_cluster, ClusterPort=7574

WellKnownAddressList(
  10.0.0.58
  )

MasterMemberSet(
  ThisMember=Member(Id=1, Timestamp=2024-07-22 21:46:14.929, Address=10.0.0.58:9000, MachineId=62836, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:coherence,process:5281, Role=CoherenceServer)
  OldestMember=Member(Id=1, Timestamp=2024-07-22 21:46:14.929, Address=10.0.0.58:9000, MachineId=62836, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:coherence,process:5281, Role=CoherenceServer)
  ActualMemberSet=MemberSet(Size=1
    Member(Id=1, Timestamp=2024-07-22 21:46:14.929, Address=10.0.0.58:9000, MachineId=62836, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:coherence,process:5281, Role=CoherenceServer)
    )
  MemberId|ServiceJoined|MemberState|Version
    1|2024-07-22 21:46:14.929|JOINED|14.1.1.0.0
  RecycleMillis=1200000
  RecycleSet=MemberSet(Size=0
    )
  )

TcpRing{Connections=[]}
IpMonitor{Addresses=0, Timeout=15s}

2024-07-22 21:46:18.223/4.881 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Invocation:Management, member=1): Service Management joined the cluster with senior service member 1
2024-07-22 21:46:18.267/4.925 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=1): Loaded Reporter configuration from "jar:file:/home/coherence/coherence14c/coherence/lib/coherence.jar!/reports/report-group.xml"
2024-07-22 21:46:18.305/4.963 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=1): JMXConnectorServer now listening for connections on coherence
2024-07-22 21:46:18.318/4.976 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=1): Loaded Reporter configuration from "jar:file:/home/coherence/coherence14c/coherence/lib/coherence.jar!/reports/report-group.xml"
2024-07-22 21:46:18.372/5.030 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=ReplicatedCache:oracle.coherence.web:ReplicatedSessionsMisc, member=1): Service oracle.coherence.web:ReplicatedSessionsMisc joined the cluster with senior service member 1
2024-07-22 21:46:18.519/5.177 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=DistributedCache:oracle.coherence.web:DistributedSessions, member=1): Service oracle.coherence.web:DistributedSessions joined the cluster with senior service member 1
2024-07-22 21:46:18.535/5.193 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=DistributedCache:oracle.coherence.web:DistributedSessions, member=1): Service oracle.coherence.web:DistributedSessions: sending PartitionConfig ConfigSync to all
2024-07-22 21:46:18.563/5.221 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=DistributedCache:oracle.coherence.web:DistributedSessions, member=1): This member has become the distribution coordinator for MemberSet(Size=1
  Member(Id=1, Timestamp=2024-07-22 21:46:14.929, Address=10.0.0.58:9000, MachineId=62836, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:coherence,process:5281, Role=CoherenceServer)
  )
2024-07-22 21:46:18.566/5.224 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=1):
Services
  (
  ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, OldestMemberId=1}
  TransportService{Name=TransportService, State=(SERVICE_STARTED), Id=1, OldestMemberId=1}
  InvocationService{Name=Management, State=(SERVICE_STARTED), Id=2, OldestMemberId=1}
  ReplicatedCache{Name=oracle.coherence.web:ReplicatedSessionsMisc, State=(SERVICE_STARTED), Id=3, OldestMemberId=1}
  PartitionedCache{Name=oracle.coherence.web:DistributedSessions, State=(SERVICE_STARTED), Id=4, OldestMemberId=1, LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=0, BackupPartitions=0, CoordinatorId=1}
  )

Started DefaultCacheServer...

2024-07-22 21:46:18.618/5.276 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=DistributedCache:oracle.coherence.web:DistributedSessions, member=1): Partition ownership has stabilized with 1 nodes

WKA방식의 멀티캐스트의 적용여부는 ‘WellKnownAddressList’항목으로 IP가 로그에 출력되는 것을 통해 확인이 가능합니다.

WellKnownAddressList(
  10.0.0.58
  )

 

코히어런스 설정이 마무리 되었으니 웹로직을 설정해 주겠습니다.


2. 웹로직 설정 변경

 

기존 웹로직 기동 스크립트에 아래 JAVA 옵션을 추가 후 기동 해 주면 됩니다.

JAVA_OPTS="${JAVA_OPTS} -Dcoherence.session.localstorage=false"   : 로컬 스토리지 사용 안함
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.wka=10.0.0.58"                : 코히어런스 클러스터 IP
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.wka.port=9000"                : 코히어런스 클러스터 Port

 

수정 한 스트립트는 아래와 같습니다.

더보기
[weblogic@weblogic script]$ cat startServerCoheWeb1.sh
#!/bin/bash

SERVER_NAME="Server-Cohe-Web-1"
ADMIN_SERVER_URL="t3://localhost:7001"
DOMAIN_HOME="/home/weblogic/domains/kami_domain"
LOG_DIR="${DOMAIN_HOME}/logs"

if [ "`whoami`" != "weblogic" ]; then
  echo I am not weblogic user.
  exit
fi

if [ "`ps -auwwx|grep java|grep ${SERVER_NAME} |awk '{print $2}'`" != "" ]; then
  echo ${SERVER_NAME} Server is aready RUNNING
  exit
fi

MEMORY="-Xms1024m -Xmx1024m -XX:NewSize=160m -XX:MaxNewSize=160m -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=90 -Xss256k"

GC="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:${LOG_DIR}/gc/${SERVER_NAME}.log"

ANALYSIS="-XX:+PrintClassHistogram -XX:+HeapDumpOnOutOfMemoryError"

BOOT_PROPERTIES="-Dweblogic.system.BootIdentityFile=${DOMAIN_HOME}/servers/AdminServer/security/boot.properties"

ETC_OPT="-XX:SoftRefLRUPolicyMSPerMB=1 -showversion -XX:+AggressiveOpts -XX:-UseBiasedLocking -XX:+DisableExplicitGC -Dweblogic.ProductionModeEnabled=true -Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer -Dweblogic.SocketReaders=3 -Dweblogic.management.discover=false -Dweblogic.diagnostics.debug.DebugLogger.DISABLED=true -Doracle.jdbc.defaultRowPrefetch=200 -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0 -Djavax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom"

COHERENCE_NAME='weblogic_session_cluster'

JAVA_OPTS="${JAVA_OPTS} -Dcoherence.cluster=${COHERENCE_NAME}"

JAVA_OPTS="${JAVA_OPTS} -Dcoherence.session.localstorage=false"
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.wka=10.0.0.58"
JAVA_OPTS="${JAVA_OPTS} -Dcoherence.wka.port=9000"

USER_MEM_ARGS="${MEMORY} ${GC} ${ANALYSIS} ${BOOT_PROPERTIES} ${ETC_OPT} ${JAVA_OPTS}"

echo $USER_MEM_ARGS

EXT_PRE_CLASSPATH=""

EXT_POST_CLASSPATH=""

export USER_MEM_ARGS EXT_PRE_CLASSPATH EXT_POST_CLASSPATH

mv ${LOG_DIR}/${SERVER_NAME}.out ${LOG_DIR}/${SERVER_NAME}.out.`date +'%m%d_%H%M%S'`
mv ${LOG_DIR}/gc/${SERVER_NAME}.out ${LOG_DIR}/gc/${SERVER_NAME}.out.`date +'%m%d_%H%M%S'`

nohup ${DOMAIN_HOME}/bin/startManagedWebLogic.sh ${SERVER_NAME} ${ADMIN_SERVER_URL} > ${LOG_DIR}/${SERVER_NAME}.out 2>&1 &

tail -f ${LOG_DIR}/${SERVER_NAME}.out

수정 후 서버를 기동 해 줍니다.

더보기
[weblogic@weblogic script]$ ./startServerCoheWeb1.sh
-Xms1024m -Xmx1024m -XX:NewSize=160m -XX:MaxNewSize=160m -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=90 -Xss256k -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:/home/weblogic/domains/kami_domain/logs/gc/Server-Cohe-Web-1.log -XX:+PrintClassHistogram -XX:+HeapDumpOnOutOfMemoryError -Dweblogic.system.BootIdentityFile=/home/weblogic/domains/kami_domain/servers/AdminServer/security/boot.properties -XX:SoftRefLRUPolicyMSPerMB=1 -showversion -XX:+AggressiveOpts -XX:-UseBiasedLocking -XX:+DisableExplicitGC -Dweblogic.ProductionModeEnabled=true -Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer -Dweblogic.SocketReaders=3 -Dweblogic.management.discover=false -Dweblogic.diagnostics.debug.DebugLogger.DISABLED=true -Doracle.jdbc.defaultRowPrefetch=200 -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0 -Djavax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom -Dcoherence.cluster=weblogic_session_cluster -Dcoherence.session.localstorage=false -Dcoherence.wka=10.0.0.58 -Dcoherence.wka.port=9000
mv: cannot stat '/home/weblogic/domains/kami_domain/logs/gc/Server-Cohe-Web-1.out': No such file or directory
.
.
JAVA Memory arguments: -Xms1024m -Xmx1024m -XX:NewSize=160m -XX:MaxNewSize=160m -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=90 -Xss256k -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:/home/weblogic/domains/kami_domain/logs/gc/Server-Cohe-Web-1.log -XX:+PrintClassHistogram -XX:+HeapDumpOnOutOfMemoryError -Dweblogic.system.BootIdentityFile=/home/weblogic/domains/kami_domain/servers/AdminServer/security/boot.properties -XX:SoftRefLRUPolicyMSPerMB=1 -showversion -XX:+AggressiveOpts -XX:-UseBiasedLocking -XX:+DisableExplicitGC -Dweblogic.ProductionModeEnabled=true -Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer -Dweblogic.SocketReaders=3 -Dweblogic.management.discover=false -Dweblogic.diagnostics.debug.DebugLogger.DISABLED=true -Doracle.jdbc.defaultRowPrefetch=200 -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0 -Djavax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom  -Dcoherence.cluster=weblogic_session_cluster -Dcoherence.session.localstorage=false -Dcoherence.wka=10.0.0.58 -Dcoherence.wka.port=9000
.
CLASSPATH=/home/weblogic/jdk1.8.0_321/lib/tools.jar:/home/weblogic/weblogic14c/wlserver/server/lib/weblogic.jar:/home/weblogic/weblogic14c/wlserver/../oracle_common/modules/thirdparty/ant-contrib-1.0b3.jar:/home/weblogic/weblogic14c/wlserver/modules/features/oracle.wls.common.nodemanager.jar:/home/weblogic/weblogic14c/wlserver/common/derby/lib/derbyclient.jar:/home/weblogic/weblogic14c/wlserver/common/derby/lib/derby.jar:/home/weblogic/jdk1.8.0_321/jre/lib:/home/weblogic/jdk1.8.0_321/lib/tools.jar
.
PATH=/home/weblogic/domains/kami_domain/bin:/home/weblogic/weblogic14c/wlserver/server/bin:/home/weblogic/weblogic14c/wlserver/../oracle_common/modules/thirdparty/org.apache.ant/1.10.5.0.0/apache-ant-1.10.5/bin:/home/weblogic/jdk1.8.0_321/jre/bin:/home/weblogic/jdk1.8.0_321/bin:/home/weblogic/.local/bin:/home/weblogic/bin:/usr/share/Modules/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/weblogic/jdk1.8.0_321/bin
.
***************************************************
*  To start WebLogic Server, use a username and   *
*  password assigned to an admin-level user.  For *
*  server administration, use the WebLogic Server *
*  console at http://hostname:port/console        *
***************************************************
Starting WLS with line:
/home/weblogic/jdk1.8.0_321/bin/java -server   -Xms1024m -Xmx1024m -XX:NewSize=160m -XX:MaxNewSize=160m -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=90 -Xss256k -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:/home/weblogic/domains/kami_domain/logs/gc/Server-Cohe-Web-1.log -XX:+PrintClassHistogram -XX:+HeapDumpOnOutOfMemoryError -Dweblogic.system.BootIdentityFile=/home/weblogic/domains/kami_domain/servers/AdminServer/security/boot.properties -XX:SoftRefLRUPolicyMSPerMB=1 -showversion -XX:+AggressiveOpts -XX:-UseBiasedLocking -XX:+DisableExplicitGC -Dweblogic.ProductionModeEnabled=true -Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer -Dweblogic.SocketReaders=3 -Dweblogic.management.discover=false -Dweblogic.diagnostics.debug.DebugLogger.DISABLED=true -Doracle.jdbc.defaultRowPrefetch=200 -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0 -Djavax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom  -Dcoherence.cluster=weblogic_session_cluster -Dcoherence.session.localstorage=false -Dcoherence.wka=10.0.0.58 -Dcoherence.wka.port=9000 -cp /home/weblogic/weblogic14c/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=Server-Cohe-Web-1 -Djava.security.policy=/home/weblogic/weblogic14c/wlserver/server/lib/weblogic.policy  -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader  -javaagent:/home/weblogic/weblogic14c/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/home/weblogic/weblogic14c/wlserver/server -Dweblogic.home=/home/weblogic/weblogic14c/wlserver/server   -Dweblogic.management.server=t3://localhost:7001  -Djava.endorsed.dirs=/home/weblogic/jdk1.8.0_321/jre/lib/endorsed:/home/weblogic/weblogic14c/wlserver/../oracle_common/modules/endorsed:/home/weblogic/weblogic14c/wlserver/modules/endorsed  weblogic.Server
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)

<Jul 22, 2024 12:48:16 PM GMT> <Info> <Security> <BEA-090905> <Disabling the CryptoJ JCE Provider self-integrity check for better startup performance. To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true.>
<Jul 22, 2024 12:48:17 PM GMT> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG128 to HMACDRBG. To disable this change, specify -Dweblogic.security.allowCryptoJDefaultPRNG=true.>
<Jul 22, 2024 12:48:17 PM GMT> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) 64-Bit Server VM Version 25.321-b07 from Oracle Corporation.>
<Jul 22, 2024 12:48:19 PM GMT> <Info> <Management> <BEA-141107> <Version: WebLogic Server 14.1.1.0.0  Thu Mar 26 03:15:09 GMT 2020 2000885>
<Jul 22, 2024 12:48:19 PM GMT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING.>
<Jul 22, 2024 12:48:19 PM GMT> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool.>
<Jul 22, 2024 12:48:19,984 PM GMT> <Notice> <Log Management> <BEA-170019> <The server log file weblogic.logging.FileStreamHandler instance=86723058
Current log file=/home/weblogic/domains/kami_domain/servers/Server-Cohe-Web-1/logs/Server-Cohe-Web-1.log
Rotation dir=/home/weblogic/domains/kami_domain/servers/Server-Cohe-Web-1/logs
 is opened. All server side log events will be written to this file.>
<Jul 22, 2024 12:48:20,724 PM GMT> <Notice> <Security> <BEA-090946> <Security pre-initializing using security realm: myrealm>
<Jul 22, 2024 12:48:21,110 PM GMT> <Notice> <Security> <BEA-090947> <Security post-initializing using security realm: myrealm>
<Jul 22, 2024 12:48:22,747 PM GMT> <Notice> <Security> <BEA-090082> <Security initialized using administrative security realm: myrealm>
<Jul 22, 2024 12:48:23,158 PM GMT> <Notice> <JMX> <BEA-149512> <JMX Connector Server started at service:jmx:iiop://10.0.0.227:9001/jndi/weblogic.management.mbeanservers.runtime.>
2024-07-22 12:48:23.916/8.294 Oracle Coherence 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): Loaded operational configuration from "jar:file:/home/weblogic/weblogic14c/coherence/lib/coherence.jar!/tangosol-coherence.xml"
2024-07-22 12:48:24.010/8.389 Oracle Coherence 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): Loaded operational overrides from "jar:file:/home/weblogic/weblogic14c/coherence/lib/coherence.jar!/tangosol-coherence-override-dev.xml"
2024-07-22 12:48:24.014/8.392 Oracle Coherence 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): Optional configuration override "/tangosol-coherence-override.xml" is not specified
2024-07-22 12:48:24.022/8.401 Oracle Coherence 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): Optional configuration override "cache-factory-config.xml" is not specified
2024-07-22 12:48:24.025/8.404 Oracle Coherence 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): Optional configuration override "cache-factory-builder-config.xml" is not specified
2024-07-22 12:48:24.028/8.406 Oracle Coherence 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): Optional configuration override "/custom-mbeans.xml" is not specified

Oracle Coherence Version 14.1.1.0.0 Build 77467
 Grid Edition: Development mode
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

<Jul 22, 2024 12:48:24,736 PM GMT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY.>
<Jul 22, 2024 12:48:24,736 PM GMT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING.>
<Jul 22, 2024 12:48:24,798 PM GMT> <Notice> <Log Management> <BEA-170036> <The Logging monitoring service timer has started to check for logged message counts every 30 seconds.>
<Jul 22, 2024 12:48:25,125 PM GMT> <Warning> <HTTP> <BEA-101369> <WebAppModule(test:test): The encoding jsp-descriptor parameter has been deprecated. Consider declaring the encoding in the jsp-config element (web.xml) or as a page directive (pageEncoding) instead.>
2024-07-22 12:48:25.322/9.701 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): Loaded cache configuration from "jar:file:/home/weblogic/weblogic14c/coherence/lib/coherence-web.jar!/default-session-cache-config.xml"
2024-07-22 12:48:26.101/10.480 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): Created cache factory com.tangosol.net.ExtensibleConfigurableCacheFactory
2024-07-22 12:48:26.646/11.024 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): TCMP bound to /10.0.0.227:41945 using SystemDatagramSocketProvider
2024-07-22 12:48:26.935/11.313 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Cluster, member=n/a): Member(Id=1, Timestamp=2024-07-22 12:46:14.929, Address=10.0.0.58:9000, MachineId=62836, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:coherence,process:5281, Role=CoherenceServer) joined Cluster with senior member 1
2024-07-22 12:48:26.940/11.318 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Cluster, member=n/a): This Member(Id=2, Timestamp=2024-07-22 12:48:26.757, Address=10.0.0.227:41945, MachineId=6282, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:weblogic,process:86359, Role=WeblogicServer, Edition=Grid Edition, Mode=Development, CpuCount=2, SocketCount=2) joined cluster "weblogic_session_cluster" with senior Member(Id=1, Timestamp=2024-07-22 12:46:14.929, Address=10.0.0.58:9000, MachineId=62836, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:coherence,process:5281, Role=CoherenceServer, Edition=Grid Edition, Mode=Development, CpuCount=2, SocketCount=2)
2024-07-22 12:48:26.988/11.366 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=NameService:TcpAcceptor, member=n/a): TcpAcceptor now listening for connections on weblogic.sub05260159430.coherencevcn.oraclevcn.com:41945.3
2024-07-22 12:48:26.989/11.367 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Cluster, member=n/a): NameService now listening for connections on weblogic.sub05260159430.coherencevcn.oraclevcn.com:7574.3
2024-07-22 12:48:27.015/11.394 Oracle Coherence GE 14.1.1.0.0 <D5> (thread=Transport:TransportService, member=n/a): Service TransportService is bound to tmb://10.0.0.227:41945.50155
2024-07-22 12:48:27.029/11.407 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Transport:TransportService, member=n/a): Service TransportService joined the cluster with senior service member 1
2024-07-22 12:48:27.047/11.425 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=SelectionService(channels=7, selector=MultiplexedSelector(sun.nio.ch.EPollSelectorImpl@c33210a), id=1239965793), member=n/a): Connection established with tmb://10.0.0.58:9000.60504
2024-07-22 12:48:27.050/11.428 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)', member=n/a): Started cluster Name=weblogic_session_cluster, ClusterPort=7574

WellKnownAddressList(
  10.0.0.58
  )

MasterMemberSet(
  ThisMember=Member(Id=2, Timestamp=2024-07-22 12:48:26.757, Address=10.0.0.227:41945, MachineId=6282, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:weblogic,process:86359, Role=WeblogicServer)
  OldestMember=Member(Id=1, Timestamp=2024-07-22 12:46:14.929, Address=10.0.0.58:9000, MachineId=62836, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:coherence,process:5281, Role=CoherenceServer)
  ActualMemberSet=MemberSet(Size=2
    Member(Id=1, Timestamp=2024-07-22 12:46:14.929, Address=10.0.0.58:9000, MachineId=62836, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:coherence,process:5281, Role=CoherenceServer)
    Member(Id=2, Timestamp=2024-07-22 12:48:26.757, Address=10.0.0.227:41945, MachineId=6282, Location=site:sub05260159430.coherencevcn.oraclevcn.com,machine:weblogic,process:86359, Role=WeblogicServer)
    )
  MemberId|ServiceJoined|MemberState|Version
    1|2024-07-22 12:46:14.929|JOINED|14.1.1.0.0,
    2|2024-07-22 12:48:26.757|JOINED|14.1.1.0.0
  RecycleMillis=1200000
  RecycleSet=MemberSet(Size=0
    )
  )

TcpRing{Connections=[1]}
IpMonitor{Addresses=1, Timeout=15s}

2024-07-22 12:48:27.083/11.461 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Invocation:Management, member=2): Service Management joined the cluster with senior service member 1
2024-07-22 12:48:27.105/11.484 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)', member=2): Loaded Reporter configuration from "jar:file:/home/weblogic/weblogic14c/coherence/lib/coherence.jar!/reports/report-group.xml"
2024-07-22 12:48:27.987/12.366 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=DistributedCache:oracle.coherence.web:DistributedSessions, member=2): Service oracle.coherence.web:DistributedSessions joined the cluster with senior service member 1
2024-07-22 12:48:28.149/12.527 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)', member=2): Configured session model "SplitHttpSessionCollection":
  Clustered Session Cache Name=session-storage
  Local Session Cache Name=local-session-storage
  Local Session Attribute Cache Name=local-attribute-storage
  SessionDistributionController Class Name=
  AttributeScopeController Class Name=com.tangosol.coherence.servlet.AbstractHttpSessionCollection$ApplicationScopeController
  Maximum Session Inactive Seconds=3600
  Session ID Character Length=52
  Session Get Lock Timeout=300
  Suspect Attribute Detection=true
  Strict "Servlet Specification" Exception Handling=true
  Sticky Session Ownership=false
  Sticky Session Ownership Service Name=SessionOwnership
  Assume Session Locality for Reaping=false
  Parallel Session Reaping=false
  Allow Local Attributes=false
  Use Default Session ID Decoding=true
  Use Default Session ID Encoding=false
  Session ID Affinity Token=null
  Session ID Replace Affinity Token=false
  Session Expiry Filter Factory=
  Session Access Debug Logging Enabled=false
  Session Access Debug Logging Filter=
  Session Locking Mode=none
  Session Reaping Mechanism=Default
Jul 22, 2024 12:48:28 PM com.tangosol.coherence.servlet.AbstractHttpSessionCollection configure
INFO: Configured session model "SplitHttpSessionCollection":
  Clustered Session Cache Name=session-storage
  Local Session Cache Name=local-session-storage
  Local Session Attribute Cache Name=local-attribute-storage
  SessionDistributionController Class Name=
  AttributeScopeController Class Name=com.tangosol.coherence.servlet.AbstractHttpSessionCollection$ApplicationScopeController
  Maximum Session Inactive Seconds=3600
  Session ID Character Length=52
  Session Get Lock Timeout=300
  Suspect Attribute Detection=true
  Strict "Servlet Specification" Exception Handling=true
  Sticky Session Ownership=false
  Sticky Session Ownership Service Name=SessionOwnership
  Assume Session Locality for Reaping=false
  Parallel Session Reaping=false
  Allow Local Attributes=false
  Use Default Session ID Decoding=true
  Use Default Session ID Encoding=false
  Session ID Affinity Token=null
  Session ID Replace Affinity Token=false
  Session Expiry Filter Factory=
  Session Access Debug Logging Enabled=false
  Session Access Debug Logging Filter=
  Session Locking Mode=none
  Session Reaping Mechanism=Default
2024-07-22 12:48:28.211/12.590 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)', member=2): Registering MBean using object name "type=WebLogicHttpSessionManager,nodeId=2,appId=testtest"
Jul 22, 2024 12:48:28 PM com.tangosol.coherence.servlet.SessionHelper registerMBean
INFO: Registering MBean using object name "type=WebLogicHttpSessionManager,nodeId=2,appId=testtest"
<Jul 22, 2024 12:48:28,444 PM GMT> <Notice> <Log Management> <BEA-170027> <The server has successfully established a connection with the Domain level Diagnostic Service.>
<Jul 22, 2024 12:48:28,934 PM GMT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN.>
<Jul 22, 2024 12:48:28,985 PM GMT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING.>
<Jul 22, 2024 12:48:29,033 PM GMT> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 127.0.0.1:9001 for protocols iiop, t3, ldap, snmp, http.>
<Jul 22, 2024 12:48:29,034 PM GMT> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 10.0.0.227:9001 for protocols iiop, t3, ldap, snmp, http.>
<Jul 22, 2024 12:48:29,035 PM GMT> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 127.0.0.1:9001 for protocols iiop, t3, ldap, snmp, http.>
<Jul 22, 2024 12:48:29,035 PM GMT> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 10.0.0.227:9001 for protocols iiop, t3, ldap, snmp, http.>
<Jul 22, 2024 12:48:29,036 PM GMT> <Notice> <WebLogicServer> <BEA-000332> <Started the WebLogic Server Managed Server "Server-Cohe-Web-1" for domain "kami_domain" running in development mode.>
<Jul 22, 2024 12:48:29,048 PM GMT> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.>
<Jul 22, 2024 12:48:29,061 PM GMT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.>

이런 방식으로 세션클러스터링이 필요한 서버들을 추가하여 사용이 가능합니다.