Admin

Oracle Peoplesoft

Configure WebLogic 14c Clustered Domain: AdminServer, NodeManager, JMS Bridges

Deploy WebLogic 14c clustered domains. Configure AdminServer, NodeManager, and JMS bridges for HA and robust messaging.

By Someshwar ThakurPublished: July 26, 202612 min read13 views✓ Fact Checked
Configure WebLogic 14c Clustered Domain: AdminServer, NodeManager, JMS Bridges
Configure WebLogic 14c Clustered Domain: AdminServer, NodeManager, JMS Bridges

Overview

In the dynamic landscape of enterprise applications, high availability, scalability, and robust messaging are not mere luxuries but absolute necessities. Oracle WebLogic Server 14c, a cornerstone of Oracle's Fusion Middleware suite, stands as a testament to these requirements, providing a world-class platform for deploying and managing complex applications. For organizations leveraging critical systems like Oracle PeopleSoft, a properly configured WebLogic 14c clustered domain is the backbone of their operational efficiency and business continuity.

This article delves into the intricacies of setting up a WebLogic 14c clustered domain, focusing on its core components: the AdminServer, Managed Servers organized into a cluster, NodeManager for intelligent server lifecycle management, and the indispensable JMS bridges for reliable inter-application messaging. A clustered environment ensures that applications deployed to it can distribute load across multiple server instances, providing fault tolerance and improved performance. The AdminServer acts as the central control plane, while NodeManager provides machine-level process management for Managed Servers, enabling automatic restarts and remote control. Furthermore, JMS bridges facilitate seamless and guaranteed message delivery between disparate JMS destinations, a critical feature for integrating enterprise systems and ensuring transactional integrity, especially within a PeopleSoft ecosystem that heavily relies on asynchronous messaging via its Integration Broker.

By the end of this comprehensive guide, you will have a clear understanding of the architecture, the step-by-step implementation process, critical security considerations, and best practices for deploying a resilient and high-performing WebLogic 14c clustered domain, ready to support demanding enterprise applications.

Prerequisites

Before embarking on the WebLogic 14c clustered domain setup, ensure your environment meets the following prerequisites:

  • Operating System: A supported 64-bit operating system. Examples include Oracle Linux 8, Red Hat Enterprise Linux 8, or Windows Server 2019/2022. For this guide, we assume a Linux environment.
  • Hardware Resources:
    • At least 4 vCPUs per server instance (AdminServer, Managed Server, NodeManager host).
    • Minimum 8 GB RAM per server instance host. For production, 16 GB+ is recommended.
    • Sufficient disk space: 20 GB for Oracle Home, 10 GB per domain home, plus additional for logs and application data. Shared storage (NFS, ACFS, or SAN) is highly recommended for domain configuration and transaction logs in a clustered setup for failover and ease of management.
  • Java Development Kit (JDK): Oracle JDK 11 (LTS) is the recommended and supported version for WebLogic Server 12.2.1.4 (which is often referred to as 14c in broader Oracle contexts).
    java -version
    openjdk version "11.0.18" 2023-01-17 LTS
    OpenJDK Runtime Environment Corretto-11.0.18.10.1 (build 11.0.18+10-LTS)
    OpenJDK 64-Bit Server VM Corretto-11.0.18.10.1 (build 11.0.18+10-LTS, mixed mode)
  • Oracle WebLogic Server 12.2.1.4 Binaries: Download the Generic Installer (e.g., fmw_12.2.1.4.0_wls.jar) from the Oracle Technology Network (OTN) or Oracle Support.
  • Oracle Database: A supported Oracle Database version (e.g., 19c) to host the Repository Creation Utility (RCU) schemas. Ensure you have database connectivity details (hostname, port, service name/SID, SYSDBA credentials).
  • Repository Creation Utility (RCU): Included with the Fusion Middleware infrastructure installer. If installing WLS standalone, download the RCU binaries separately.
  • Network Configuration:
    • Static IP addresses for all server hosts.
    • Proper DNS resolution for all hostnames.
    • Firewall rules allowing communication on necessary ports:
      • AdminServer: 7001 (default)
      • Managed Servers: 8001, 8002, etc. (default)
      • NodeManager: 5556 (default)
      • T3/IIOP protocol ports for inter-server communication.
      • Database listener port (e.g., 1521).
  • Operating System Users and Groups: A dedicated non-root user (e.g., oracle) and group (e.g., oinstall) to install and run WebLogic Server components.
  • Shared Storage: For production clusters, a shared file system (NFS, Oracle ACFS, or a SAN-backed file system) is crucial for the domain configuration, data sources, JMS persistent stores, and transaction logs. This enables seamless failover and consistent configuration across cluster members.

