Overview
In the demanding landscape of enterprise applications, robust and scalable infrastructure is not just a luxury; it's a fundamental requirement. Oracle WebLogic Server 14c stands as a cornerstone in this architecture, particularly for mission-critical applications like Oracle PeopleSoft. As a senior technology writer at TechNews Venture, I’ve witnessed firsthand how a well-architected WebLogic domain can be the difference between operational excellence and persistent headaches. This article delves into the intricate details of setting up a WebLogic 14c clustered domain, encompassing the AdminServer for centralized management, NodeManager for intelligent server lifecycle control, and crucially, JMS bridges for reliable, asynchronous messaging.
WebLogic 14c, officially version 12.2.1.4.0 with extended support, represents a mature and stable platform for deploying complex Java EE applications. For PeopleSoft environments, this typically includes the PeopleSoft Internet Architecture (PIA) and Integration Broker (IB) gateways, which demand high availability, performance, and seamless integration capabilities. A clustered domain addresses these needs by distributing application load across multiple Managed Servers, ensuring that no single point of failure disrupts service and providing horizontal scalability to meet fluctuating demands.
The AdminServer acts as the control plane for the entire WebLogic domain, providing a centralized point for configuration, deployment, and monitoring. While it doesn't typically host application components in a production environment, its availability is paramount for administrative tasks. Complementing the AdminServer are NodeManagers, lightweight processes running on each physical or virtual machine hosting Managed Servers. NodeManagers enable remote start, stop, and monitoring of Managed Servers, crucial for automating restarts after system reboots or managing server health.
Perhaps one of the most vital components for enterprise integration within WebLogic is the Java Message Service (JMS). JMS provides a powerful, reliable mechanism for asynchronous communication between applications. When integrating disparate systems, such as PeopleSoft with an external CRM or ERP system, ensuring message delivery across different JMS providers or even different WebLogic domains becomes critical. This is where JMS bridges come into play. A JMS bridge acts as a conduit, reliably transferring messages from a source JMS destination to a target JMS destination, offering configurable reliability and transactional guarantees. This setup is indispensable for scenarios requiring guaranteed message delivery, even across network boundaries or different messaging infrastructures, which is a common pattern in large-scale PeopleSoft deployments utilizing Integration Broker.
This article will guide you through a detailed, step-by-step implementation, covering everything from initial environment setup to the intricate configuration of JMS bridges, all while adhering to best practices and security considerations relevant to a production-grade PeopleSoft infrastructure.
Prerequisites
Before embarking on the WebLogic 14c clustered domain setup, ensure your environment meets the following prerequisites. Adhering to these guidelines will prevent common installation and configuration issues.
1. Hardware and Operating System
- Operating System: Oracle Linux 8 (or RHEL 8, CentOS 8 equivalent) is highly recommended for Oracle products. Ensure it's a 64-bit OS.
- CPU: Minimum 4 vCPUs per server, 8 vCPUs or more for production Managed Servers.
- RAM: Minimum 8 GB per server for AdminServer/NodeManager hosts, 16 GB or more for Managed Servers.
- Disk Space: At least 50 GB free space for Oracle software (JDK, WebLogic, RCU), plus additional space for domain home, logs, and database files.
2. Software Components
- Java Development Kit (JDK): Oracle JDK 8 (specifically 1.8.0_281 or higher) or Oracle JDK 11 (11.0.10 or higher) is supported. For broad compatibility with PeopleSoft components, JDK 8 is often preferred in existing environments. We will use JDK 8 for this guide.
# Check existing Java version java -version # Example: Install Oracle JDK 8 (assuming RPM is downloaded) sudo yum install -y oracle-java8-installer-8u301-1.x86_64.rpm - Oracle WebLogic Server 14c (12.2.1.4.0): Download the generic installer (
fmw_12.2.1.4.0_wls.jar) from Oracle eDelivery. - Oracle Database: A supported Oracle Database (12c, 18c, 19c) is required for the Repository Creation Utility (RCU) schemas and potentially for JMS persistence.
- Repository Creation Utility (RCU): Included with the Fusion Middleware software distribution, used to create necessary database schemas for WebLogic Server (WLS), JRF, OPSS, MDS, etc.
3. Network Configuration
- DNS Resolution: Ensure all servers involved can resolve each other's hostnames. Edit
/etc/hostsif DNS is not configured.# Example /etc/hosts entries for two servers 192.168.1.101 weblogic-admin.example.com weblogic-admin 192.168.1.102 weblogic-ms1.example.com weblogic-ms1 192.168.1.103 weblogic-ms2.example.com weblogic-ms2 - Firewall Rules: Open necessary ports:
- AdminServer HTTP: 7001
- AdminServer HTTPS: 7002 (if SSL enabled)
- Managed Servers HTTP: 8001, 8002 (or custom ports)
- Managed Servers HTTPS: 8003, 8004 (if SSL enabled)
- NodeManager: 5556
- Database Listener: 1521
# Example: Open port 7001 on Oracle Linux 8 sudo firewall-cmd --zone=public --add-port=7001/tcp --permanent sudo firewall-cmd --reload
4. User Accounts and Directories
- Oracle User: A dedicated OS user (e.g.,
oracle) to own the Oracle software installations. - WebLogic Admin User: A strong password for the WebLogic domain administrator (e.g.,
weblogic). - Installation Directories: Define consistent paths for Oracle Home, Middleware Home, and Domain Home.
export JAVA_HOME=/usr/java/jdk1.8.0_301 export MW_HOME=/u01/app/oracle/middleware/Oracle_Home export WLS_HOME=$MW_HOME/wlserver export DOMAIN_BASE=/u01/app/oracle/config/domains export DOMAIN_HOME=$DOMAIN_BASE/peoplesoft_domain
Step-by-step Implementation
1. Environment Setup and WebLogic Software Installation
First, ensure your JDK is installed and configured correctly. Then proceed with the WebLogic 14c software installation.
# Set JAVA_HOME and PATH
export JAVA_HOME=/usr/java/jdk1.8.0_301
export PATH=$JAVA_HOME/bin:$PATH
# Create installation directories
sudo mkdir -p /u01/app/oracle/middleware/Oracle_Home
sudo chown -R oracle:oinstall /u01/app/oracle
# Run the WebLogic 14c installer (generic .jar)
cd /path/to/downloaded/installers
$JAVA_HOME/bin/java -jar fmw_12.2.1.4.0_wls.jar
# Follow the graphical installer prompts:
# 1. Installation Location: /u01/app/oracle/middleware/Oracle_Home
# 2. Installation Type: WebLogic Server
# 3. Prerequisite Checks: Ensure success
# 4. Security Updates: Opt-in or out
# 5. Installation Summary: Review and click Install
# 6. Installation Progress: Wait for completion
# 7. Installation Complete: Uncheck "Automatically Launch the Configuration Wizard"
2. Database Setup for RCU
You need a dedicated tablespace and user for the RCU schemas. Connect to your Oracle database as a DBA user (e.g., SYS).
sqlplus sys/SysPassword1!@ORCL AS SYSDBA
CREATE TABLESPACE PS_WLS_TS DATAFILE '/u01/app/oracle/oradata/ORCL/ps_wls_ts01.dbf' SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
CREATE USER PS_WLS IDENTIFIED BY "WlsPassword1!" DEFAULT TABLESPACE PS_WLS_TS QUOTA UNLIMITED ON PS_WLS_TS;
GRANT CONNECT, RESOURCE, CREATE VIEW, CREATE SEQUENCE, CREATE SYNONYM, ALTER SESSION TO PS_WLS;
GRANT UNLIMITED TABLESPACE TO PS_WLS;
exit;
3. Run Repository Creation Utility (RCU)
RCU creates the necessary schemas in the database for WebLogic Server to function. We'll create schemas for WLS, JRF, OPSS, and MDS.
# Navigate to RCU home
cd $MW_HOME/oracle_common/bin
# Launch RCU in graphical mode
./rcu.sh
# Follow the RCU Wizard prompts:
# 1. Welcome: Next
# 2. Create Repository: Select "Create Repository" -> "System Load and Product Load"
# 3. Database Connection Details:
# Database Type: Oracle Database
# Host Name: your_db_host
# Port: 1521
# Service Name: ORCL
# User Name: SYS
# Password: SysPassword1!
# Role: SYSDBA
# Next (Prerequisite checks will run)
# 4. Select Components:
# Prefix: PS_WLS
# Select: Oracle WebLogic Services (WLS), Oracle JRF (JRF), Oracle Platform Security Services (OPSS), Metadata Services (MDS)
# Next (Prerequisite checks will run)
# 5. Schema Passwords:
# Use "Use same passwords for all schemas" or set individual passwords.
# Set password: WlsSchemaPassword1!
# 6. Map Tablespaces:
# Ensure all schemas are mapped to PS_WLS_TS.
# Next -> Finish
# 7. Create: Click "Create" to start schema creation.
# 8. Completion Summary: Review and Close.
4. Domain Creation (AdminServer)
Now, create the WebLogic domain using the Configuration Wizard.
# Navigate to WebLogic common/bin
cd $MW_HOME/oracle_common/common/bin
# Launch Configuration Wizard
./config.sh
# Follow the Configuration Wizard prompts:
# 1. Configuration Type: Create a new domain
# 2. Domain Template: Select "Fusion Middleware Extension Templates" -> "Basic WebLogic Server Domain" and "Oracle JRF"
# (The JRF template ensures necessary libraries for PeopleSoft Integration Broker and other FMW components are available).
# 3. Domain Location: /u01/app/oracle/config/domains/peoplesoft_domain
# 4. Administrator Account:
# User Name: weblogic
# Password: WeblogicAdminPassword1!
# Confirm Password: WeblogicAdminPassword1!
# 5. Domain Mode and JDK:
# Domain Mode: Production
# JDK: Select the Oracle HotSpot JDK (e.g., $JAVA_HOME)
# 6. Database Configuration Type: RCU Data
# RCU Configuration:
# DB Type: Oracle
# Driver: Oracle's Driver (Thin) for Service connections (or SID)
# Service Name: ORCL
# Host Name: your_db_host
# Port: 1521
# Schema Owner: PS_WLS
# Schema Password: WlsSchemaPassword1!
# Next (RCU configuration will be validated)
# 7. Advanced Configuration: Select "Admin Server", "Node Manager", "Managed Servers, Clusters and Coherence", "Machines".
# 8. Admin Server:
# Name: AdminServer
# Listen Address: weblogic-admin.example.com (or IP)
# Listen Port: 7001
# SSL Listen Port: 7002 (optional, but recommended for production)
# 9. Node Manager:
# Node Manager Type: Per Domain NodeManager
# Node Manager User Name: weblogic
# Node Manager Password: WeblogicAdminPassword1! (Same as Admin user, or a dedicated one)
# 10. Managed Servers:
# Add two Managed Servers:
# Server Name: PSPIA1
# Listen Address: weblogic-ms1.example.com
# Listen Port: 8001
# SSL Listen Port: 8003
# Server Name: PSPIA2
# Listen Address: weblogic-ms2.example.com
# Listen Port: 8002
# SSL Listen Port: 8004
# 11. Clusters:
# Add a new cluster:
# Cluster Name: PeopleSoft_Cluster
# Messaging Mode: Unicast
# 12. Assign Servers to Clusters:
# Assign PSPIA1 and PSPIA2 to PeopleSoft_Cluster.
# 13. Machines:
# Add two Unix Machines:
# Machine Name: Machine1
# Node Manager Listen Address: weblogic-admin.example.com (or IP of NodeManager host for PSPIA1)
# Node Manager Listen Port: 5556
# Machine Name: Machine2
# Node Manager Listen Address: weblogic-ms2.example.com (or IP of NodeManager host for PSPIA2)
# Node Manager Listen Port: 5556
# 14. Assign Servers to Machines:
# Assign AdminServer and PSPIA1 to Machine1.
# Assign PSPIA2 to Machine2. (Adjust based on your physical host distribution)
# 15. Configuration Summary: Review and click "Create".
# 16. Configuration Progress: Wait for domain creation.
# 17. Configuration Success: Note the Admin Server URL. Click "Finish".
5. Start NodeManagers and AdminServer
Start NodeManager on each host where Managed Servers are configured. Then start the AdminServer.
# On weblogic-admin.example.com (or host of Machine1)
cd /u01/app/oracle/config/domains/peoplesoft_domain/bin
nohup ./startNodeManager.sh > nodemanager.log 2>&1 &
# On weblogic-ms2.example.com (or host of Machine2)
cd /u01/app/oracle/config/domains/peoplesoft_domain/bin
nohup ./startNodeManager.sh > nodemanager.log 2>&1 &
# Start AdminServer (on weblogic-admin.example.com)
cd /u01/app/oracle/config/domains/peoplesoft_domain/bin
nohup ./startWebLogic.sh > AdminServer.out 2>&1 &
Verify AdminServer is running by accessing the console: http://weblogic-admin.example.com:7001/console. Log in with weblogic and WeblogicAdminPassword1!.
6. Configure JMS Resources (via Admin Console)
We'll set up two JMS Servers, each with its own JDBC Store and a Queue, to demonstrate a JMS bridge.
6.1. Create DataSources for JMS Persistence
Each JMS Server needs a JDBC store for message persistence. This store requires a DataSource.
sqlplus sys/SysPassword1!@ORCL AS SYSDBA
CREATE TABLESPACE WEBLOGIC_JMS_TS DATAFILE '/u01/app/oracle/oradata/ORCL/weblogic_jms_ts01.dbf' SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
CREATE USER WEBLOGIC_JMS IDENTIFIED BY "JmsPassword1!" DEFAULT TABLESPACE WEBLOGIC_JMS_TS QUOTA UNLIMITED ON WEBLOGIC_JMS_TS;
GRANT CONNECT, RESOURCE TO WEBLOGIC_JMS;
exit;
- In Admin Console, go to Services -> Data Sources.
- Click New -> Generic Data Source.
- Name:
JMSDS_1 - JNDI Name:
jdbc/JMSDS_1 - Database Type: Oracle
- Driver: Oracle's Driver (Thin) for Service connections, Versions: 9.0.1 and later
- Database Name:
ORCL - Host Name:
your_db_host - Port:
1521 - Database User Name:
WEBLOGIC_JMS - Password:
JmsPassword1! - Target:
PSPIA1(and optionallyPeopleSoft_Clusterfor high availability if you configure multiple JMS Servers to failover)
- Name:
- Repeat for
JMSDS_2, targetingPSPIA2.
6.2. Create JMS JDBC Stores
- In Admin Console, go to Services -> Persistent Stores.
- Click New -> JDBC Store.
- Name:
JMS_JDBC_Store_1 - Target:
PSPIA1 - Data Source:
JMSDS_1 - Prefix Name:
JMS1_
- Name:
- Repeat for
JMS_JDBC_Store_2, targetingPSPIA2and usingJMSDS_2with prefixJMS2_.
6.3. Create JMS Servers
- In Admin Console, go to Services -> JMS Servers.
- Click New.
- Name:
JMS_Server_1 - Persistent Store:
JMS_JDBC_Store_1 - Target:
PSPIA1
- Name:
- Repeat for
JMS_Server_2, usingJMS_JDBC_Store_2and targetingPSPIA2.
6.4. Create JMS System Modules and Queues
- In Admin Console, go to Services -> JMS Modules.
- Click New.
- Name:
PeopleSoft_JMS_Module - Target:
PeopleSoft_Cluster
- Name:
- Click on
PeopleSoft_JMS_Module. - Click New -> Subdeployment.
- Name:
Subdeployment_1 - Target:
JMS_Server_1
- Name:
- Click New -> Subdeployment.
- Name:
Subdeployment_2 - Target:
JMS_Server_2
- Name:
- Click New -> Queue.
- Name:
QueueA - JNDI Name:
jms/QueueA - Template:
<None> - Subdeployment:
Subdeployment_1
- Name:
- Click New -> Queue.
- Name:
QueueC - JNDI Name:
jms/QueueC - Template:
<None> - Subdeployment:
Subdeployment_2
- Name:
At this point, you have two distinct queues, QueueA and QueueC, residing on different JMS Servers (and thus different Managed Servers). Our goal is to bridge messages from QueueA to QueueC.
7. Configure JMS Bridges (via Admin Console)
The JMS bridge will reliably transfer messages between QueueA and QueueC.
- In Admin Console, go to Services -> JMS Bridges.
- Click New.
- Name:
Bridge_A_to_C
- Name:
- Next, configure the Source Destination:
- Adapter JNDI Name:
weblogic.jms.XAConnectionFactory(This is a global connection factory, suitable for transactional bridges) - Destination JNDI Name:
jms/QueueA - Destination Type:
Queue
- Adapter JNDI Name:
- Next, configure the Target Destination:
- Adapter JNDI Name:
weblogic.jms.XAConnectionFactory - Destination JNDI Name:
jms/QueueC - Destination Type:
Queue
- Adapter JNDI Name:
- Next, configure Quality of Service and other parameters:
- Quality of Service:
Exactly-once(recommended for critical integrations) - Batch Size:
1(for immediate processing) or higher for throughput - Batch Interval:
0(for immediate processing) - Retry Interval:
5seconds (default) - Durability:
Persistent
- Quality of Service:
- Next, configure Target: Select
PeopleSoft_Cluster. Targeting the bridge to the cluster ensures high availability