APサーバ構築 2(WebLogicドメイン構築)

APサーバ・Weblogic

WebLogicドメイン構築

Admin Server起動 / 停止確認

WebLogicのドメインはドメインを管理する管理サーバとアプリケーションをホストする管理対象サーバの2種類で構成されています。ドメイン内のすべてのサーバ・インスタンスは管理サーバによって制御されるため、まずは管理サーバの起動 / 停止を確認します。なお、管理サーバという呼び方は本番サイトの管理サーバとかぶって紛らわしいため、以降は管理サーバをAdmin Server、管理対象サーバをManaged Serverとします。

ドメインの binディレクトリに移動してstartWebLogic.shを実行するとAdmin Serverが起動します。java例外、エラー、失敗等のメッセージが表示されずAdmin Serverが正常に起動したことを知らせるメッセージが表示されればOKです。

【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
# ドメインのbinディレクトリに移動
cd /opt/app/oracle/config/domains/prs_domain/bin/

# Admin Serverを起動
./startWebLogic.sh
→ 標準出力に<Notice> <WebLogicServer> <BEA-000365> <サーバー状態がRUNNINGに変化しました。>と表示されることを確認

Admin Serverの起動が確認できたら次は停止です。通常、WebLogicインスタンスはバックグラウンドで実行します。ところが今回は正常起動確認としてフォアグラウンドで実行しておりAdmin Server起動中はteratermウインドウが占有されるため、このウインドウで停止処理を行うことができません。そこで別のteratermを立ち上げてAdmin Serverを停止します。

Admin Serverを実行中のteraterm画面(teraterm①)左上「ファイル(F)」-「セッションの複製(U)」をクリックして別のteraterm(teraterm②とします)を立ち上げて、こちらから Admin Serverの停止シェルを実行します。

【prsap01 / teraterm②で実行】
-----------------------------------------------------------------------------
# oracleユーザにスイッチ
su - oracle

# ドメインのbinディレクトリに移動
cd /opt/app/oracle/config/domains/prs_domain/bin/

# Admin Server停止
./stopWebLogic.sh weblogic <管理ユーザ・パスワード> "t3://172.16.10.51:7001"

# Admin Serverプロセス(javaプロセス)が存在しないことを確認
ps -ef | grep java | grep AdminServer
→ 何も返されないことを確認

-----------------------------------------------------------------------------
【prsap02 / teraterm②で実行】
-----------------------------------------------------------------------------
# oracleユーザにスイッチ
su - oracle

# ドメインのbinディレクトリに移動
cd /opt/app/oracle/config/domains/prs_domain/bin/

# Admin Server停止
./stopWebLogic.sh weblogic <管理ユーザ・パスワード> "t3://172.16.10.52:7001"

# Admin Serverプロセス(javaプロセス)が存在しないことを確認
ps -ef | grep java | grep AdminServer
→ 何も返されないことを確認
APサーバ#1 / Admin Server停止ログ(teraterm①)

<2025/06/23 18時58分40,235秒 日本標準時> <Notice> <Server> <BEA-002638> <172.16.10.51からGraceful shutdown of AdminServerがリモートで発行されました。>
<2025/06/23 18時58分40,242秒 日本標準時> <Notice> <WebLogicServer> <BEA-000396> <weblogicからサーバーをshutdownするようリクエストされました。>
<2025/06/23 18時58分40,247秒 日本標準時> <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がSUSPENDINGに変化しました。>
<2025/06/23 18時58分40,269秒 日本標準時> <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がADMINに変化しました。>
<2025/06/23 18時58分40,269秒 日本標準時> <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がSHUTTING_DOWNに変化しました。>
<2025/06/23 18時58分40,297秒 日本標準時> <Notice> <Log Management> <BEA-170037> <ログ・モニタリング・サービス・タイマーが停止されました。>
<2025/06/23 18時58分40,350秒 日本標準時> <Warning> <JMX> <BEA-149513> <JMXコネクタ・サーバーがservice:jmx:iiop://172.16.10.51:7001/jndi/weblogic.management.mbeanservers.editで停止しました。>
<2025/06/23 18時58分40,354秒 日本標準時> <Warning> <JMX> <BEA-149513> <JMXコネクタ・サーバーがservice:jmx:iiop://172.16.10.51:7001/jndi/weblogic.management.mbeanservers.domainruntimeで停止しました。>
<2025/06/23 18時58分40,438秒 日本標準時> <Warning> <JMX> <BEA-149513> <JMXコネクタ・サーバーがservice:jmx:iiop://172.16.10.51:7001/jndi/weblogic.management.mbeanservers.runtimeで停止しました。>
<2025/06/23 18時58分40,455秒 日本標準時> <Notice> <JMX> <BEA-149535> <JMXレジリ エンシ・アクティビティ・サーバー=All Servers : Resolving connection list DomainRuntimeServiceMBean>
Stopping Derby server...
Derby server stopped.
[oracle@prsap01 bin]$
APサーバ#1 / Admin Server停止ログ(teraterm②)
[oracle@prsap01 bin]$ ./stopWebLogic.sh weblogic oracle00 "t3://172.16.10.51:7001"
Stopping Weblogic Server...
[0.006s][warning][cds] Archived non-system classes are disabled because the java.system.class.loader property is specified (value = "com.oracle.classloader.weblogic.LaunchClassLoader"). To use archived non-system classes, this property must not be set

WebLogic Scripting Tool(WLST)を初期化しています...

WebLogic Server Administration Scripting Shellへようこそ

使用可能なコマンドに関するヘルプを表示するには、help()と入力してください

ユーザーID weblogicでt3://172.16.10.51:7001に接続しています ...
ドメイン"prs_domain"に属する管理サーバー"AdminServer"に。が正常に接続されました

警告: サーバーへの接続に安全でないプロトコルが使用されました。
通信セキュリティを確保するには、かわりにSSLポートまたは管理ポートを使用する必要 があります。