Step-by-Step Implementation

1. Environment Setup

First, ensure the JDK is installed and the JAVA_HOME environment variable is set correctly. Then, install the WebLogic Server binaries.

# As root or sudo
mkdir -p /u01/app/oracle/product/jdk
# Copy your JDK (e.g., OpenJDK 11) to this location
tar -xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.18_10.tar.gz -C /u01/app/oracle/product/jdk/

# Create Oracle user and group if they don't exist
groupadd oinstall
useradd -g oinstall -m -d /home/oracle oracle
passwd oracle # Set password

# Switch to oracle user
su - oracle

# Set JAVA_HOME and PATH in .bashrc or .profile
echo "export JAVA_HOME=/u01/app/oracle/product/jdk/jdk-11.0.18+10" >> ~/.bashrc
echo "export PATH=$JAVA_HOME/bin:$PATH" >> ~/.bashrc
source ~/.bashrc

# Create Oracle Home directory
mkdir -p /u01/app/oracle/product/fmw12c
export ORACLE_HOME=/u01/app/oracle/product/fmw12c
export WL_HOME=$ORACLE_HOME/wlserver
export PATH=$WL_HOME/server/bin:$PATH

# Install WebLogic Server binaries
java -jar /path/to/fmw_12.2.1.4.0_wls.jar -silent -responseFile /path/to/wls_install.rsp -invPtrLoc /path/to/oraInst.loc

# Example wls_install.rsp content:
# [ENGINE]
# #DO NOT CHANGE THIS.
# Response File Version=1.0.0.0.0
# [GENERIC]
# ORACLE_HOME=/u01/app/oracle/product/fmw12c
# INSTALL_TYPE=WebLogic Server
# DECLINE_SECURITY_UPDATES=TRUE
# MYORACLESUPPORT_USERNAME=
# MYORACLESUPPORT_PASSWORD=
# SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
#

2. Repository Creation Utility (RCU)

The RCU creates the necessary database schemas for WebLogic Server services like JRF (Java Required Files), OPSS (Oracle Platform Security Services), and the WebLogic services itself. These schemas are essential for a robust, enterprise-grade domain.

# Navigate to RCU home
cd $ORACLE_HOME/oracle_common/bin

# Start RCU in GUI mode (recommended for first-time setup)
./rcu

# Follow the RCU Wizard:
# 1. Welcome -> Next
# 2. Create Repository -> System Load and Product Load -> Next
# 3. Database Connection Details:
#    Database Type: Oracle Database
#    Host Name: your_db_host.example.com
#    Port: 1521
#    Service Name: ORCLPDB1 (or your SID)
#    Username: SYS
#    Password: your_sys_password
#    -> Next (check prerequisites)
# 4. Select Components:
#    Select "Oracle Platform Security Services" (automatically selects JRF)
#    Select "WebLogic Services"
#    Prefix: DEV1 (e.g., DEV1_WLS, DEV1_OPSS)
#    -> Next (check prerequisites)
# 5. Schema Passwords:
#    Choose "Use same passwords for all schemas" and provide a strong password.
#    -> Next
# 6. Map Tablespaces:
#    Accept defaults or customize if needed.
#    -> Next
# 7. Summary -> Create -> OK

3. Domain Creation

We'll create a JRF-enabled domain using the Configuration Wizard, which provides a graphical interface. For automation, WLST scripts are preferred.

# Navigate to WebLogic Common Home
cd $ORACLE_HOME/oracle_common/common/bin

# Start the Configuration Wizard
./config.sh

