WebLogic Server — Cheatsheet
If you like this project, consider supporting me on Buy Me a Coffee ☕️
tags:
- web-servers
- sysadmin
-
linux
🌐 WebLogic Server — Cheatsheet
Description
Oracle WebLogic Server is a commercial Java EE / Jakarta EE application server developed by Oracle. It provides a robust, scalable platform for deploying enterprise Java applications, including support for EJB, JMS, JTA, and web services. WebLogic is commonly used in large enterprise environments, especially those relying on Oracle's technology stack.
Common use cases / Типичные сценарии:
- Enterprise Java EE application hosting / Хостинг корпоративных Java EE приложений
- SOA (Service-Oriented Architecture) middleware / Middleware для SOA
- Oracle Fusion Middleware platform / Платформа Oracle Fusion Middleware
- WebSocket and RESTful API deployment / Деплой WebSocket и REST API
- Clustered, high-availability Java deployments / Кластерные развертывания Java
[!NOTE] WebLogic is a legacy commercial product requiring an Oracle license. Modern open-source alternatives include WildFly (JBoss successor, Jakarta EE), Payara (GlassFish fork), and Open Liberty (IBM). For microservices, consider Spring Boot, Quarkus, or Micronaut with embedded servers. WebLogic — коммерческий продукт Oracle. Современные альтернативы: WildFly, Payara, Open Liberty. Для микросервисов: Spring Boot, Quarkus, Micronaut.
Installation & Configuration
Default Paths
| Path / Путь | Purpose / Назначение |
|---|---|
/u01/oracle/ |
Oracle home directory / Домашняя директория Oracle |
$ORACLE_HOME/wlserver/ |
WebLogic Server installation / Установка WebLogic |
$DOMAIN_HOME/ |
Domain directory / Директория домена |
$DOMAIN_HOME/config/config.xml |
Domain configuration / Конфигурация домена |
$DOMAIN_HOME/bin/ |
Start/stop scripts / Скрипты запуска/остановки |
$DOMAIN_HOME/servers/ |
Server instances / Экземпляры серверов |
$DOMAIN_HOME/servers/*/logs/ |
Server logs / Логи серверов |
Default Ports
| Port / Порт | Purpose / Назначение |
|---|---|
7001 |
Admin Server HTTP / HTTP для Admin Server |
7002 |
Admin Server HTTPS / HTTPS для Admin Server |
5556 |
Node Manager / Менеджер узлов |
7003-7XXX |
Managed Servers (configurable) / Управляемые серверы |
Environment Variables
export ORACLE_HOME=/u01/oracle # Oracle installation / Установка Oracle
export WL_HOME=$ORACLE_HOME/wlserver # WebLogic home / Домашняя WL
export DOMAIN_HOME=/u01/oracle/user_projects/domains/<DOMAIN_NAME> # Domain home / Домен
export JAVA_HOME=/u01/oracle/java/jdk # Java home / Путь к Java
Set Domain Environment
Run this before any commands. / Запустите это перед любыми командами.
source /u01/oracle/user_projects/domains/<DOMAIN_NAME>/bin/setDomainEnv.sh
Server Lifecycle
Node Manager
Before starting servers, ensure Node Manager is running. / Убедитесь, что Node Manager запущен.
# Start Node Manager
nohup $WL_HOME/server/bin/startNodeManager.sh > nm.log 2>&1 &
Start/Stop Scripts
# Start Admin Server
$DOMAIN_HOME/bin/startWebLogic.sh
# Stop Admin Server
$DOMAIN_HOME/bin/stopWebLogic.sh
# Start Managed Server
$DOMAIN_HOME/bin/startManagedWebLogic.sh <SERVER_NAME> <ADMIN_URL>
# Stop Managed Server
$DOMAIN_HOME/bin/stopManagedWebLogic.sh <SERVER_NAME> <ADMIN_URL>
[!WARNING] Always stop Managed Servers before the Admin Server. Stopping the Admin Server first may leave Managed Servers in an inconsistent state. Всегда останавливайте Managed Server'ы перед Admin Server'ом.
Check Running Status
ps aux | grep weblogic # Check process / Проверить процесс
curl http://localhost:7001/console # Test Admin Console / Тест консоли
netstat -tlnp | grep :7001 # Check port / Проверить порт
WLST (WebLogic Scripting Tool)
Interactive Mode
java weblogic.WLST
Common Commands
# Connect
connect('<USER>', '<PASSWORD>', 't3://<ADM_HOST>:<PORT>')
# Server Status
state('<SERVER_NAME>')
# Start/Stop Server
start('<SERVER_NAME>')
shutdown('<SERVER_NAME>')
# Deploy App
deploy('<APP_NAME>', '/path/to/app.war', targets='<CLUSTER_NAME>')
# Undeploy App
undeploy('<APP_NAME>')
# List servers
cd('Servers')
ls()
# List deployments
cd('AppDeployments')
ls()
# Read server state
domainRuntime()
cd('ServerLifeCycleRuntimes')
ls()
Scripted WLST (Non-interactive)
# Run a WLST script
java weblogic.WLST /path/to/script.py
# One-liner status check
java weblogic.WLST -e "connect('<USER>','<PASSWORD>','t3://<HOST>:<PORT>'); state('<SERVER_NAME>')"
Security
Users & Roles
# Access Admin Console
# URL: http://<HOST>:7001/console
# Default security realm: myrealm
# Navigate: Security Realms → myrealm → Users and Groups
# Create boot.properties for auto-login
mkdir -p $DOMAIN_HOME/servers/<SERVER_NAME>/security
cat > $DOMAIN_HOME/servers/<SERVER_NAME>/security/boot.properties << EOF
username=<USER>
password=<PASSWORD>
EOF
chmod 600 $DOMAIN_HOME/servers/<SERVER_NAME>/security/boot.properties
[!CAUTION]
boot.propertiesstores credentials in plain text initially. WebLogic encrypts them on first boot. Ensure proper file permissions.boot.propertiesхранит учётные данные в открытом виде до первого запуска. Убедитесь в правильных правах доступа.
SSL/TLS Configuration
# Create keystore
keytool -genkey -alias wls -keyalg RSA -keysize 2048 \
-keystore $DOMAIN_HOME/identity.jks -storepass <PASSWORD>
# Import certificate
keytool -import -alias wls -file certificate.crt \
-keystore $DOMAIN_HOME/identity.jks -storepass <PASSWORD>
# List certificates
keytool -list -keystore $DOMAIN_HOME/identity.jks -storepass <PASSWORD>
Maintenance & Monitoring
Log Files
| Log / Лог | Path / Путь |
|---|---|
| Admin Server log / Лог Admin Server | $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log |
| Managed Server log / Лог Managed Server | $DOMAIN_HOME/servers/<SERVER_NAME>/logs/<SERVER_NAME>.log |
| Access log / Лог доступа | $DOMAIN_HOME/servers/<SERVER_NAME>/logs/access.log |
| Domain log / Лог домена | $DOMAIN_HOME/servers/AdminServer/logs/<DOMAIN_NAME>.log |
| GC log / Лог GC | $DOMAIN_HOME/servers/<SERVER_NAME>/logs/gc.log |
# View live logs
tail -f $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
# Filter for errors
grep -i "ERROR\|BEA-" $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
JVM Tuning
Set in setDomainEnv.sh or USER_MEM_ARGS.
export USER_MEM_ARGS="-Xms2g -Xmx2g" # Heap size / Размер кучи
export USER_MEM_ARGS="$USER_MEM_ARGS -XX:+UseG1GC" # G1 garbage collector / Сборщик мусора
export USER_MEM_ARGS="$USER_MEM_ARGS -XX:MaxGCPauseMillis=200"
export USER_MEM_ARGS="$USER_MEM_ARGS -XX:+HeapDumpOnOutOfMemoryError"
export USER_MEM_ARGS="$USER_MEM_ARGS -XX:HeapDumpPath=$DOMAIN_HOME/servers/<SERVER_NAME>/logs/"
Troubleshooting & Tools
Common Issues
# Port already in use
sudo netstat -tlnp | grep :7001 # Check port / Проверить порт
sudo lsof -i :7001 # Alternative / Альтернатива
# Server stuck in STARTING state
# Check for lock files
ls -la $DOMAIN_HOME/servers/<SERVER_NAME>/tmp/
# Remove lock files if needed
# OutOfMemoryError
# Increase heap in USER_MEM_ARGS
# Check for memory leaks in deployed applications
Thread Dump
# Get PID
ps aux | grep weblogic
# Generate thread dump
kill -3 <PID> # Output to server log
jstack <PID> > thread_dump.txt # Save to file / Сохранить в файл
Heap Dump
# Generate heap dump
jmap -dump:format=b,file=/tmp/heap_dump.bin <PID>
# Analyze with Eclipse MAT or VisualVM
#
Debug Logging
# Via WLST — Enable debug logging
connect('<USER>', '<PASSWORD>', 't3://<HOST>:<PORT>')
edit()
startEdit()
cd('Servers/<SERVER_NAME>/Log/<SERVER_NAME>')
set('Severity', 'Debug')
save()
activate()
Logrotate Configuration
/etc/logrotate.d/weblogic
/u01/oracle/user_projects/domains/<DOMAIN>/servers/*/logs/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
copytruncate
}
[!WARNING] Use
copytruncatefor WebLogic logs as the JVM keeps file handles open. Используйтеcopytruncateдля логов WebLogic, так как JVM держит файлы открытыми.
Documentation Links
- Oracle WebLogic Server Documentation
- WebLogic Server 14c Documentation
- WebLogic WLST Command Reference
- WebLogic Server Administration Guide
- WebLogic Security Guide
- WebLogic Performance & Tuning