안녕하세요.
'수상한 김토끼' 입니다.
5, 6장의 코히어런스 세션그리드 서비스를 통해 코히어런스 기반 세션 클러스터링을 확인 해 보았습니다.
7장에서는 JXM를 활용한 코히어런스 모니터링에 대해 알아가는 시간을 갖도록 하겠습니다.
기본적으로 제공되는 코히어런스 Client Application을 통해 확인이 가능하지만 가시성이 떨어지고
사용에 불편함이 있기때문에 Java Visual VM과 JMX를 통한 모니터링을 추천드립니다.
이 블로그 글은 미들웨어 경험이 없으신 분들도 쉽게 따라 하실 수 있도록 쉽게 작성하는 것이 목표입니다.
설명을 보고 진행하시다가 궁금하신 내용은 댓글로 문의하시면 가능한 범위 내에서 알려 드리도록 하겠습니다.
1. Visual VM 설치
먼저 Visual VM 홈페이지를 통해 Visual VM을 다운로드 합니다.
https://visualvm.github.io/download.html
저는 현재기준 최신버전인 2.1.3 버전을 다운로드 받았습니다.
다운로드 받은 압축파일을 원하는 위치에 풀어줍니다.
사용하는 PC에 1.8버전 이상의 Java가 설치되지 않았다면 $VISUALVM_HOME/etc/visualvm.conf 파일의
visualvm_jdkhome 변수에 사용하고자 하는 Java위치를 지정해 줍니다.
visualvm_jdkhome 변수는 주석처리가 되어 있음으로 해당 항목을 확인 후 아래와 같이 변경 해 줍니다.
1
2
3
4
5
6
7
8
9
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
74
75
76
77
78
79
|
#
# Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
# Default locations of userdir and cachedir:
#
# On Windows ${DEFAULT_USERDIR_ROOT} will be replaced by the launcher
# with "<AppData>\VisualVM" where <AppData> is user's
# value of "AppData" key in Windows Registry under
# "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
# and ${DEFAULT_CACHEDIR_ROOT} will be replaced by the launcher
# with "<Local AppData>\VisualVM\Cache" where <Local AppData> is user's
# value of "Local AppData" key in Windows Registry under
# "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
#
# On Mac ${DEFAULT_USERDIR_ROOT} will be replaced by the launcher
# with "~/Library/Application Support/VisualVM" and
# ${DEFAULT_CACHEDIR_ROOT} with "~/Library/Caches/VisualVM"
#
# On other systems ${DEFAULT_USERDIR_ROOT} will be replaced by the launcher
# with "~/.visualvm" and ${DEFAULT_CACHEDIR_ROOT} with "~/.cache/visualvm"
#
# You can also use ${HOME} variable which will be replaced with
# user.home JVM system property value. This variable is valid only in
# visualvm_default_userdir and visualvm_default_cachedir properties.
#
# NOTE: If you specify a non-default userdir path on command line
# (--userdir option) and don't specify a cachedir path (--cachedir option),
# cachedir will be in "<userdir>/var/cache".
#
# Cachedir must be different from userdir. The same cachedir and userdir
# would cause problems.
#
visualvm_default_userdir="${DEFAULT_USERDIR_ROOT}/2.1.3"
visualvm_default_cachedir="${DEFAULT_CACHEDIR_ROOT}/2.1.3"
# Options used by VisualVM launcher by default:
# (can be overridden by explicit command line switches)
#
visualvm_default_options="-J-Xms24m -J-Xmx768m -J-Dnetbeans.accept_license_class=org.graalvm.visualvm.modules.startup.AcceptLicense -J-Dnetbeans.importclass=org.graalvm.visualvm.modules.startup.ImportSettings -J-Dsun.jvmstat.perdata.syncWaitMs=10000 -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.d3d=false -J-Dorg.netbeans.core.TimeableEventQueue.quantum=360000 -J-Dpolyglot.js.nashorn-compat=true -J-Dsun.misc.URLClassPath.disableJarChecking=true -J-Djdk.attach.allowAttachSelf=true -J-Dorg.openide.util.ImageUtilities.level=950 -J-DTopSecurityManager.disable=true -J--add-exports=java.desktop/com.sun.java.swing.plaf.gtk=ALL-UNNAMED -J--add-exports=java.desktop/sun.awt=ALL-UNNAMED -J--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor.event=ALL-UNNAMED -J--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED -J--add-exports=java.desktop/sun.swing=ALL-UNNAMED -J--add-exports=jdk.attach/sun.tools.attach=ALL-UNNAMED -J--add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED -J--add-opens=java.base/java.net=ALL-UNNAMED -J--add-opens=java.base/java.lang.ref=ALL-UNNAMED -J--add-opens=java.base/java.lang=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED -J-XX:+IgnoreUnrecognizedVMOptions"
# for development purposes you may wish to append: -J-Dnetbeans.logger.console=true -J-Dnetbeans.exception.report.min.level=900 -J-ea
# Default location of JDK:
#
# It can be overridden on command line by using --jdkhome <dir>
# Be careful when changing jdkhome.
# There are two VisualVM launchers for Windows (32-bit and 64-bit) and
# installer points to one of those in the VisualVM application shortcut
# based on the Java version selected at installation time.
#
#visualvm_jdkhome="/path/to/jdk"
visualvm_jdkhome="D:\developerWorks\jdk1.8.0_121"
# Additional module clusters:
# using ${path.separator} (';' on Windows or ':' on Unix):
#
#visualvm_extraclusters="/absolute/path/to/cluster1:/absolute/path/to/cluster2"
|
cs |
$VISUALVM_HOME/bin/visualvm.exe 파일을 실행합니다.
Visual VM 프로그램이 실행되었습니다.
2. Visual VM plug-in(Visual VM - Coherence) 설치
다음 웹페이지를 참고하여 코히어런스 전용 플러그인을 설치 해 줍니다.
https://github.com/oracle/coherence-visualvm
설치과정을 요약하면 다음과 같습니다.
Installing the Plugin from VisualVMThe Coherence VisualVM Plugin is available from the list of plugins in VisualVM versions 2.0.6 and above.
To install the Plugin carry out the following:
|
플러그인까지 설치가 완료 되어 Visual VM 준비는 마무리 되었습니다.
3. Coherence JMX 설정변경
JMX를 사용하기 위해서는 JMX 관련 JAVA_OPT(JMXPROPERTIES) 변경이 필요합니다.
$COHERENCE_HOME/bin/cache-server.sh 파일의 JMXPROPERTIES 부분에 다음 옵션을 추가 해 줍니다.
1
2
3
4
5
6
7
|
[coherence@coherence bin]$ pwd
/home/coherence/coherence14c/coherence/bin
[coherence@coherence bin]$ ls
cache-server.sh coherence.sh multicast-test.sh readme.txt
cache-server.sh.20220511 coherence.sh.visualvm pof-config-gen.sh
cache-server.sh.visualvm datagram-test.sh query.sh
[coherence@coherence bin]$
|
cs |
주석 처리된 부분이 기존항목이며 주석이 해제된 부분이 추가 된 내용입니다.
1
2
3
4
5
|
if [ "$1" = "-jmx" ]; then
# JMXPROPERTIES="-Dcoherence.management=all -Dcoherence.management.remote=true"
JMXPROPERTIES="-Dcoherence.management=all -Dcoherence.management.remote=true -Dcom.sun.management.jmxremote.port=8686 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=146.56.47.11"
shift
fi
|
cs |
해당 내용은 JMX 관련 내용으로 자세한 내용은 다음 웹페이지를 참조해 주세요.
https://docs.oracle.com/middleware/1221/coherence/manage/jmx.htm#COHMG5571
수정이 완료된 전체 cache-server.sh 파일입니다.
1
2
3
4
5
6
7
8
9
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
74
|
[coherence@coherence bin]$ pwd
/home/coherence/coherence14c/coherence/bin
[coherence@coherence bin]$ ls
cache-server.sh cache-server.sh.visualvm coherence.sh.visualvm multicast-test.sh query.sh
cache-server.sh.20220511 coherence.sh datagram-test.sh pof-config-gen.sh readme.txt
[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"
JMXPROPERTIES="-Dcoherence.management=all -Dcoherence.management.remote=true -Dcom.sun.management.jmxremote.port=8686 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=146.56.47.11"
shift
fi
# JAVA_OPTS="-Xms$MEMORY -Xmx$MEMORY $IPV4 $JMXPROPERTIES"
# $JAVAEXEC -server -showversion $JAVA_OPTS -cp "$COHERENCE_HOME/lib/coherence.jar" com.tangosol.net.DefaultCacheServer "$@"
COHERENCE_NAME='weblogic_session_cluster'
JAVA_OPTS="-Xms${MEMORY} -Xmx${MEMORY}"
JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom ${JMXPROPERTIES}"
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=my_cluster"
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} -Djava.net.preferIPv4Stack=true "
echo $JAVA_OPTS
# $JAVAEXEC -server -showversion -cp "${COHERENCE_HOME}/lib/coherence-web.jar:${COHERENCE_HOME}/lib/coherence.jar"\
# $JAVA_OPTS com.tangosol.net.DefaultCacheServer $1
# $JAVAEXEC -server -showversion -cp "$COHERENCE_HOME/lib/coherence.jar:${COHERENCE_HOME}/lib/coherence-web.jar" $JAVA_OPTS com.tangosol.net.DefaultCacheServer $1
$JAVAEXEC -server -showversion -cp "$COHERENCE_HOME/lib/coherence.jar:${COHERENCE_HOME}/lib/coherence-web.jar" $JAVA_OPTS com.tangosol.net.DefaultCacheServer $1
|
cs |
cache-server.sh 파일을 실행해 줍니다.
단 변경한 JAVA_OPT(JMXPROPERTIES) 적용을 위해 -jmx 파라미터를 붙여야 합니다.
1
2
3
4
5
6
7
8
9
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
74
75
76
77
78
79
80
81
|
[coherence@coherence bin]$ pwd
/home/coherence/coherence14c/coherence/bin
[coherence@coherence bin]$ ls
cache-server.sh cache-server.sh.visualvm coherence.sh.visualvm multicast-test.sh query.sh
cache-server.sh.20220511 coherence.sh datagram-test.sh pof-config-gen.sh readme.txt
[coherence@coherence bin]$ ./cache-server.sh.visualvm -jmx
-Xms1g -Xmx1g -Djava.security.egd=file:/dev/./urandom -Dcoherence.management=all -Dcoherence.management.remote=true -Dcom.sun.management.jmxremote.port=8686 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=146.56.47.11 -Dcoherence.cacheconfig=default-session-cache-config.xml -Dcoherence.session.localstorage=true -Dcoherence.cluster=my_cluster -Dcoherence.clusteraddress=224.2.1.2 -Dcoherence.clusterport=14199 -Dcoherence.ttl=1 -Djava.net.preferIPv4Stack=true
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)
2022-06-08 19:21:48.729/0.828 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"
2022-06-08 19:21:48.850/0.949 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"
2022-06-08 19:21:48.851/0.950 Oracle Coherence 14.1.1.0.0 <Info> (thread=main, member=n/a): Optional configuration override "/tangosol-coherence-override.xml" is not specified
2022-06-08 19:21:48.856/0.955 Oracle Coherence 14.1.1.0.0 <Info> (thread=main, member=n/a): Optional configuration override "cache-factory-config.xml" is not specified
2022-06-08 19:21:48.857/0.956 Oracle Coherence 14.1.1.0.0 <Info> (thread=main, member=n/a): Optional configuration override "cache-factory-builder-config.xml" is not specified
2022-06-08 19:21:48.857/0.956 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.
2022-06-08 19:21:49.043/1.142 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"
2022-06-08 19:21:49.274/1.373 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=n/a): Loaded Reporter configuration from "jar:file:/home/coherence/coherence14c/coherence/lib/coherence.jar!/reports/report-group.xml"
2022-06-08 19:21:49.506/1.605 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=n/a): Created cache factory com.tangosol.net.ExtensibleConfigurableCacheFactory
2022-06-08 19:21:49.896/1.995 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=n/a): TCMP bound to /10.0.0.58:45605 using SystemDatagramSocketProvider
2022-06-08 19:21:50.019/2.118 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Cluster, member=n/a): Failed to satisfy the variance: allowed=16, actual=17
2022-06-08 19:21:50.019/2.118 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Cluster, member=n/a): Increasing allowable variance to 17
2022-06-08 19:21:50.399/2.498 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Cluster, member=n/a): Member(Id=2, Timestamp=2022-06-08 16:45:20.157, Address=10.0.0.58:38407, MachineId=43726, Location=process:3076, Role=WeblogicServer) joined Cluster with senior member 2
2022-06-08 19:21:50.399/2.499 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Cluster, member=n/a): This Member(Id=1, Timestamp=2022-06-08 19:21:50.195, Address=10.0.0.58:45605, MachineId=43726, Location=process:5500, Role=CoherenceServer, Edition=Grid Edition, Mode=Development, CpuCount=2, SocketCount=2) joined cluster "my_cluster" with senior Member(Id=2, Timestamp=2022-06-08 16:45:20.157, Address=10.0.0.58:38407, MachineId=43726, Location=process:3076, Role=WeblogicServer, Edition=Grid Edition, Mode=Development, CpuCount=2, SocketCount=2)
2022-06-08 19:21:50.600/2.699 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Cluster, member=n/a): Member(Id=3, Timestamp=2022-06-08 16:45:42.905, Address=10.0.0.58:32957, MachineId=43726, Location=process:3233, Role=WeblogicServer) joined Cluster with senior member 2
2022-06-08 19:21:50.637/2.736 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:45605.58528
2022-06-08 19:21:50.662/2.761 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Transport:TransportService, member=n/a): Service TransportService joined the cluster with senior service member 2
2022-06-08 19:21:50.673/2.772 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=SelectionService(channels=5, selector=MultiplexedSelector(sun.nio.ch.EPollSelectorImpl@58594a11), id=708348097), member=n/a): Connection established with tmb://10.0.0.58:38407.36071
2022-06-08 19:21:50.675/2.774 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=SelectionService(channels=5, selector=MultiplexedSelector(sun.nio.ch.EPollSelectorImpl@58594a11), id=708348097), member=n/a): Connection established with tmb://10.0.0.58:32957.57642
2022-06-08 19:21:50.677/2.776 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=main, member=n/a): Started cluster Name=my_cluster, ClusterPort=14199
Group{Address=224.2.1.2, TTL=1}
MasterMemberSet(
ThisMember=Member(Id=1, Timestamp=2022-06-08 19:21:50.195, Address=10.0.0.58:45605, MachineId=43726, Location=process:5500, Role=CoherenceServer)
OldestMember=Member(Id=2, Timestamp=2022-06-08 16:45:20.157, Address=10.0.0.58:38407, MachineId=43726, Location=process:3076, Role=WeblogicServer)
ActualMemberSet=MemberSet(Size=3
Member(Id=1, Timestamp=2022-06-08 19:21:50.195, Address=10.0.0.58:45605, MachineId=43726, Location=process:5500, Role=CoherenceServer)
Member(Id=2, Timestamp=2022-06-08 16:45:20.157, Address=10.0.0.58:38407, MachineId=43726, Location=process:3076, Role=WeblogicServer)
Member(Id=3, Timestamp=2022-06-08 16:45:42.905, Address=10.0.0.58:32957, MachineId=43726, Location=process:3233, Role=WeblogicServer)
)
MemberId|ServiceJoined|MemberState|Version
1|2022-06-08 19:21:50.195|JOINED|14.1.1.0.0,
2|2022-06-08 16:45:20.157|JOINED|14.1.1.0.0,
3|2022-06-08 16:45:42.905|JOINED|14.1.1.0.0
RecycleMillis=1200000
RecycleSet=MemberSet(Size=1
Member(Id=14, Timestamp=2022-06-08 19:21:32.879, Address=10.0.0.58:40743, MachineId=43726)
)
)
TcpRing{Connections=[3]}
IpMonitor{Addresses=0, Timeout=15s}
2022-06-08 19:21:50.698/2.797 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=Invocation:Management, member=1): Service Management joined the cluster with senior service member 2
2022-06-08 19:21:50.866/2.966 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
2022-06-08 19:21:51.228/3.327 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 2
2022-06-08 19:21:51.302/3.401 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=2}
TransportService{Name=TransportService, State=(SERVICE_STARTED), Id=1, OldestMemberId=2}
InvocationService{Name=Management, State=(SERVICE_STARTED), Id=2, OldestMemberId=2}
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=2, LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=0, BackupPartitions=0, CoordinatorId=2}
)
Started DefaultCacheServer...
2022-06-08 19:21:51.316/3.415 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=FlashJournalRM-Preparer, member=1): Journal Resource Manager: The Flash Journal is using /tmp as the temporary directory.
2022-06-08 19:21:51.327/3.426 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=DistributedCache:oracle.coherence.web:DistributedSessions, member=1): Journal Resource Manager: The RAM Journal is configured to use a maximum of 251264KB
2022-06-08 19:21:52.408/4.507 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=DistributedCache:oracle.coherence.web:DistributedSessions, member=1): Asking member 2 for primary ownership of PartitionSet{22..41, 63..86}
2022-06-08 19:21:52.572/4.671 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=DistributedCache:oracle.coherence.web:DistributedSessions, member=1): Asking member 3 for primary ownership of PartitionSet{0..21, 42..61}
2022-06-08 19:21:52.720/4.819 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=DistributedCache:oracle.coherence.web:DistributedSessions, member=1): Transferring 0B of backup[1] for PartitionSet{0} to member 3
2022-06-08 19:21:52.822/4.921 Oracle Coherence GE 14.1.1.0.0 <Info> (thread=DistributedCache:oracle.coherence.web:DistributedSessions, member=1): Partition ownership has stabilized with 3 nodes
|
cs |
코히어런스가 정상적으로 기동 되었습니다.
4. Visual VM Coherence JMX 모니터링
Visual VM에서 Remote 항목을 클릭하여 Add Remote Host를 선택합니다.
코히어런스 서버 IP를 입력후 OK를 눌러 줍니다.
해당 호스트를 클릭하여 Add JMX Connection 항목을 선택합니다.
위에서 설정한 JMX 포트번호를 입력하고 Do not require SSL connection을 선택한 후 OK를 눌러 등록합니다.
등록이 완료되면 다음과 같이 'Coherence DefaultCacheServer' 항목이 표시 됩니다.
'Coherence DefaultCacheServer' 항목을 선택하면 다음과 같은 상세화면을 통해 모니터링이 가능합니다.
코히어런스 전용 플러그인을 설치했기 때문에 클러스터에 대한 상세 모니터링이 가능합니다.
여기까지 Visual VM과 JMX를 활용하여 코히어런스 모니터링 환경 구성을 완료 하였습니다.
보면 볼수록 매력있는 솔루션 같습니다.
'Oracle Fusion Middleware > Coherence' 카테고리의 다른 글
9장. Coherence Demo (From / Coherence CE Community) (0) | 2023.06.02 |
---|---|
8장. Tomcat - Coherence 세션 그리드 서비스 (0) | 2023.03.16 |
6장. WebLogic - Coherence 세션 그리드 서비스 - 2 (0) | 2022.06.03 |
5장. WebLogic - Coherence 세션 그리드 서비스 - 1 (0) | 2022.05.31 |
4장. Coherence Examples 동작방식 (Contacts Driver class 분석) (0) | 2022.05.23 |