# Follow the Configuration Wizard steps:
# 1. Configuration Type: Create a new domain
# 2. Template: Select "JRF - Oracle JRF" (and any other desired templates like "Oracle Enterprise Manager Plugin for WebLogic Server" for monitoring).
# 3. Application Location: Accept default or specify.
# 4. Domain Name and Location:
#    Domain Name: base_domain
#    Domain Location: /u01/app/oracle/config/domains/base_domain (on shared storage if applicable)
# 5. Administrator Username and Password: weblogic / your_admin_password
# 6. Domain Mode and JDK:
#    Domain Mode: Production
#    JDK: Select the installed Oracle JDK 11 (e.g., /u01/app/oracle/product/jdk/jdk-11.0.18+10)
# 7. Database Configuration Type: RCU Data
# 8. RCU Configuration:
#    Database Type: Oracle
#    Driver: Oracle's Driver (Thin) for Service connections
#    Connect String: your_db_host.example.com:1521/ORCLPDB1
#    Schema Owner: DEV1_STB (or your RCU prefix_STB)
#    Schema Password: your_rcu_password
#    -> Get RCU Configuration (should succeed)
# 9. Advanced Configuration: Select "Admin Server", "Node Manager", "Managed Servers, Clusters and Coherence", "Deployments and Services", "JMS System Resources".
# 10. Admin Server:
#     Name: AdminServer
#     Listen Address: your_admin_server_hostname.example.com
#     Listen Port: 7001
#     SSL Listen Port: 7002
# 11. Node Manager:
#     Node Manager Type: Per Domain Host
#     Node Manager Credentials: weblogic_nm / your_nm_password
#     Listen Address: your_admin_server_hostname.example.com
#     Listen Port: 5556
# 12. Managed Servers:
#     Add two Managed Servers for the cluster:
#     Server Name: WLS_MS1
#     Listen Address: your_managed_server_1_hostname.example.com
#     Listen Port: 8001
#     Server Name: WLS_MS2
#     Listen Address: your_managed_server_2_hostname.example.com
#     Listen Port: 8002
# 13. Clusters:
#     Add a new cluster:
#     Cluster Name: WLS_CLUSTER
#     Cluster Messaging Mode: Unicast
# 14. Assign Servers to Clusters:
#     Assign WLS_MS1 and WLS_MS2 to WLS_CLUSTER.
# 15. Machines:
#     Add new machines for each physical host:
#     Machine Name: MachineA (for AdminServer and WLS_MS1)
#     Machine Name: MachineB (for WLS_MS2)
# 16. Assign Servers to Machines:
#     AdminServer -> MachineA
#     WLS_MS1 -> MachineA
#     WLS_MS2 -> MachineB
# 17. Virtual Targets: Skip
# 18. Coherence Clusters: Skip
# 19. Deployments and Services: Review defaults.
# 20. JMS System Resources: You can create a basic JMS module here, or later. Let's create one later.
# 21. Configuration Summary -> Create -> Finish.

# After creation, set the DOMAIN_HOME variable
export DOMAIN_HOME=/u01/app/oracle/config/domains/base_domain

Note on WLST for Domain Creation: For production environments and repeatable deployments, using WebLogic Scripting Tool (WLST) is highly recommended. A typical WLST script for domain creation would involve connecting to a template, creating the domain, adding servers, clusters, machines, and then configuring services. This provides version control and automation capabilities.

# Example WLST script (create_domain.py) - simplified
readTemplate("path/to/oracle_common/common/templates/wls/wls.jar")
cd('/Security/base_domain/User/weblogic')
set('Password', 'your_admin_password')

cd('/Server/AdminServer')
set('ListenAddress', 'your_admin_server_hostname.example.com')
set('ListenPort', 7001)

create('WLS_CLUSTER','Cluster')
cd('/Cluster/WLS_CLUSTER')
set('ClusterMessagingMode', 'unicast')

create('WLS_MS1','Server')
cd('/Server/WLS_MS1')
set('ListenAddress', 'your_managed_server_1_hostname.example.com')
set('ListenPort', 8001)
assign('Server','WLS_MS1','Cluster','WLS_CLUSTER')

create('WLS_MS2','Server')
cd('/Server/WLS_MS2')
set('ListenAddress', 'your_managed_server_2_hostname.example.com')
set('ListenPort', 8002)
assign('Server','WLS_MS2','Cluster','WLS_CLUSTER')

create('MachineA', 'UnixMachine')
cd('/Machine/MachineA')
create('NodeManager','NodeManager')
cd('/Machine/MachineA/NodeManager/NodeManager')
set('ListenAddress', 'your_admin_server_hostname.example.com')
set('ListenPort', 5556)
assign('Server','AdminServer','Machine','MachineA')
assign('Server','WLS_MS1','Machine','MachineA')