AdminServerへの接続中にサーバーAdminServerをforce=falseで停止しています...
WLSTからWebLogic Serverへの接続が失われました。
これは、サーバーが停止されたか、または分離された場合に発生することがあります。
サーバーが使用可能になったら再接続する必要があります。
WebLogic Serverから切断されました: AdminServer
WebLogic Serverから切断されました:


WebLogic Scripting Toolを終了しています。

Done
Stopping Derby Server...
Derby server stopped.
[oracle@prsap01 bin]$

ラッピング・シェル作成①(Admin Server起動 / 停止)

Admin Serverの起動/停止に使用したstartWebLogic.sh、stopWebLogic.shは WebLogicによって自動生成されたシェルであるため、運用上の細かい制御を組み込むことはあまりというか、かなりよろしくありません。

そこでstartWebLogic.sh、stopWebLogic.shをラッピングするシェルを作成してそこに運用上必要な処理を加えるようにします。

事前準備

Admin Server停止シェル(stopWebLogic.sh)の引数は「管理ユーザ」、「管理ユーザ・パスワード」、「管理サーバURL」ですべて省略可能です。ただし「管理サーバURL」だけ指定して他の二つを省略するといった引数の順番を違えるような省略はできません。

管理サーバURLのデフォルトは ”t3://Admin Serverリスニング・アドレス:7001″”に設定されています。例えばAdmin ServerをSSL接続オンリーにした場合、デフォルトのURLではAdmin Serverに接続できないため、「管理ユーザ」、「管理ユーザ・パスワード」、接続可能な「管理サーバURL」3つの引数をstopWebLogic.shに渡す必要があります。

「管理サーバURL」はともかく「管理ユーザ」、「管理ユーザ・パスワード」(資格情報)をシェルにベタ書きしてしまうわけにもいかないのでラッピング・シェルを作成する前に暗号化した資格情報を用意します。

まず、暗号化のキーファイルに利用するためのRSA鍵ペアと平文の資格情報ファイルを作成します。

【prsap01、prsap02 / teraterm②で実行】
-----------------------------------------------------------------------------
# 鍵ペア作成(入力要求はすべてEnter押下)
ssh-keygen -t rsa

# 平文のboot.propertiesを作成(4行で記述)
cat > /opt/app/oracle/config/domains/prs_domain/security/boot.properties <<EOF
username=weblogic
password=<管理者アカウントのパスワード>
EOF

資格情報ファイルを格納するためのディレクトリを作成して資格情報ファイルを暗号化します。

【prsap01、prsap02 / teraterm②で実行】
-----------------------------------------------------------------------------
# 資格情報ファイル格納ディレクトリ作成
mkdir -p /opt/app/oracle/bin/.wlssecurity

# 暗号化資格情報ファイル作成(1行で記述)
openssl enc -aes256 -in /opt/app/oracle/config/domains/prs_domain/security/boot.properties -out /opt/app/oracle/bin/.wlssecurity/bootfile -kfile /home/oracle/.ssh/id_rsa.pub -pbkdf2

# パーミッション変更
chmod -R 700 /opt/app/oracle/bin/.wlssecurity/

# 復号確認(1行で記述)
openssl enc -d -aes256 -in /opt/app/oracle/bin/.wlssecurity/bootfile -kfile /home/oracle/.ssh/id_rsa.pub -pbkdf2

Admin Server起動 / 停止シェル作成

APサーバ#1でAdmin Serverの起動シェルと停止シェルを作成して動作確認を行います。作成したシェルが正常に動作することを確認できたらAPサーバ#2にシェルを転送します。

まずAdmin Serverの起動シェル startWebLogic_prs.shを作成します。

【prsap01 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# WebLogic制御シェル格納ディレクトリに移動
cd /opt/app/oracle/bin

# Admin Server起動シェル作成
vi startWebLogic_prs.sh

# Admin Server起動シェルに実行権限付与
chmod u+x startWebLogic_prs.sh
Admin Server起動シェル(クリックで表示)
#!/bin/bash
WLS_USER=oracle
SRV_NAME=AdminServer
ORACLE_BASE=/opt/app/oracle
DOMAIN_NAME=prs_domain
DOMAIN_HOME=${ORACLE_BASE}/config/domains/${DOMAIN_NAME}
STDOUT_DIR=${DOMAIN_HOME}/servers/${SRV_NAME}/logs
STDOUT_LOG=${STDOUT_DIR}/stdout.log
MAX_LOG=20
START_TMOUT=360
CHECK_INTVL=5

# Executing user check
if [ "`whoami`" != "${WLS_USER}" ] ; then
echo "Please run the script as oracle user."
exit 1
fi

# Check if Admin Server is already running
PS_CNT=`ps -ef | grep [j]ava | grep -c ${SRV_NAME}`

if [ ${PS_CNT} -ne 0 ] ; then
echo "${SRV_NAME} is already started!!"
exit 0
fi

# Standard Output Log Archive
if [ ! -d "${STDOUT_DIR}" ] ; then
mkdir -p ${STDOUT_DIR}
fi

for ((i=${MAX_LOG}; i > 1; i--)); do
n=`expr ${i} - 1`
if [ -f "${STDOUT_LOG}.${n}" ] ; then
mv ${STDOUT_LOG}.${n} ${STDOUT_LOG}.${i}
fi
done

if [ -f "${STDOUT_LOG}" ] ; then
mv ${STDOUT_LOG} ${STDOUT_LOG}.1
fi

# Start Admin Server
nohup ${DOMAIN_HOME}/bin/startWebLogic.sh 1> ${STDOUT_LOG} 2>&1 &

# Check the Admin Server process
sleep 5

PS_CNT=`ps -ef | grep [j]ava | grep -c ${SRV_NAME}`

if [ ${PS_CNT} -eq 0 ] ; then
echo "${SRV_NAME} process does not exist!!"
exit 1
fi

# Confirm the Admin Server normal startup message
# (Timeout START_TMOUT sec.)
WAIT_CNT=0
RUN_CNT=0