create('MachineB', 'UnixMachine')
cd('/Machine/MachineB')
create('NodeManager','NodeManager')
cd('/Machine/MachineB/NodeManager/NodeManager')
set('ListenAddress', 'your_managed_server_2_hostname.example.com') # NodeManager for MS2
set('ListenPort', 5556)
assign('Server','WLS_MS2','Machine','MachineB')

setOption('JDBC_BUILD_VERSION','12.2.1.4')
setOption('RCU_SCHEMA_PREFIX', 'DEV1')
setOption('RCU_DB_URL', 'your_db_host.example.com:1521/ORCLPDB1')
setOption('RCU_DB_USER', 'DEV1_STB')
setOption('RCU_DB_PASSWORD', 'your_rcu_password')

writeDomain('/u01/app/oracle/config/domains/base_domain')
closeTemplate()
exit()

# Execute the script
$WL_HOME/common/bin/wlst.sh create_domain.py

4. NodeManager Configuration and Startup

NodeManager is a key component for managing server processes, especially for remote servers. It enables starting, stopping, and restarting Managed Servers from the Admin Console or via WLST.

# On each machine where Managed Servers will run (including the AdminServer machine)
cd $DOMAIN_HOME/nodemanager

# Edit nodemanager.properties
# nano nodemanager.properties
# Ensure the following are set:
# ListenAddress=your_hostname.example.com
# ListenPort=5556
# LogLevel=INFO
# SecureListener=true (highly recommended for production)
# StartScriptEnabled=true

# Create the boot.properties file for NodeManager to connect to AdminServer
mkdir -p $DOMAIN_HOME/servers/AdminServer/data/nodemanager
cd $DOMAIN_HOME/servers/AdminServer/data/nodemanager
# nano boot.properties
# username=weblogic
# password=your_admin_password
# Save and secure this file with appropriate permissions (e.g., 600)

# Start NodeManager (on each machine)
cd $DOMAIN_HOME/bin
./startNodeManager.sh &

5. Starting the Domain Components

First, start the AdminServer. Once it's up, you can start the Managed Servers via the Admin Console or WLST, leveraging NodeManager.

# Start AdminServer (on MachineA)
cd $DOMAIN_HOME/bin
./startWebLogic.sh &

# Wait for AdminServer to be fully started. Check logs:
# tail -f $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log

# Once AdminServer is running, log in to the WebLogic Admin Console:
# http://your_admin_server_hostname.example.com:7001/console

# From the Admin Console:
# 1. Navigate to Environment -> Servers
# 2. Select WLS_MS1 and WLS_MS2
# 3. Click "Start" under Control -> Start/Stop
# 4. Select "Yes" to start the servers using NodeManager.

# Alternatively, using WLST:
$WL_HOME/common/bin/wlst.sh
connect('weblogic','your_admin_password','t3://your_admin_server_hostname.example.com:7001')
nmConnect('weblogic_nm','your_nm_password','your_admin_server_hostname.example.com','5556','base_domain','/u01/app/oracle/config/domains/base_domain','MachineA')
nmStart('WLS_MS1')
nmConnect('weblogic_nm','your_nm_password','your_managed_server_2_hostname.example.com','5556','base_domain','/u01/app/oracle/config/domains/base_domain','MachineB') # Connect to NodeManager on MachineB
nmStart('WLS_MS2')
disconnect()
exit()

6. Configuring JMS Bridges

JMS bridges are essential for reliable, asynchronous communication between different JMS destinations, potentially across different WebLogic domains or even different JMS providers. This is particularly valuable in PeopleSoft environments where Integration Broker often needs to send messages to external systems or across different PeopleSoft domains.

# Assuming you're connected to the Admin Console or using WLST.
# For simplicity, we'll outline Admin Console steps; WLST is similar.

# ----- Scenario: Bridging JMS between two WebLogic Domains or within a complex domain -----
# Let's assume we want to bridge messages from a Queue in WLS_CLUSTER to another Queue in an external domain (or just a separate JMS Module).

# Step 1: Create a JMS Module and Resources in the Source Domain (our 'base_domain')
# 1. Navigate to Services -> Messaging -> JMS Modules
# 2. Click "New"
# 3. Name: MyJMSModule
# 4. Target: WLS_CLUSTER (target the cluster for high availability)
# 5. Click "Next", "Finish"