while [ ${WAIT_CNT} -lt ${START_TMOUT} -a ${RUN_CNT} -eq 0 ] ; do
RUN_CNT=`grep "BEA-000365" ${STDOUT_LOG} | grep -c "RUNNING"`
if [ ${RUN_CNT} -gt 0 ] ; then
echo "${SRV_NAME} started!"
break
else
WAIT_CNT=`expr ${WAIT_CNT} + ${CHECK_INTVL}`
sleep ${CHECK_INTVL}
fi
done

if [ ${RUN_CNT} -eq 0 ] ; then
echo "${SRV_NAME} startup check fails due to timeout!!"
exit 1
fi

exit

startWebLogic_prs.shを実行してAdmin Serverが正常に起動することを確認します。

【prsap01 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# Admin Server起動シェル実行
./startWebLogic_prs.sh
→ ”AdminServer started!”と表示されることを確認

# Admin Serverプロセス(javaプロセス)確認
ps -ef | grep java | grep AdminServer
→ ”-Dweblogic.Name=AdminServer”を含むjavaプロセスが存在することを確認

# 標準出力ログ確認
tail -10 /opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs/stdout.log
→ <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がRUNNINGに変化しました。>が出力されていることを確認

Admin Server停止シェル stopWebLogic_prs.shを作成します。

【prsap01 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# Admin Server停止シェル作成
vi stopWebLogic_prs.sh

# Admin Server停止シェルに実行権限付与
chmod u+x stopWebLogic_prs.sh
Admin Server停止シェル(クリックで表示)
#!/bin/bash
WLS_USER=oracle
SRV_HOST=`hostname -s`
SRV_NAME=AdminServer
DOMAIN_NAME=prs_domain
ORACLE_BASE=/opt/app/oracle
DOMAIN_HOME=${ORACLE_BASE}/config/domains/${DOMAIN_NAME}
ADMIN_PROT=t3
ADMIN_PORT=7001
ADMIN_URL="${ADMIN_PROT}://${SRV_HOST}-mgt.exsample.lan:${ADMIN_PORT}"
BOOTFILE=${ORACLE_BASE}/bin/.wlssecurity/bootfile
KEY_FILE=/home/oracle//.ssh/id_rsa.pub
WLSUSR=""
WLSPWD=""
STDOUT_DIR=${DOMAIN_HOME}/servers/${SRV_NAME}/logs
STDOUT_LOG=${STDOUT_DIR}/stdout.log
STOP_LOG=${STDOUT_DIR}/stop.log
MAX_LOG=20

# Executing user check
if [ "`whoami`" != "${WLS_USER}" ] ; then
echo "Please run the script as oracle user."
exit 1
fi

# Check if Admin Server is already stopped
PS_CNT=`ps -ef | grep [j]ava | grep -c ${SRV_NAME}`

if [ ${PS_CNT} -eq 0 ] ; then
echo "${SRV_NAME} is already stopped!!"
exit 0
fi

# Standard output log check
if [ ! -f "${STDOUT_LOG}" ] ; then
echo "Standard output log does not exist!!"
exit 1
fi

# Admin Server Down Log Archive
for ((i=${MAX_LOG}; i > 1; i--)); do
n=`expr ${i} - 1`
if [ -f "${STOP_LOG}.${n}" ] ; then
mv ${STOP_LOG}.${n} ${STOP_LOG}.${i}
fi
done

if [ -f "${STOP_LOG}" ] ; then
mv ${STOP_LOG} ${STOP_LOG}.1
fi

if [ ! -f "${BOOTFILE}" ] ; then
echo "bootfile does not exist!!"
exit 1
fi

if [ ! -f "${KEY_FILE}" ] ; then
echo "keyfile does not exist!!"
exit 1
fi

# Credentials file decryption
WLSUSR=`openssl enc -d -aes256 -in ${BOOTFILE} -kfile ${KEY_FILE} -pbkdf2 | grep username ${BOOTPRO} | awk -F"=" '{ print $2 }'`
WLSPWD=`openssl enc -d -aes256 -in ${BOOTFILE} -kfile ${KEY_FILE} -pbkdf2 | grep password ${BOOTPRO} | awk -F"=" '{ print $2 }'`

if [ -z "${WLSUSR}" -o -z "${WLSPWD}" ] ; then
echo "The credentials are incorrect!!"
exit 1
fi

# Admin Server stopped
${DOMAIN_HOME}/bin/stopWebLogic.sh "${WLSUSR}" "${WLSPWD}" "${ADMIN_URL}" 1> ${STOP_LOG} 2>&1

sleep 5

# Admin Server residual process check
PS_CNT=`ps -ef | grep [j]ava | grep -c ${SRV_NAME}`

if [ ${PS_CNT} -ne 0 ] ; then
echo "Failed to stop the ${SRV_NAME}!!"
exit 1
fi

# Check the standard output log message
if [ `grep -c "Derby server stopped" ${STDOUT_LOG}` -eq 0 ] ; then
echo "Server stop message not found"
exit 9
else
echo "${SRV_NAME} has been stopped!!"
fi

exit

stopWebLogic_prs.shを実行してAdmin Serverが正常に停止することを確認します。正常停止が確認できたら作成したシェルをAPサーバ#2に転送します。

【prsap01 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# Admin Server停止シェル実行
./stopWebLogic_prs.sh
→ "AdminServer has been stopped!!"と表示されることを確認

# Admin Serverプロセス(javaプロセス)確認
ps -ef | grep java | grep AdminServer
→ なにも返されないことを確認