# 6. Click on MyJMSModule
# 7. Create a Subdeployment (for targeting resources within the module)
#    Name: MySubdeployment
#    Target: WLS_CLUSTER
# 8. Create a Connection Factory:
#    Click "New" -> Connection Factory
#    Name: MyConnectionFactory
#    JNDI Name: jms/MyConnectionFactory
#    Target: MySubdeployment
# 9. Create a Queue:
#    Click "New" -> Queue
#    Name: MySourceQueue
#    JNDI Name: jms/MySourceQueue
#    Target: MySubdeployment
#    Set persistence (e.g., File Store or JDBC Store) for guaranteed delivery.

# Step 2: Create a JMS Module and Resources in the Target Domain (or another part of the same domain)
#    Repeat similar steps for the target domain/module if it's external, or create another module/queue if internal.
#    For this example, let's assume an internal target queue within the same domain, but a different JNDI name.
#    Queue Name: MyTargetQueue
#    JNDI Name: jms/MyTargetQueue

# Step 3: Configure the JMS Bridge
# 1. Navigate to Services -> Messaging -> JMS Bridges
# 2. Click "New"
# 3. Name: MyJMSBridge
# 4. Source Destination:
#    Connection Factory JNDI Name: jms/MyConnectionFactory
#    Destination JNDI Name: jms/MySourceQueue
#    Connection URL: t3://your_admin_server_hostname.example.com:7001 (or the cluster address if configured)
#    User/Password: if required for connecting to the source domain.
# 5. Target Destination:
#    Connection Factory JNDI Name: jms/MyConnectionFactory
#    Destination JNDI Name: jms/MyTargetQueue
#    Connection URL: t3://your_admin_server_hostname.example.com:7001 (or the cluster address)
#    User/Password: if required for connecting to the target domain.
# 6. Quality of Service (QoS):
#    Guaranteed Messaging: Exactly-Once (recommended for transactional integrity)
#    Batch Size: 10 (optimize for throughput)
#    Batch Interval: 1000ms
# 7. Transaction Timeout: 60 seconds (adjust as per message processing time)
# 8. Target: Select WLS_CLUSTER (the cluster where the bridge will run for HA)
# 9. Click "Next", "Finish"
# 10. Activate Changes. The JMS Bridge will start.

# WLST example for creating a JMS Bridge (after JMS module and resources are created)
# Connect to AdminServer
connect('weblogic','your_admin_password','t3://your_admin_server_hostname.example.com:7001')

edit()
startEdit()

cd('/')
create('MyJMSBridge','JMSTunnel')
cd('/JMSTunnel/MyJMSBridge')
set('Target', 'WLS_CLUSTER')

create('MyJMSBridgeSource','JMSTunnelSource')
cd('/JMSTunnel/MyJMSBridge/JMSTunnelSource/MyJMSBridgeSource')
set('ConnectionFactoryJNDIName','jms/MyConnectionFactory')
set('DestinationJNDIName','jms/MySourceQueue')
set('ConnectionURL','t3://your_admin_server_hostname.example.com:7001') # Or specific server/cluster address

cd('/JMSTunnel/MyJMSBridge')
create('MyJMSBridgeTarget','JMSTunnelTarget')
cd('/JMSTunnel/MyJMSBridge/JMSTunnelTarget/MyJMSBridgeTarget')
set('ConnectionFactoryJNDIName','jms/MyConnectionFactory')
set('DestinationJNDIName','jms/MyTargetQueue')
set('ConnectionURL','t3://your_admin_server_hostname.example.com:7001') # Or specific server/cluster address

cd('/JMSTunnel/MyJMSBridge')
set('QualityOfService', 'Exactly-Once')
set('BatchSize', 10)
set('BatchInterval', 1000)
set('TransactionTimeout', 60)

save()
activate()
disconnect()
exit()

Security Considerations

Securing your WebLogic 14c clustered domain is paramount, especially when handling sensitive PeopleSoft data and transactions. A multi-layered approach is essential:

  • Authentication and Authorization:
    📧

    Enjoyed this article?

    Get articles like this delivered to your inbox daily. Join 10,000+ tech professionals.

    Written By

    Someshwar Thakur

    PS Admin, Cloud Architect, DBA

    Sources & References

    • Official company announcements and press releases

    • Industry reports from Gartner, IDC, and Statista

    • Peer-reviewed research and technical documentation

    • On-record statements from industry experts

    Last verified: July 26, 2026

    Fact-checked by TechNews Venture editorial team

    Leave a Comment

    Comments are moderated and will appear after review.