# 作成したシェルをAPサーバ#2に転送
scp /opt/app/oracle/bin/*.sh prsap02:/opt/app/oracle/bin/

Admin Server起動/停止動作確認(APサーバ#2)

APサーバ#2でシェルによるAdmin Server起動/停止の動作確認を行います。

【prsap02 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# WebLogic制御シェル格納用ディレクトリに移動
cd /opt/app/oracle/bin

# Admin Server起動シェル実行
./startWebLogic_prs.sh
→ ”AdminServer started!”と表示されることを確認

# Admin Serverプロセス(javaプロセス)確認
ps -ef | grep java | grep AdminServer
→ ”-Dweblogic.Name=AdminServer”を含むjavaプロセスが存在することを確認

# 標準出力ログ確認
tail -10 /opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs/stdout.log
→ <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がRUNNINGに変化しました。>が出力されていることを確認

# Admin Server停止シェル実行
./stopWebLogic_prs.sh
→ ”AdminServer has been stopped!!”と表示されることを確認

# Admin Serverプロセス(javaプロセス)確認
ps -ef | grep java | grep AdminServer
→ なにも返されないことを確認

Managed Server起動 / 停止確認

Admin Serverを起動します。

【prsap01、prsap02 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# Admin Server起動
/opt/app/oracle/bin/startWebLogic_prs.sh

Managed Serverのセキュリティ・ディレクトリや起動IDファイルはウィザードでは作成されません。セキュリティ・ディレクトリを手動で作成してドメイン・ホーム直下に作成した平文の資格情報ファイルをそこに移動します。

【prsap01 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# Managed Serverのセキュリティ・ディレクトリを作成
mkdir -p /opt/app/oracle/config/domains/prs_domain/servers/prs_ap01/security
cd /opt/app/oracle/config/domains/prs_domain/servers/prs_ap01/security

# 起動IDファイルを配置
mv /opt/app/oracle/config/domains/prs_domain/security/boot.properties ./

-----------------------------------------------------------------------------
【prsap02 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# Managed Serverのセキュリティ・ディレクトリを作成
mkdir -p /opt/app/oracle/config/domains/prs_domain/servers/prs_ap02/security
cd /opt/app/oracle/config/domains/prs_domain/servers/prs_ap02/security

# 起動IDファイルを配置
mv /opt/app/oracle/config/domains/prs_domain/security/boot.properties ./

startManagedWebLogic.shを実行して Managed Serverを起動します。java例外、エラー、失敗等のメッセージが表示されず正常起動のメッセージが表示されればOKです。

【prsap01 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# ドメインのbinディレクトリに移動
cd /opt/app/oracle/config/domains/prs_domain/bin/

# Managed Server起動
./startManagedWebLogic.sh prs_ap01 "t3;//172.16.10.51:7001"
→ 標準出力に <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がRUNNINGに変化しました。>と表示されることを確認

-----------------------------------------------------------------------------
【prsap02 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# ドメインのbinディレクトリに移動
cd /opt/app/oracle/config/domains/prs_domain/bin/

# Managed Server起動
./startManagedWebLogic.sh prs_ap02 "t3;//172.16.10.52:7001"
→ 標準出力に <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がRUNNINGに変化しました。>と表示されることを確認

別の teratermウィンドウ(teraterm②)でstopManagedWebLogic.shを実行してManaged Serverの停止確認を行います。

【prsap01 / teraterm② oracleユーザで実行】
-----------------------------------------------------------------------------
# ドメインのbinディレクトリに移動
cd /opt/app/oracle/config/domains/prs_domain/bin/

# Managed Server停止
./stopManagedWebLogic.sh prs_ap01 "t3://172.16.10.51:7001"


# Admin Serverプロセス(javaプロセス)が存在しないことを確認
ps -ef | grep java | grep prs_ap0[1,2]
→ 何も返されないことを確認

-----------------------------------------------------------------------------
【prsap02 / teraterm② oracleユーザで実行】
-----------------------------------------------------------------------------
# ドメインのbinディレクトリに移動
cd /opt/app/oracle/config/domains/prs_domain/bin/

# Managed Server停止
./stopManagedWebLogic.sh prs_ap02 "t3://172.16.10.52:7001"


# Admin Serverプロセス(javaプロセス)が存在しないことを確認
ps -ef | grep java | grep prs_ap0[1,2]
→ 何も返されないことを確認

WebLogic制御シェル作成②(Managed Server起動 / 停止)

Managed Server起動 / 停止シェル作成

APサーバ#1でManaged Server起動シェルと停止シェルを作成して動作確認を行います。まず起動シェル startManagedWebLogic_prs.shを作成します。

【prsap01 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# WebLogic制御シェル格納ディレクトリに移動
cd /opt/app/oracle/bin

# Managed Server起動シェル作成
vi startManagedWebLogic_prs.sh

# 実行権限付与
chmod u+x startManagedWebLogic_prs.sh

# Managed Server起動シェル実行
./startManagedWebLogic_prs.sh
→ "prs_ap01 started!"と返されることを確認

# Managed Serverプロセス(javaプロセス)確認
ps -ef | grep java | grep prs_ap0[1,2]
→ "-Dweblogic.Name=<Managed Server>"を含むjavaプロセスが存在することを確認

# 標準出力ログ確認
tail -10 /opt/app/oracle/config/domains/prs_domain/servers/prs_ap0?/logs/stdout.log
→ <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がRUNNINGに変化しました。>を含むメッセージが返されることを確認
Managed Server起動シェル(クリックで表示)
#!/bin/bash
WLS_USER=oracle
SRV_HOST=`hostname -s`
SRV_NAME=`echo ${SRV_HOST} | sed 's/prs/prs_/g'`
ORACLE_BASE=/opt/app/oracle
DOMAIN_NAME=prs_domain
ADMIN_PROT=t3
ADMIN_PORT=7001
ADMIN_URL="${ADMIN_PROT}://${SRV_HOST}-mgt.exsample.lan:${ADMIN_PORT}"
DOMAIN_HOME=${ORACLE_BASE}/config/domains/${DOMAIN_NAME}
STDOUT_DIR=${DOMAIN_HOME}/servers/${SRV_NAME}/logs
STDOUT_LOG=${STDOUT_DIR}/stdout.log
MAX_LOG=20
START_TMOUT=360
CHECK_INTVL=5

# Executing user check
if [ "`whoami`" != "${WLS_USER}" ] ; then
echo "Please run the script as oracle user."
exit 1
fi

# Check if Managed Server is already running
PS_CNT=`ps -ef | grep [j]ava | grep -c ${SRV_NAME}`

if [ ${PS_CNT} -ne 0 ] ; then
echo "${SRV_NAME} is already started!!"
exit 0
fi

# Standard Output Log Archive
if [ ! -d "${STDOUT_DIR}" ] ; then
mkdir -p ${STDOUT_DIR}
fi

for ((i=${MAX_LOG}; i > 0; i--)); do
n=`expr ${i} - 1`
if [ -f "${STDOUT_LOG}.${n}" ] ; then
mv ${STDOUT_LOG}.${n} ${STDOUT_LOG}.${i}
fi
done
if [ -f "${STDOUT_LOG}" ] ; then
mv ${STDOUT_LOG} ${STDOUT_LOG}.0
fi

# Start Managed Server
nohup ${DOMAIN_HOME}/bin/startManagedWebLogic.sh ${SRV_NAME} ${ADMIN_URL} 1> ${STDOUT_LOG} 2>&1 &

# Check the Managed Server process
sleep 5

PS_CNT=`ps -ef | grep [j]ava | grep -c ${SRV_NAME}`

if [ ${PS_CNT} -eq 0 ] ; then
echo "${SRV_NAME} process does not exist!!"
exit 1
fi

# Confirm the Managed Server normal startup message
# (Timeout START_TMOUT sec.)
WAIT_CNT=0
RUN_CNT=0

while [ ${WAIT_CNT} -lt ${START_TMOUT} -a ${RUN_CNT} -eq 0 ] ; do
RUN_CNT=`grep "BEA-000365" ${STDOUT_LOG} | grep -c "RUNNING"`
if [ ${RUN_CNT} -gt 0 ] ; then
echo "${SRV_NAME} started!"
break
else
WAIT_CNT=`expr ${WAIT_CNT} + ${CHECK_INTVL}`
sleep ${CHECK_INTVL}
fi
done

if [ ${RUN_CNT} -eq 0 ] ; then
echo "${SRV_NAME} startup check fails due to timeout!!"
exit 1
fi

exit

Manage Server停止シェル stopManagedWebLogic_prs.shを作成して動作確認を行います。

【prsap01 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# Managed Server停止シェル作成
vi stopManagedWebLogic_prs.sh

# 実行権限付与
chmod u+x stopManagedWebLogic_prs.sh

# Managed Server停止シェル実行
./stopManagedWebLogic_prs.sh
→ "prs_ap01 has been stopped!!"と返されること

# Managed Serverプロセス(javaプロセス)確認
ps -ef | grep java | grep prs_ap0[1,2]
→ なにも返されないことを確認

# 作成したシェルをAPサーバ#2に転送
scp /opt/app/oracle/bin/*.sh prsap02:/opt/app/oracle/bin/
Managed Server停止シェル
WLS_USER=oracle
SRV_HOST=`hostname -s`
SRV_NAME=`echo ${SRV_HOST} | sed 's/prs/prs_/g'`
ORACLE_BASE=/opt/app/oracle
DOMAIN_NAME=prs_domain
DOMAIN_HOME=${ORACLE_BASE}/config/domains/${DOMAIN_NAME}
ADMIN_PROT=t3
ADMIN_PORT=7001
ADMIN_URL="${ADMIN_PROT}://${SRV_HOST}-mgt.exsample.lan:${ADMIN_PORT}"
STDOUT_DIR=${DOMAIN_HOME}/servers/${SRV_NAME}/logs
STDOUT_LOG=${STDOUT_DIR}/stdout.log
STOP_LOG=${STDOUT_DIR}/stop.log
MAX_LOG=20

# Executing user check
if [ "`whoami`" != "${WLS_USER}" ] ; then
echo "Please run the script as oracle user."
exit 1
fi

# Check if Managed Server is already stopped
PS_CNT=`ps -ef | grep [j]ava | grep -c ${SRV_NAME}`

if [ ${PS_CNT} -eq 0 ] ; then
echo "${SRV_NAME} has been stopped!!"
exit 0
fi

# Standard output log check
if [ ! -f "${STDOUT_LOG}" ] ; then
echo "Standard output log does not exist!!"
exit 1
fi

# Managed Server Down Log Archive
for ((i=${MAX_LOG}; i > 1; i--)); do
n=`expr ${i} - 1`
if [ -f "${STOP_LOG}.${n}" ] ; then
mv ${STOP_LOG}.${n} ${STOP_LOG}.${i}
fi
done

if [ -f "${STOP_LOG}" ] ; then
mv ${STOP_LOG} ${STOP_LOG}.1
fi

# Managed Server stopped
${DOMAIN_HOME}/bin/stopManagedWebLogic.sh ${SRV_NAME} ${ADMIN_URL} 1> ${STOP_LOG} 2>&1

sleep 5

# Managed Server residual process check
PS_CNT=`ps -ef | grep [j]ava | grep -c ${SRV_NAME}`

if [ ${PS_CNT} -ne 0 ] ; then
echo "Failed to stop the ${SRV_NAME}!!"
exit 1
else
echo "${SRV_NAME} has been stopped!!"
fi

exit

Managed Server起動/停止動作確認(APサーバ#2)

APサーバ#2で Managed Server起動シェル、停止シェルの動作確認を行います。

【prsap02 / teraterm① oracleユーザで実行】
-----------------------------------------------------------------------------
# Managed Server起動
./startManagedWebLogic_prs.sh
→ "prs_ap02 started!"と表示されることを確認

# Managed Serverプロセス(javaプロセス)確認
ps -ef | grep java | grep prs_ap0[1,2]
→ ”-Dweblogic.Name=AdminServer”を含むjavaプロセスが存在することを確認

# 標準出力ログ確認
tail -10 /opt/app/oracle/config/domains/prs_domain/servers/prs_ap0?/logs/stdout.log
→ <Notice> <WebLogicServer> <BEA-000365> <サーバー状態がRUNNINGに変化しました。>を含むメッセージが返されることを確認

# Managed Server停止シェル実行
./stopManagedWebLogic_prs.sh
→ "prs_ap02 has been stopped!!"と返されること

# Managed Serverプロセス(javaプロセス)確認
ps -ef | grep java | grep prs_ap0[1,2]
→ なにも返されないことを確認

ドメイン基本設定

APサーバ#1、APサーバ#2でAdmin Serverを起動します。

【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
/opt/app/oracle/bin/startWebLogic_prs.sh
→ "AdminServer started!"と表示されることを確認

Webブラウザを立ち上げてAPサーバ#1のAdmin Serverのコンソールに接続します。

【prsap01 / Admin Server接続URL】※Webブラウザから接続
-----------------------------------------------------------------------------
http://172.16.10.51:7001/console

あれれ? ページ・アクセスはできたようですがログイン画面ではなく変なページが出てきます。読んでみると従来のコンソールは廃止したからWebLogic Remote Consoleをダウンロードしてくれ、なんてことが書いてます。今までのコンソールはなくなっちゃったんですね。仕方がないのでWebLogic Remote Consoleのダウンロード・リンクをクリックします。

ダウンロード・リンクの飛び先はなんとGitHubでした。この記事を聞いている時点のWebLogic Remote Consoleの最新リリースは 2.4.16ですが、このバージョンのAssetsには22個もファイルが並んでいます。とりあえずWindosのZIP版らしき「WebLogic-Remote-Console-2.4.16-win.zip」というやつをダウンロードしてみます。

zipを展開して中に入っているWebLogic Remote Console.exeをダブルクリックしてRemote Consoleを起動します。

Remote Consoleの初回起動では起動タスクの選択が表示されるので「管理サーバー接続プロバイダの追加」を選択します。

「管理サーバー接続のプロバイダの作成」が表示されるので接続プロバイダ名(任意に命名)、ユーザ名(管理ユーザ)、パスワード(管理ユーザ・パスワード)、URL(http://<ホスト名>:7001)、セキュアでない接続の確立(チェック)を入力します。

【APサーバ#1 接続プロバイダ設置値】

設定項目設定値
接続プロバイダ名prsap01_console
Web認証の使用チェックなし
ユーザー名weblogic
パスワード管理ユーザ・パスワード
URLhttp://172.16.10.51:7001
プロキシ・オーバーライド空白(設定なし)
セキュアでない接続の確立チェック

「OK」をクリックして以下のような画面が表示されれば接続成功です。

2台目以降の接続を追加する場合は画面右上「接続プラグ」-「縦三点リーダー」-「管理サーバー接続プロバイダの追加」をクリックしてAPサーバ#2の接続プロバイダも作成します。

【APサーバ#2 接続プロバイダ設置値】

設定項目設定値
接続プロバイダ名prsap02_console
Web認証の使用チェックなし
ユーザー名weblogic
パスワード管理ユーザ・パスワード
URLhttp://172.16.10.52:7001
プロキシ・オーバーライド空白(設定なし)

APサーバ#2の接続プロバイダを作成したら「接続プラグ」-「prsap01_console」をクリックしてAPサーバ#1に接続を戻し、「ツリーの編集」アイコンをクリックします。

画面左ツリーの「環境」-「サーバー」を展開、「AdminServer」をクリックしてAdmin Serverの編集画面に移動します。

画面上部のタブをクリックしてロギング及び起動/停止の設定を行います。

【Admin Server設定内容】

No.タブタブ(下段)設定内容
1ロギング-一般拡張フィールドの表示:チェック
ローテーションのタイプ:ByTime
起動時に尾久ファイルをローテーション:有効
標準出力のロギングのリダイレクトを有効化:有効
標準エラー出力のロギングのリダイレクトを有効化:有効
ログ・ファイル重大度レベル:情報
ドメイン・ログ・ブロードキャスト重大度レベル:クリティカル
→ すべての設定が終わったら設定画面上部「保存」をクリック
2拡張起動/停止正常な停止のタイムアウト:300
起動のタイムアウト:300
→ すべての設定が終わったら設定画面上部「保存」をクリック

Admin Serverの設定が終わったら左ペインのツリーで「prs_ap01」をクリックしてロギング、自己チューニング・スレッドプール、起動/停止の設定を行います。

【Managed Server設定内容】

No.タブタブ(下段)設定内容
1ロギング -一般拡張フィールドの表示:チェック
ローテーションのタイプ:ByTime
起動時に尾久ファイルをローテーション:有効
標準出力のロギングのリダイレクトを有効化:有効
標準エラー出力のロギングのリダイレクトを有効化:有効
ログ・ファイル重大度レベル:情報
ドメイン・ログ・ブロードキャスト重大度レベル:クリティカル
→ すべての設定が終わったら設定画面上部「保存」をクリック
2拡張チューニング自己チューニング・スレッド最小プール・サイズ:400
→ 設定が終わったら設定画面上部「保存」をクリック
3拡張起動/停止正常な停止のタイムアウト:300
起動のタイムアウト:300
→ すべての設定が終わったら設定画面上部「保存」をクリック

一通り設定が終わったら画面上部の「ショッピング・カート」 – 「変更のコミット」をクリックします。

すこし時間をおいて画面上部に「1つ以上のサーバーを再起動する必要があります。」と表示されるのでAdmin Serverを再起動します。

【prsap01 / oracleユーザで実行】
-----------------------------------------------------------------------------
# Admin Server停止
/opt/app/oracle/bin/stopWebLogic_prs.sh

# Admin Server起動
/opt/app/oracle/bin/startWebLogic_prs.sh

APサーバ#1の設定が終わったら接続をAPサーバ#2に切り替えてAPサーバ#1と同じ設定を行います。

APサーバ#2の設定も終了したらRemote Consoleを閉じ、各APサーバのAdmin Serverを停止します。

【prsap01、prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
/opt/app/oracle/bin/stopWebLogic_prs.sh

JVMの設定

以下はpsコマンドによるAdmin Server、Managed Serverのプロセス情報です。JVMの引数を見るとどちらもヒープサイズが-Xms256m -Xmx512mとなっていることがわかります。

[oracle@prsap01 bin]$ /opt/app/oracle/bin/startWebLogic_prs.sh
AdminServer started!
[oracle@prsap01 bin]$ /opt/app/oracle/bin/startManagedWebLogic_prs.sh
prs_ap01 started!
[oracle@prsap01 bin]$
[oracle@prsap01 ~]$ ps -ef | grep java | grep -e Admin -e prs_ap
oracle 6422 6385 0 18:34 pts/0 00:00:34 /usr/lib/jvm/jdk-21.0.7-oracle-x64/bin/java -server -Xms256m -Xmx512m -XX:CompileThreshold=8000 -cp /opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=AdminServer -Djava.security.policy=/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server weblogic.Server
oracle 6621 6587 0 18:36 pts/0 00:00:31 /usr/lib/jvm/jdk-21.0.7-oracle-x64/bin/java -server -Xms256m -Xmx512m -XX:CompileThreshold=8000 -cp /opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=prs_ap01 -Djava.security.policy=/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.management.server=t3://172.16.10.51:7001 weblogic.Server
[oracle@prsap01 ~]$
[oracle@prsap01 ~]$ /opt/app/oracle/bin/stopManagedWebLogic_prs.sh
prs_ap01 has been stopped!!
[oracle@prsap01 ~]$ /opt/app/oracle/bin/stopWebLogic_prs.sh
AdminServer has been stopped!!
[oracle@prsap01 ~]$

Admin ServerはともかくManaged Serverの-Xmx512mはさすがにちょっと小さすぎて増加が必要で、ついでにいえばGCログもとれるようにしておきたいところです。

WebLogic14.1.1まではstarrWebLogic.shやstartManagedWebLogic.shにヒープサイズ指定その他のパラメータを記述する箇所があったりしたのですが、14.1.2ではsetDomain.shに一本化されているようなのでこちらを編集してヒープサイズの増加とGCログの取得を設定します。

【prsap01 / oracleユーザで実行】
-----------------------------------------------------------------------------
# ドメインのbinディレクトリに移動
cd /opt/app/oracle/config/domains/prs_domain/bin/

# 既存のsetDomain.shをバックアップ
cp setDomainEnv.sh setDomainEnv.sh.org

# setDomainEnv.shを編集
vi setDomainEnv.sh

内容をざっと確認するとヒープサイズ関連は261行目~274行目に記述しているようですね。270行目にずばり「WLS_MEM_ARGS_64BIT=”-Xms256m -Xmx512m”」と書いてあります。なのでこの記述を含むif文を抜けたところでAdmin Serverとそれ以外に分けてヒープサイズを追記します。リソース的には十分余裕があるのでAdmin Serverは-Xmx1024m、それ以外のサーバ・インスタンスは4096mとしておきます。どちらも-XmsはXmxと同じサイズです。

【setDomain.sh ヒープサイズ指定】※赤字部分が追記箇所
-----------------------------------------------------------------------------
WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m" → 261行目
export WLS_MEM_ARGS_64BIT

WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_32BIT
export WLS_MEM_ARGS_64BIT

WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_32BIT

if [ "${JAVA_VENDOR}" != "HP" ] ; then
if [ "${VM_TYPE}" = "HotSpot" ] ; then
WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms256m -Xmx512m"
export WLS_MEM_ARGS_32BIT
fi
fi → 274行目

# prs_domain mem args begin
if [ "${SERVER_NAME}" = "AdminServer" ] ; then
WLS_MEM_ARGS_64BIT="-Xms1024m -Xmx1024m"
else
WLS_MEM_ARGS_64BIT="-Xms4096m -Xmx4096m"
fi
# prs_domain mem args end


MEM_ARGS_64BIT="${WLS_MEM_ARGS_64BIT}" → 284行目

GCログの設定は javaオプション編集の最後に入れておきましょうか。531行目(オリジナルでは523行目)に「JAVA_OPTIONS=”${JAVA_OPTIONS}”」とあるのでこれをコメントアウトしてGCログ設定を追記した内容に差し替えます。

【setDomain.sh GCログ指定】※赤字部分が追記箇所
-----------------------------------------------------------------------------
#JAVA_OPTIONS="${JAVA_OPTIONS}" → 531行目
JAVA_OPTIONS="${JAVA_OPTIONS} -Xlog:gc:file=${DOMAIN_HOME}/servers/${SERVER_NAME}/logs/gc.log:t"
export JAVA_OPTIONS → 533行目

Admin Server、Managed Serverを起動してヒープサイズ指定が変更されていること、GCログが出力されていることを確認します。

【prsap01 / oracleユーザで実行】
-----------------------------------------------------------------------------
[oracle@prsap01 ~]$ /opt/app/oracle/bin/startWebLogic_prs.sh
AdminServer started!
[oracle@prsap01 ~]$ /opt/app/oracle/bin/startManagedWebLogic_prs.sh
prs_ap01 started!
[oracle@prsap01 ~]$
[oracle@prsap01 bin]$ ps -ef | grep java | grep -e Admin -e prs_ap
oracle 17556 17519 19 22:27 pts/1 00:00:26 /usr/lib/jvm/jdk-21.0.7-oracle-x64/bin/java -server -Xms1024m -Xmx1024m -XX:CompileThreshold=8000 -cp /opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=AdminServer -Djava.security.policy=/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Xlog:gc:file=/opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs/gc.log:t -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server weblogic.Server
oracle 17851 17817 34 22:28 pts/1 00:00:24 /usr/lib/jvm/jdk-21.0.7-oracle-x64/bin/java -server -Xms4096m -Xmx4096m -XX:CompileThreshold=8000 -cp /opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=prs_ap01 -Djava.security.policy=/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.management.server=t3://172.16.10.51:7001 -Xlog:gc:file=/opt/app/oracle/config/domains/prs_domain/servers prs_ap01/logs/gc.log:t -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.management.server=t3://172.16.10.51:7001 weblogic.Server
[oracle@prsap01 bin]$
[oracle@prsap01 bin]$ ls /opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs/gc.log
/opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs/gc.log
[oracle@prsap01 bin]$ ls /opt/app/oracle/config/domains/prs_domain/servers/prs_ap01/logs/gc.log
/opt/app/oracle/config/domains/prs_domain/servers/prs_ap01/logs/gc.log
[oracle@prsap01 bin]$

setDomainEnv.shをAPサーバ#2に転送します。

【prsap01 / oracleユーザで実行】
-----------------------------------------------------------------------------
# setDomainEnv.shをAPサーバ#2に転送
scp setDomainEnv.sh prsap02:/opt/app/oracle/config/domains/prs_domain/bin/

APサーバ#2でAdmin Server、Managed Serverを起動してヒープサイズ指定が変更されていること、GCログが出力されていることを確認します。

【prsap02 / oracleユーザで実行】
-----------------------------------------------------------------------------
[oracle@prsap02 ~]$ /opt/app/oracle/bin/startWebLogic_prs.sh
AdminServer started!
[oracle@prsap02 ~]$ /opt/app/oracle/bin/startManagedWebLogic_prs.sh
prs_ap02 started!
[oracle@prsap02 ~]$ ps -ef | grep java | grep -e Admin -e prs_ap
oracle 15720 15683 46 22:37 pts/0 00:00:25 /usr/lib/jvm/jdk-21.0.7-oracle-x64/bin/java -server -Xms1024m -Xmx1024m -XX:CompileThreshold=8000 -cp /opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=AdminServer -Djava.security.policy=/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Xlog:gc:file=/opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs/gc.log:t -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server weblogic.Server
oracle 15888 15854 66 22:38 pts/0 00:00:23 /usr/lib/jvm/jdk-21.0.7-oracle-x64/bin/java -server -Xms4096m -Xmx4096m -XX:CompileThreshold=8000 -cp /opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=prs_ap02 -Djava.security.policy=/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.management.server=t3://172.16.10.52:7001 -Xlog:gc:file=/opt/app/oracle/config/domains/prs_domain/servers prs_ap02/logs/gc.log:t -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/opt/app/oracle/product/Oracle_Home/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.home=/opt/app/oracle/product/Oracle_Home/wlserver/server -Dweblogic.management.server=t3://172.16.10.52:7001 weblogic.Server
[oracle@prsap02 ~]$
[oracle@prsap02 ~]$ ls /opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs/gc.log
/opt/app/oracle/config/domains/prs_domain/servers/AdminServer/logs/gc.log
[oracle@prsap02 ~]$ ls /opt/app/oracle/config/domains/prs_domain/servers/prs_ap02/logs/gc.log
/opt/app/oracle/config/domains/prs_domain/servers/prs_ap02/logs/gc.log
[oracle@prsap02 ~]$

以上でドメインの基本設定は終了です。次はデータソースを作成します。

APサーバ構築 関連ページ
1.Weblogicインストール
2.WebLogicドメイン構築
3.JDBC接続
4.DB接続確認用アプリ作成
5.アプリ・デプロイ
6.本番モード切替

修正履歴

2025/8/18
setDomainEnv.shにGCログを設定する箇所の記述がJAVA_OPTIONS=”${JAVA_OPTIONS}…${JAVA_OPTIONS}”になっていた…orz(後ろの${JAVA_OPTIONS}は削除しました)

2025/8/26

「Oracle WebLogic Serverサーバーの起動と停止の管理」の「停止スクリプトによるサーバーの停止」は資格情報や管理サーバURLを引数で指定する記述になっていますが、これって省略可能だったんですね。ずっと引数指定必須と思い込んでました……。

引数指定不要を知って「こんな作業いらないじゃん」と一旦、資格情報やURL関連の記述を削ったりシェルから削除しまくったのですが、この後の本番切り替えでAdmin ServerをSSL接続オンリーに設定した場合はManaged Server起動/停止でSSL接続用のURLを渡さなきゃいけなかったり、Admin Server停止の場合はURLに加えて資格情報も必要なことに気づいたのでページを元に戻した上でAdmin Server停止、Managed Server起動/停止まわりの記述や関連シェルに結構修正を加えました。

2025/8/29
Admin Servrt起動及び Managed Server起動ラッピング・シェルに標準出力ログ格納ディレクトリが存在しない場合は作成する処理を追加(ドメインを再作成したときなど、起動/停止確認をすっ飛ばして起動シェルを実行するとエラーとなってしまうことから対応実施)

2025/8/29
WRCの「セキュアでない接続の確立」はHTTP接続の時はいらんかったです。

2025/9/9

Amdin Serverの起動シェルManage Serverの起動シェルでドメインのサーバー起動スクリプトコール後5秒待った時点で対象のjavaプロセスの存在チェックをやっていたんですが、5秒以上経過してから起動中のサーバに強制終了が発生するとタイムアウトになるまで延々待たされてからようやくエラーになるというしょうもない設定になってることに気づきました。なのでjavaプロセスの存在チェックを起動メッセージ・チェックのループ内に移動してstdout.logの強制シャットダウンメッセージ・チェックを追加しています。移動前のjavaプロセスの存在チェックはコメントアウトして赤字・取り消し線表示にしていますが2,3日したらシェルから削除します。

2025/9/24

WRCのドメイン設定で「起動時にログファイルをローテーション」の有効が抜けていたので追加しました。

コメント

タイトルとURLをコピーしました