Full Weblogic Course PDF
Full Weblogic Course PDF
Weblogic Concepts:
RAC is called Real time Application Cluster -> should be configured as grid link.
One phase commit, one transition of the happening it will keep this data commit, two phase means we need to have two query committing the same then only it
will commit.
Any software requires installation. Installation of a software to your computer so that you can use the software from your HD D frequently.
For any JAVA based application we need a software called JAVA installed first.
Linux has its own directory structure, when you install weblogic/java it would be in this directory structure.
/<Installation Path>/
bin folder -> contains binary files
Config -> where all configuration files would reside
Log -> where all log files would be there
Modules -> where all modules would be present
Lib -> library files
Installation of JAVA
Installation of weblogic
Post Installation
b. Home Path:
JAVA_HOME=/u01/apps/java/
MW_Home = /u01/apps/Oracle/Middlware/
Oracle_Home =/u01/apps/Middlware/Oracle_Home/
WLS_HOME = /u01/apps/Middlware/Oracle_Home/wlserver/
Domain_Home = /u01/apps/<name of the domain>
c. Domain:
What is a domain:
If your creating two websites on prod env or pre prod env or stage env or DR env,
www.google.com
www.facebook.com
We will create one domain only for www.google.com. This will isolate the configuration, logs, executable or bin files, deployed content from
www.facebook.com.
Because both these websites would have their own HOME directory.
Domain is nothing but folder where you store you website's content individually so that you can personalise things you want.
Domain Creation:
We use templates to create domains, while creating a domain you can find the option to select which type of template you need base this domain on.
You can also customize or create your own template by domain template builder tool
d. JVM:
What is a JVM ?
In weblogic:
f. Admin Server:
Once you have created a domain, the first thing you want to do is to start the Admin Server in that domain you have created.
i) Admin server is a JVM process, which gets created by default when you create a domain.
ii) Admin Server is where you can perform any modification to your configuration & control(stop / start) your entire domain.
iii) You cannot access the Admin Server directly but you have tools to do so.
One. Admin Console -> Web Based interface.
Two. WLST (weblogic scripting tool) -> A command line tool to do everything what was said earlier
iv) To access the Admin Console or to connect from WLST to the Admin Server, you need your Admin Server to be up and running
The conclusion is Admin Server is default in every domain, where it is the first thing we start in the domain, and once you start you will have to way of
accessing the admin server using admin console or WLST.
Admin Server
g. Managed Server:
Managed Servers are JVM process which runs under an Admin Server's control or independently when Admin Server is unavailable ( but it will resume
connection once Admin Server is available).
First. The Code which is designed by the developers would be archived Into .war or .ear, we deploy them from the Admin Console or WL ST. When
you do so, it would ask you for a target, target means what is going to process these codes, you would assigning either an Ma naged Server or
a Cluster ( a group of managed servers) to process these codes and display the result on the website.
Second. We can have multiple number of ear or war on one JVM or Managed Server. It can handle any number of request based on the RAM usage &
CPU Usage.
h. Deployments:
This is where your content will be deployed, where you have the option of installing a new ear file or war file or update the existing war or ear or deleting
the war or ear file.
When you deploy you set targets, security, and staging of your content
Failover Feature:
j. Web Server:
JDBC:
Provider:
On further classes
Datasource:
On further classes
Connection Pool:
On further classes
JMS:
On further classes
SSL:
On further classes
RAM:
On further classes
On further classes
Installations:
Agenda:
i. Java - Sun
ii. Weblogic 14c.
1) GUI
2) Silent
To login:
Username: weblogic
Password: weblogic123
Sun JDK Sun java for Weblogic 12c, 14c & Tomcat
IBM JDK IBM Java for Websphere
JRockit JDK Oracle java for weblogic 8x 9x 10x 11x
Open JDK Redhat java for JBOSS
JAVA Installation:
CLI:
Go to the location
cd /opt/software/
rm -rf /u01/apps/java/
System Requirements
Component Requirement
Platform A supported configuration of hardware, operating system, JDK, and database specific to the product you are installing.
configuration For the most up-to-date information about other prerequisites and recommendations, such as recommended versions of the JDK, see the Oracle Fusion Middleware Supported System Configurations page
athttp://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
.
Processor 1-GHz CPU
Hard disk drive A complete installation (including SDKs) requires approximately 3.9 GB of disk space. This includes temporary disk space thatis needed during installation. Depending on the components you choose to install, and the installer that you are using,
less disk space may be needed.
For more information, see Temporary Disk Space Requirements.
Memory A minimum of 1 GB RAM, although Oracle recommends 2 GB of RAM.
Color bit depth For graphical-mode installation, 8-bit color depth (256 colors) is required.
display For console-mode and silent-mode installation, there is no color bit depth requirement.
JDK The installation program requires a Java run-time environment (JRE) to run. A JRE is bundled in the Windows 32-bit and Linux x86 installation programs, as well as in some UNIX installation programs (those with file names ending in.bin).
For other platforms, the installation program does not install a JDK. File names for these installation programs end in.jar. To run the .jar installation programs, you must have the appropriate version of the JDK installed on your system, and include
the bin directory of the JDK at the beginning of the PATH variable definition.
Note: It is important that you use a JDK because the installation process assigns values toJAVA_HOME and related variables to point to the JDK directory. All scripts installed by the installation program use this JDK by default, including scripts to
start sample applications, the Configuration Wizard, and other development tools.
Pre Installation:
Ram: at least 1GB if installation of Weblogic on Unix O/S, If your using a virtual machine over an O/S make sure 2 GB (1.2 GB for O/S, .5
GB for your VM and .2 GB for emergency).
GPU: No Needed
Software:
Win: .exe, .zip, .msi
Unix: .rpm (Redhat package manager), .bin, .tar.gz, .tar.bz, .sh, .dpg
Java: .jar
# /etc/bashrc
set PATH=/u01/apps/java/bin/:$PATH
export PATH=/u01/apps/java/bin/:$PATH
JAVA_HOME=/u01/apps/java/
# are we an interactive shell?
if [ "$PS1" ]; then
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/e
If you have multiple version of java ( but java needs to be running at that point of time when you executing the below command ):
GUI Mode:
Graphical User Mode needs X windows or VNC server running on your Linux machine or you have to install some Xserver for
windows and tunnel your GUI with the servers. ( youtube.com/venkatramanvv )
When you perform installation, make sure that you remember the two home path,
Previous to 12C
After 12C
/u01/apps/Oracle/Middleware/Oracle_Home/
| -> It's an optional Folder which is created by default in Unix
| -> This is the software developer's name
| -> Oracle Home
Go to: cd /opt/software/
Run: java -jar <name of the file> ----------- Make sure PATH is exported.
Or
Run: /u01/apps/java/bin/java -jar <name of the file>
Note: the above should be selected in terms of installation through CLI. Save the above file in some location for eg:
/opt/software/scripts/
Name it as : 14_repository_file.xml
To uninstall:
CLI Mode:
To uninstall:
Note: the above is already done but then you can verify the same as a wlsuser if needed a modification you should use SU
command to switch to root user.
Agenda:
Domain Intro:
Possibilities with Domains:
Features of Domains:
Creating A GUI Based Development Domain:
Domain:
Folders which separates different websites from one another. If there is no domain, if there is three websites called ivr.com,
phonebanking.com & lac.com
Bin/
Logs/
Conf/
Stage/
Temp/
Servers/MS_server1
1) One Managed Server (JVM) under one domain and you can deploy, ivr, lac & PB.
1) Three Managed Server (JVM) Under one domain and deploy ivr to 1st managed server and lac to 2rd and pb to the 3rd
1) Two or More Domains can be created and create two or more Managed servers on each of the domains and deploy Ivr / lac
/ pb to that.
Three Domains with same name , but these three domains are created in different servers. How many servers is involved
here ? 3 servers.
IVR App
Features of A Domain:
Note: You can create n number of domains in a weblogic instance. For eg: If you have created your first domain, the Admin
server will be created with it correct ? Yes. So the Admin server runs on a default port number which is 7001, as you
WLS L2 - Temp Page 12
only you can access the Admin Console to configure or WLST.
Note: You can create n number of domains in a weblogic instance. For eg: If you have created your first domain, the Admin
server will be created with it correct ? Yes. So the Admin server runs on a default port number which is 7001, as you
remember that we are building domains based out of a single template or default template. It would create the second
domain also with the same template which means the Admin server which is supposed to be created on the second domain
will also have the same Admin Server port number which is 7001 again. Can we have two 7001 port on one server ? No. So
when you create this second domain don’t forget to change the port number from 7001 to 8001
Creating A Domain:
Agenda:
Building A Domain:
Building A Domain:
Opening the Domain Template:
Cd /u01/apps/Oracle/Middleware/Oracle_Home/wlserver/common/bin
./config_builder.sh
Agenda:
DEV_IVR_Domain
AS NM
JVM Process:
It’s a Java Virtual Machine, where the java codes would be processed using the same. So Admin server is the first JVM
Process which we will discuss about.
Admin Server
When you start the Admin Server the admin server establish with unique port numbers. HTTP & HTTPS. Using those port
numbers you can access the Admin Console or WLST.
Using Admin console or WLST you can perform two major task:
Configuration Changes:
Control Changes:
Note: All the above can be done to that particular domain which your Admin Console points to.
Admin Server & Managed Server: all the configuration regarding to that domain would be under Domain_home/config/
This file, starts with Security configuration, and then it goes to the username and password and it goes to port number of
each JVM process which we have configured with the domain.
<server>
<name>AdminServer</name>
<ssl>
<name>AdminServer</name>
<enabled>true</enabled>
<listen-port>8002</listen-port>
</ssl>
<listen-port>8001</listen-port>
<listen-address/>
</server>
Note: Sometimes the server will be admin server and there won't be a listen-port defined. It means it's using the default port
number.
Where,
Nohup will push the output of this command to a nohup.out file and "&" will push this command as a bg process.
tail -f Domain_Home/servers/AdminServer/logs/AdminServer.log
Note: You can run the same command in all the domains which you have created. But remember if it’s a dev mode on the
domain it would start without any error because there is no security for starting or stopping JVM process.
Making a URL:
<Protocol>://<SN/HN/DN>:<Port>/<Context Root>
http://wls-node40:8001/console
Agenda:
What is deployment:
Deployment from Local or Remote:
Deployment Target:
Staging of the Deployed Content:
Deployment States:
Deployment Stop / Start:
Different Files can be deployed:
How are we planning to deploy:
Standalone Deployment:
What is deployment ?
Your Java Application Team, would create a package to deploy to your application Server. When you deploy an application
to an managed server. The customer will browse the application which you have deployed. How a customer can browse
the deployed application is by the Port number which is defined in the Managed Server. Hence, you need to deploy these
applications to a target which is one or more managed servers/ cluster.
The content which your deploying, can be in the server itself or in client desktop which your browsing the admin console
from.
Deployment Target:
Now these targets should be stopped at the time of deployment (though you can also deploy when they are running but
complex Java codes requires a request once the deployment is completed).
Staging is where you make the content stay. A directory which is dedicated to keep the application which is deployed to
the managed servers. When ever a resource is being looked up.
Stage Mode:
No Stage Mode:
No stage, is just opposite to stage mode, Than copying to the stage folder of the targeted managed servers, it
access the file from the location where it deployed it from. Say for eg, a developer has copied the deployment
files to /tmp/<deployment Name> so /tmp/ is a temporary folder.
When your deploying you will be asked for three options. If you select the option " Make this deployment
available from this location /tmp/ "
If anyone deletes this file the next time it will look for the files it would be missing. Hence the problem happens
with the end user.
It cannot enabled at the time of deployment. But can be changed in the Managed Server. Now this is just like
the stage mode, but in stage mode the content will be copied into the targeted managed server automatically,
but here it will be a manual copy.
Deployment States:
When you deploy the application in weblogic and get it completed, then the next is that you need to activate the changes
you just did. When you check status of the Deployment it will be DISTRIBUTED state.
From NEW State it will go to PREPARED State as it will prepare the application.
It will be in the PREPARED state until you start the Application which you just deployed.
Once your start the Deployed application then it will go to the state called ACTIVE.
If you want to stop you can bring it from the ACTIVE to Shutdown / stopped state.
Install:
Update:
Delete:
.war
.jar
.jar
.war
Standalone Deployment:
================================
Deployment:
Use Default Defined when you have modified the Managed Server to use the External Stage mode ( look below for more
information on how to do that ).
Use Application onto ever target for me is nothing but stage mode / you can use the defaults defiled itself if you have not
modified as above point.
Use the third option Make this deployment accessible from the following location is nothing but the no stage mode.
YouTube: geeksidea
Linked In: venkatramanvv
Facebook: venkatramanvv
Agenda:
Arch:
Checking the port number of the admin server:
Start the Admin Server:
Accessing the Admin Console:
Deploying Applications:
Browsing the Applications:
Stopping the Admin Server:
Arch:
Remember we have configured the application on the default port number which is 7001 & 7002 if so you cannot find the
same on the config.xml.
How do you know the Admin Server JVM has been started ?
<Sep 25, 2015 10:12:15 PM IST> <Notice> <WebLogicServer> <BEA-000331> <Started the WebLogic Server Administration Server "AdminServer" for domain "DEV_IVR" running in development mode.>
<Sep 25, 2015 10:12:15 PM IST> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.>
<Sep 25, 2015 10:12:15 PM IST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.>
Deploying Applications:
GUI:
CLI:
[wlsuser@wls-node40 DEV_IVR]$ cd /u01/apps/DEV_PB_Domain//bin/
[wlsuser@wls-node40 bin]$ ./stopWebLogic.sh
Agenda:
NM Arch:
Node Manager Introduction:
Node Manager Configuration files:
Node Manager Startup:
Node Manager Logs:
Node Manager Setup:
NM Arch:
Node Manager:
Node Manager is a JVM Process. Node Manager is to manage the Node, Node is a physical machine. NM is available when
you create each domain. But using these NM is up to you. Or you can configure the NM for all the domains.
Every time you create a new domain a NM is registered with that domain. But you can change that when you're creating the
domain itself. Hence you can use the pre-defined method or you can create a new domain. We will have configuration which
we can customize in case if your using multiple NM.
□ When you want to start a Managed Server from Admin Console, you need the Node manager up and running and also
the node manager should be added to the Managed Server.
□ The Node Manager is not used when you're starting the managed server from command line method.
□ When you start the Managed Server using the Node Manager, when suddenly you kill the managed server process or it
dies, the Node Manager will restart this managed server process again.
□ When you start the Managed server using the Node Manager, there would be an extra log file .out file. This records
more information towards the Managed server.
SSL ( Recommended )
PLAIN
SSH
RSH
Admin Console -> start MS1 -> Node Manager -> startup of MS1.
1. Machine is configured
2. Machine is mapped to the MS1
3. NM is running
Step 1:
Admin Console -> stop MS1 -> Stop of MS1
Step 2:
Admin Console -> stop MS1 -> Node Manager -> stop of MS1
Step 3:
Admin Console -> stop MS1 -> O/S -> Kill the MS1 process.
/Domain_HOME/bin/
To start:
startNodeManager.sh
To Stop:
stopNodeManager.sh
/Domain_HOME/nodemanager/
nodemanager.properties
nodemanager.domains
This file holds the information about the Domains which you have in the weblogic application server.
To create more configuration files you need to start the Node Manager.
nodemanager.log
Where it will be logging all the information towards the nodemanager's activity.
Confirm the Node Manager has been started or not by checking this line:
<Dec 29, 2015 12:33:29 PM IST> <INFO> <Secure socket listener started on port 5556, host wls-node40/192.168.224.140>
Check the above either on the nohup.out or on the NM log file under:
DOMAIN_HOME/nodemanager/nodemanager.log
In managed server you're going to add the Node Manager (if you want to start the managed server from Admin console), also
when you deploy application ( war or ear ) to your Weblogic Application Server, you would be assigning a managed server or a
cluster (group of managed servers) to the same.
The Managed servers are basically used for the following purpose:
• To process the java based application which is deployed over it. For eg, the ear or war which you deploy over this managed
server. The codes which is written in those files will be processed by the JVM which is in the managed server and will be
executed on a browser which is present in the remote or local machine.
MS1 : 256 MB to 512 MB
• Managed server have dedicated port numbers where you can browse the executed codes or output in those port numbers.
• Managed servers take care of the request based on the amount of RAM your assigned in to. If you assign more ram for a non-
complicated code it's going to waste the ram because most of the time ram would ideal.
• Managed server also treats request as threads, as too many threads could create problems for the CPU to handle.
In weblogic the managed server or any server JVM starts though specific process or stages. It is vital that every stage has to be
successful.
Shutdown -> Starting -> Standby -> Started -> Admin -> Resuming -> Running
Starts Starting -> Standby -> Started -> Admin -> Resuming -> Running
Shutdown Stopped <- Stopping <- Standby <- Admin <- Running
Administration Mode:
When you application is configured to go to admin mode, it means that it will start all the application deployed to it, it will
start the security SSL and all the sub systems but, it will not establish the port numbers. Which is very important for the client
to browse the application. Where it will be held off. Where you can click on Resume button to resume the server from Admin
to Running mode.
Note: We don’t need the node manager process for the same.
[wlsuser@wls-node40 bin]$ nohup ./startManagedWebLogic.sh prod_IVR_server01 http://localhost:7001 &
MSI MODE:
WLS L2 - Temp Page 40
MSI MODE:
1 Admin Server
5 Managed Servers.
Now 4 managed server are in stopped state and 1 managed server is in running state.
Can you start Your 4 managed servers ? And what will happen to the 1 managed server which is already running ?
If you want to start 4 Managed Server you can still start it ( in CLI ) but not with the help of Node Manager but with
the help of MSI Mode. Which means even if the Admin Server is not running still you will have the managed server
working.
The 1 managed server which is already running will still be running. There is no impact on the existing servers.
MSI mode is enabled by default. You can disable this by going to the managed servers.
Note: If you turn it off you cannot start it by Command Line Mode.
Note: Make sure the admin server is running when you're trying to stop.
Agenda:
Clusters are a virtual component. Clusters are not processes but it's just an configuration. Using Clusters you can deploy
application/JMS/JDBC configuration to a group of servers than one server / multiple server at an time.
DMGR
Features of An Cluster:
Grouping of Servers:
Cluster's on of the features is grouping of JVM together. In this way the deployment of Application is going to be simply a
selection of:
Cluster:
When you select the whole cluster which would have one more or more JVM process, the JMS's are going to help
the application by splitting up the load btw, the servers. And also used for an easier management of application.
You can view the group of JVM's involved in an cluster by going to the cluster and checking the server members.
Not going to be on a cluster but would your application can be deployed to one or more JVM of your cluster. Make
sure you use the check box instead of option box in terms of selecting part of a cluster configuration.
Now this will enable application to directly access themselves as its not part of a cluster.
Load Balancing:
Load Balancing as the name implies it's all about balancing the load you have on the JVM process.
Now load is considered as request which is coming from the client. So huge load in the sense huge amount of request.
Which in-turn tells us that the JVM process would have having huge amount of request coming in. Say for eg, one r which
is configured with a 1GB of RAM and a dual core processor can only handle 10 request at a point of time. But when 100
request comes at a point of time.
To avoid this over load to the servers. We share the load amount many JVM.
3MS LB -> 1 GB 1Core each. -> 100 Request => 33 Request per MS JVM
3GB 3 Core -> 3 MS JVM Process. -> 100 Request
R1 R1 R1 R1 R1
MS1 W2 = W1 W1 W1 W0 W2 W2 W2 =2
MS2 W3 = W3 W2 W2 W2 W1 W1 W0 =3
MS3 W2 = W2 W2 W1 W1 W1 W0 W2 =2
R1 R1
Random Method:
Failovers:
Failover is a concept as to which the cluster keep listening to the heart beat of each server configure under it and when one
of the server or multiple server fail's or skip's the heart beat will be marked an unavailable or down. Once it marks in that
status, it will not be sending request to those servers. The listening to the heard beat is a continuous process as in, if the
marked server comes up it will change the status from unavailable to available.
This means cluster is not just for Load Balancing but also there is a logic inside which knows when the server is up or down
so that it can route the request or not.
There are three ways we can configure the servers ( JVM ) Which is part of the cluster.
Horizontal Cluster:
----------------
When we want to configure a horizontal cluster we simply one MS JVM under two or more physical servers.
So under a cluster you would have one MS JVM from each Physical Server added.
Vertical Cluster:
|
|
|
|
This is a configuration of a cluster's members, where in which we configure multiple JVM within one Physical Server.
Hybrid Cluster:
--------|
|
|
This is a configuration of a cluster's members, where you can configure multiple JVM's can be configured under
multiple Physical Machines.
Unicasting:
One to many connectivity. It’s a type of communication in which cluster member connects to the other cluster member
to share the session related information, JMS related information, Failover related information and Load balancing
information.
Multicasting:
One to many, Where the cluster members will all get connected to a single Multicasting HW. The information like session
related information, JMS related information, Failover related information and Load balancing information will be shared
with the Multicasting HW and the same would be shared by the same.
<Multicasting IP>:port
Under the Hw Multicasting Server, the members details will be listed, where clustering would happen from this end.
Configuration Of Clusters:
Agenda:
Cluster Deployment
Deployment Order:
Cluster Deployment:
Do the deployment just like above but when it asks to select the targets you need to do the following:
Full Cluster:
Part of a cluster:
Go to:
Note: This will start serving the request to all the servers it has been assgined to.
Note: This will start serving in Admin Mode which we will see it on the Adv Deployment
Deployment Order:
Every deployment you do will have the default order number of 100. When you have 3 application deployed to weblogic
and you want the A Application to start after B Application And B Application to start after C application.
You assign
C application with a deployment order as 10
B application with a deployment order as 20
A application with a deployment order as 30
In the above way, the application " C " Will start first.
WLST is designed with JYTHON. You can work with WLST in different ways and methods.
WLST is nothing but another method to approach the Admin Server's configuration & control.
WLST_HOME= /u01/app/Oracle/Middleware/Oracle_home/wlserver/common/bin/
Interactive Mode:
Students and teacher teaching via, asking questions and answers. Where you would be entering into a CLI Console
which is designed for WLST.
Method 1:
/u01/app/Oracle/Middleware/Oracle_home/wlserver/common/bin/
./wlst.sh
Method 2:
java -cp /u01/app/Oracle/Middleware/Oracle_home/wlserver/server/lib/weblogic.jar weblogic.WLST
Non-Interactive Mode:
Method 1:
Go to: <WLS_HOME>/common/bin
OFFLINE:
Just a reminder,
Private:
Admin Server for that Domain is private, or Managed Server for that Domain is private. This
means when you want to start an Admin Server for google domain you need to be in Google
<Domain_home>/bin and you need to start nohup ./startWebLogic.sh &.
Correct ? Yes
Public Means ?
When you start WLST, it will not connect to any domain because its public. So it will go to Offline mode by
default. So all the public activities you can do in WLST when it's in offline mode. Public activities like, Creating a
Domain or creating a domain template or starting a Admin Server, Starting a Node Manager.
ONLINE:
connect('weblogic','weblogic123','t3://192.168.243.161:7001')
Now you would be a part of that domain which runs on the port number 7001 on localhost using the
username and the password.
You can do the same exact thing in WLST as you do in Admin Console.
WLST is a command line scripting tool to configure and administer WebLogic Server. Try:
wls:/offline>
==========================
wls:/offline> help('startServer')
Description:
Syntax:
startServer([adminServerName], [domainName], [url], [username], [password], [domainDir], [block], [timeout], [serverLog], [systemProperties], [jvmArgs], [spaceAsJvmArgsDelimiter])
- adminServerName = Optional. Name of the Administration Server to
start. This argument defaults to myserver.
- timeout = Optional. Time (in milliseconds) that WLST waits for the
server to start before canceling the operation. The default value is
60000 milliseconds. This argument is only applicable when block is set
to true.
Example:
wls:/offline> startServer('demoServer','demoDomain',
't3://localhost:8001','myweblogic','wlstdomain','c://mydomains/wlst',
'false', 60000,jvmArgs='-XX:MaxPermSize=75m, -Xmx512m, -XX:+UseParallelGC')
wls:/offline>
==========================
wls:/offline> startServer('AdminServer','DEV_PB_Domain','t3://PRD-NODE1:7001','weblogic','weblogic123','/u01/apps/DEV_PB_Domain/',jvmArgs='-XX:MaxPermSize=125m, -Xmx512m, -XX:+UseParallelGC')
Starting weblogic server ...
WLST-WLS-1444982172068: <Oct 16, 2015 1:26:12 PM IST> <Info> <Security> <BEA-090905> <Disabling the CryptoJ JCE Provider self-integrity check for better startup performance. To enable this check, specify -
Dweblogic.security.allowCryptoJDefaultJCEVerification=true.>
WLST-WLS-1444982172068: <Oct 16, 2015 1:26:12 PM IST> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG128 to FIPS186PRNG. To disable this change, specify -
Dweblogic.security.allowCryptoJDefaultPRNG=true.>
WLST-WLS-1444982172068: <Oct 16, 2015 1:26:13 PM IST> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Client VM Version 24.51-b03 from Oracle Corporation.>
WLST-WLS-1444982172068: <Oct 16, 2015 1:26:13 PM IST> <Info> <Management> <BEA-141107> <Version: WebLogic Server 12.1.3.0.0 Wed May 21 18:53:34 PDT 2014 1604337 >
.WLST-WLS-1444982172068: <Oct 16, 2015 1:26:15 PM IST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING.>
Now you will get a lot of commands, still you can give help on those,
wls:/offline> help('startNodeManager')
Description:
Syntax:
startNodeManager([verbose], [nmProperties])
- verbose = Optional. Boolean value specifying whether WLST starts
Node Manager in verbose mode. This argument defaults to false, disabling
verbose mode.
Example:
Note: The Node Manager has to be started for the first time using CLI Mode but NOT USING WLST.
If Node Manager is already running please kill the process, this won't affect the process which was started using Node
Manager.
startNodeManager(NodeManagerHome='/u01/apps/DEV_PB_Domain/nodemanager',ListenPort='5559',ListenAddress='PRD-NODE1')
Launching NodeManager ...
Running startNodeManager.sh from the directory /opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR/bin
NMProcess: NODEMGR_HOME is already set to /opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR/nodemanager
NMProcess:
CLASSPATH=/opt/java/lib/tools.jar:/opt/Oracle/Middleware/Oracle_Home/wlserver/server/lib/weblogic_sp.jar:/opt/Oracle/Middleware/Oracle_Home/wlserver/server/lib/weblogic.jar:/opt/Oracle/Middleware/Oracle_Home/oracl
e_common/modules/net.sf.antcontrib_1.1.0.0_1-0b3/lib/ant-contrib.jar:/opt/Oracle/Middleware/Oracle_Home/wlserver/modules/features/oracle.wls.common.nodemanager_
2.0.0.0.jar:/opt/java/lib/tools.jar:/opt/Oracle/Middleware/Oracle_Home/wlserver/server/lib/weblogic_sp.jar:/opt/Oracle/Middleware/Oracle_Home/wlserver/server/lib/weblogic.jar:/opt/Oracle/Middleware/Oracle_Home/oracle_
common/modules/net.sf.antcontrib_1.1.0.0_1-0b3/lib/ant-contrib.jar:/opt/Oracle/Middleware/Oracle_Home/wlserver/modules/features/oracle.wls.common.nodemanager_
2.0.0.0.jar::/opt/Oracle/Middleware/Oracle_Home/oracle_common/modules/features/cieCfg_wls_lib_
12.1.3.jar::/opt/Oracle/Middleware/Oracle_Home/wlserver/common/derby/lib/derbynet.jar:/opt/Oracle/Middleware/Oracle_Home/wlserver/common/derby/lib/derbyclient.jar:/opt/Oracle/Middleware/Oracle_Home/wlserver/co
mmon/derby/lib/derby.jar:/opt/Oracle/Middleware/Oracle_Home/wlserver/common/derby/lib/derbytools.jar:/opt/Oracle/Middleware/Oracle_Home
NMProcess: + /opt/java/bin/java -server -Xms32m -Xmx200m -XX:MaxPermSize=128m -Dcoherence.home=/opt/Oracle/Middleware/Oracle_Home/coherence -Dbea.home=/opt/Oracle/Middleware/Oracle_Home -DListenAddress= -
DNodeManagerHome=/opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR/nodemanager -DQuitEnabled=true -DListenPort=5557 -
Dweblogic.RootDirectory=/opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR -Dweblogic.RootDirectory=/opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR -Xverify:none -
Djava.endorsed.dirs=/opt/java/jre/lib/endorsed:/opt/Oracle/Middleware/Oracle_Home/oracle_common/modules/endorsed -Djava.security.policy=/opt/Oracle/Middleware/Oracle_Home/wlserver/server/lib/weblogic.policy -
Dweblogic.nodemanager.JavaHome=/opt/java weblogic.NodeManager -v
NMProcess: <Oct 16, 2015 1:27:16 PM IST> <INFO> <Loading domains file: /opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR/nodemanager/nodemanager.domains>
NMProcess: <Oct 16, 2015 1:27:17 PM IST> <INFO> <Loading identity key store: FileName=/opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR/security/DemoIdentity.jks, Type=jks, PassPhraseUsed=true>
NMProcess: <Oct 16, 2015 1:27:17 PM IST> <INFO> <Loaded NodeManager configuration properties from '/opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR/nodemanager/nodemanager.properties'>
NMProcess: Node manager v12.1.3
NMProcess:
NMProcess: Configuration settings:
NMProcess:
NMProcess: DomainsFile=/opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR/nodemanager/nodemanager.domains
NMProcess: LogLimit=0
NMProcess: DomainsDirRemoteSharingEnabled=false
NMProcess: AuthenticationEnabled=true
NMProcess: LogLevel=INFO
NMProcess: DomainsFileEnabled=true
NMProcess: ListenAddress=
NMProcess: NativeVersionEnabled=true
NMProcess: ProcessDestroyTimeout=20000
NMProcess: ListenPort=5557
NMProcess: LogToStderr=true
NMProcess: weblogic.StartScriptName=startWebLogic.sh
NMProcess: SecureListener=true
NMProcess: LogCount=1
NMProcess: QuitEnabled=true
NMProcess: LogAppend=true
NMProcess: weblogic.StopScriptEnabled=false
NMProcess: StateCheckInterval=500
NMProcess: CrashRecoveryEnabled=false
NMProcess: weblogic.StartScriptEnabled=true
NMProcess: LogFile=/opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR/nodemanager/nodemanager.log
NMProcess: LogFormatter=weblogic.nodemanager.server.LogFormatter
NMProcess: coherence.StartScriptEnabled=false
NMProcess: ListenBacklog=50
NMProcess: NodeManagerHome=/opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_IVR/nodemanager
NMProcess: weblogic.startup.JavaHome=/opt/java
NMProcess: weblogic.startup.MW_Home=
NMProcess: coherence.startup.JavaHome=/opt/java
NMProcess: coherence.startup.MW_Home=
NMProcess:
NMProcess: Domain name mappings:
NMProcess:
NMProcess: Prod_MYTEL -> /opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_MYTEL
NMProcess: Prod_LAC -> /opt/Oracle/Middleware/Oracle_Home/user_projects/domains/Prod_LAC
ls()
First thing understand what would you do to change the same from the Admin Console,
Go to Admin Console -> Servers -> Lock and Edit -> start the editing -> change the port number -> Activate the
changes -> Stop or exit the edit state.
wls:/google_prod_domain/edit> startEdit()
Starting an edit session ...
Started edit session, please be sure to save and activate your
changes once you are done.
wls:/google_prod_domain/edit !> cd('Servers/google_ms2')
wls:/google_prod_domain/edit/Servers/google_ms2 !> set('ListenPort',9090)
wls:/google_prod_domain/edit/Servers/google_ms2 !> save()
wls:/google_prod_domain/edit/Servers/google_ms2 !> ls()
Activation completed
wls:/google_prod_domain/edit/Servers/google_ms2 !> stopEdit()
help('state')
==================
wls:/mydomain/serverConfig> state('managed1','Server')
Current state of 'managed1': SUSPENDED
wls:/mydomain/serverConfig>
wls:/mydomain/serverConfig> state('mycluster','Cluster')
There are 3 server(s) in cluster: mycluster
==================
wls:/google_prod_domain/serverConfig> state('Prod_Yahoo_MS1','Server')
Current state of 'google_ms1' : RUNNING
wls:/google_prod_domain/serverConfig>
Deployment
wls:/Google_domain/edit/AppDeployments>
Delete this application which is already installed and reinstall the same application again:
wls:/Google_domain/edit/AppDeployments> undeploy('SwiffChartJSPSamples')
Undeploying application SwiffChartJSPSamples ...
<Oct 5, 2014 12:34:33 AM IST> <Info> <J2EE Deployment SPI> <BEA-260121> <Initiating undeploy operation for application, SwiffChartJSPSamples [archive: null], to google_cluster .>
.Completed the undeployment of Application with status completed
Current Status of your Deployment:
Deployment command type: undeploy
Deployment State : completed
Deployment Message : [Deployer:149194]Operation 'remove' on application 'SwiffChartJSPSamples' has succeeded on 'google_ms2'
wls:/Google_domain/edit/AppDeployments> ls()
wls:/Google_domain/edit/AppDeployments>
deploy('PB','/opt/software/ear/PB.war',targets="DEV_PB_Cluster01")
disconnect()
exit()
Non-Interactive method:
Put the following commands into the following file named execute.py:
startServer('AdminServer','DEV_PB_Domain','t3://PRD-NODE1:7001','weblogic','weblogic123','/u01/apps/DEV_PB_Domain/',jvmArgs='-XX:MaxPermSize=125m, -Xmx512m, -XX:+UseParallelGC')
print 'admin server is started'
startNodeManager(NodeManagerHome='/u01/apps/DEV_PB_Domain/nodemanager',ListenPort='5556',ListenAddress='PRD-NODE1')
print 'NM server is started'
connect('weblogic','weblogic123','t3://PRD-NODE1:7001')
print 'connected to the admin server'
#shutdown('DEV_PB_MS1','Server')
#print 'shutdown the server 2'
#shutdown('DEV_PB_MS2','Server')
#print 'shutdown the server 1'
undeploy('PB')
print 'undeployment completed sucessfully'
deploy('PB','/opt/software/ear/PB.war',targets="DEV_PB_Cluster01")
print 'deploying'
print 'starting up the servers'
start('DEV_PB_Cluster01','Cluster')
print 'Job Completed'
Agenda:
Introduction:
Creating a Provider:
Creating a DS:
Configuring a Connection Pool:
Testing with the database:
Data Source
Introduction:
Java DataBase Connectivity. Where we use JDBC to connect to different databases to get the values from the database in
terms of updating the client with them. You can create new tables or modify existing or delete the tables.
A Provider Created. -> Provider gives the details of what the database is and how weblogic has to communicate with it.
So basically we need to load a module to the WLS and implementation class and helper class ( default ). These details
can be either collected from the internet or got from DB Admin's.
A Data Source Created. -> Here we provide more details about the database we are connecting with firstly we start with
a JNDI ( Java Naming Directory Interface ) name, where JNDI name would be referred by the application which is trying
to access this database. Hence, the JNDI should match the client requirements. The Database Name. The Database
Server Host Name. The Database User Name. The Database Password. The Database port number.
A Connection Pool Defined. -> We fine tune some values here where these values are used while connecting to the
database.
Note: You can install a database on single system or multiple ( network connectivity is required ).
Configuration of Database:
Min number of the connections with will be maintained all the time.
Multi Datasource:
Multi datasource can be only used when you have more than one data source available.
JMS:
Java Messaging services are used to send messages to different applications components in your application.
JMX:
Java Messaging Extension, are used to send messages to different components in your weblogic server.
This is designed to interact with internal components and sub components of weblogic.
JMS:
Automobile company:
Manufacturing Team:
Invoice Team:
Sales Team:
We have designed an application using EJB which sends out messages to different teams. Now this communication which
is happening will be used via, JMS.
For anyone who wants to communicate btw, different components in their company uses messages in different ways,
some uses applications which would send out mails to a particular team, and that team can respond immediately or they
might take a while to respond, so they created JMS to have such a facility. Also JMS messages should be sent out in a
way where until the message is actually delivered to the right person a backup of that message should be present.
JMS Advantage:
Synchronized Communication:
The Communication which would happen would be like a voice chat or a video chat, where that other person
should be online and he should be sending out a response to your conversation.
A-Synchronized Communication:
This communication is like the mail communication where, when a mail is sent out it doesn’t require the other
Queues:
In this messaging System, the messages are sent out using the following rules,
Sender knows the receiver. When a sender sends out a message he knows who he is sending to.
Guaranteed Delivery, Queue maintain a persistent store, where, it stores the messages until it delivers
successfully.
The Messages which are sent out from the Queue, goes out, in a line / one by one.
The messages travel from SENDER to the JMS Server and to the receiver.
There is no time limit for these messages which are stored in the JMS Server. As the messages would wait until
the receiver gets / download the message.
Topics:
A Publisher publishes a message or broadcast a message, where the message is broadcasted in the JMS Server,
and the subscriber would receive the message from his end.
A publisher is a person who creates messages and put them on the JMS server where he doesn’t know any
subscribers, which means there is no relation btw, publisher and a subscribers.
There is no line system in this format of JMS, where these messages can be broadcasted to a lot of subscribers
There is a time limit for these messages which is broadcasted to the JMS server, where in which if the time limit
expires then the subscribers would not be able to download or get the message.
JMS Server:
Connection Factory:
This is where the connectivity btw, the servers are in place. Where the connection btw sender -> JMS Server ->
Receiver is defined here.
Configuration of JMS:
Direct I/O is supported on all platforms. When available, file stores in direct I/O mode automatically load the native I/O wlfileio driver. This option tends
to out-perform Cache-Flush and tend to be slower than Direct-Write-With-Cache. This mode does not require a native store wlfileio driver, but performs
faster when they are available.
* Direct-Write-With-Cache
Store records are written synchronously to primary files in the directory specified by the Directory attribute and asynchronously to a corresponding
cache file in the Cache Directory. The Cache Directory provides information about disk space, locking, security, and performance implications. This mode
requires a native store wlfileiocode driver. If the native driver cannot be loaded, then the write mode automatically switches to Direct-Write. See Cache
Directory.
* Cache-Flush
Transactions cannot complete until all of their writes have been flushed down to disk. This policy is reliable and scales well as the number of
simultaneous users increases. Transactionally safe but tends to be a lower performer than direct-write policies.
* Disabled
Transactions are complete as soon as their writes are cached in memory, instead of waiting for the writes to successfully reach the disk. This is the
fastest policy because write requests do not block waiting to be synchronized to disk, but, unlike other policies, is not transactionally safe in the event of
operating system or hardware failures. Such failures can lead to duplicate or lost data/messages. This option does not require native store wlfileio drivers,
but may run faster when they are available. Some non-WebLogic JMS vendors default to a policy that is equivalent to Disabled.
Note: that the server persistent store and the JMS Server should be on the same instance.
Creating A Module:
Note: The above mentioned procedure is correct, when your mapping to an cluster which is on a distributed queue. If you
need queue you need to map from the beginning to a particular server.
Webservers:
Apache http servers are the webservers which is available to serve the static file
request like html xml images files.
DSO:
After Apache httpd server 1.3 version the DSO concept was introduced. What is
DSO ?
Previous to the version 1.3 where there was no DSO concept, whenever they need
to add an object into the apache httpd server they need compile it from the
beginning.
For an eg: if you have installed Apache HTTPD Server without the support of SSL.
Now suddenly the client says I need SSL. You need to start the installation again
adding all the components / features (previously selected) + SSL.
But in the version 1.3+ we don’t need to do that. As you can compile the ssl package
and take the objects and place it in the modules folder and load it into Apache's
configuration and restart. The apache httpd server will have the capability of serving
SSL request.
MPM:
Previous to version 2.0 we have only one way of handing the request.
Almost 5GB of Ram required only for the Apache HTTPD Server to process 500
clients. This method of handling the request is called PREFORK.
From 2.0 there is another concept came into the picture, where this concept
basically focus on reducing the CPU Usage which is occupied by every process.
The main focus is to distribute the memory for each process, WORKER concept
where each request would be handled by one thread of a process. You can
configure multiple threads for each process, but threads are little risky because if
one thread hung, it would eat all the memory and you have to kill the entire
process to kill the hogging thread.
500 request / 2 Threads = 250 Process X 10MB for each process = 2500 MB
required.
You can choose what objects / modules you want at the time of installation itself.
But these modules requires depended packages. So until you install what’s
dependent you will not be able to proceed with the installation.
Binary Installation:
Already installed version would be zipped and put up in the website. You can
download the appropriate version of the Binary Package extract the package and
move it to the correct location where it was previously installed.
For that you need to check the configuration file of HTTPD Server. In there you need
to search for ServerRoot
Reality Check:
What we have:
Steps:
Virtual Host:
Hosting multiple websites in one apache httpd server. Without VH you cannot
browse multiple servers in you HTTPD server. You can only brwose one server per
one HTTPD installation.
IP Based VH:
<VirtualHost 192.168.1.20:80>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/IVR"
ServerName www.ivr.com
ServerAlias ivr.com
ErrorLog "logs/ivr.com-error_log"
CustomLog "logs/ivr.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.1.21:80>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/IVR"
ServerName www.ivr.com
ServerAlias ivr.com
ErrorLog "logs/ivr.com-error_log"
We have only one IP Address. Now you need to configure 3 websites on this one
IP Address, then you need to configure Name based VH settings. So here, the
name of the website will be different hence apache httpd server would
differentiate websites using the name but not the IP Address.
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/IVR"
ServerName www.ivr.com
ServerAlias ivr.com
ErrorLog "logs/ivr.com-error_log"
CustomLog "logs/ivr.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/lac"
ServerName lac.com
ServerAlias www.lac.com
DirectoryIndex index.html default.html
ErrorLog "logs/lac.com-error_log"
CustomLog "logs/lac.com-access_log" common
</VirtualHost>
We have one IP Address one website name but we need to configure three
website with the same name and with the same IP address. In that case
something should be unique which will be the port number.
http://www.yahoo.com
Http://www.yahoo.com:8080
Http://www.yahoo.com:9090
<VirtualHost 192.168.1.20:8080>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/IVR"
ServerName www.ivr.com
ServerAlias ivr.com
ErrorLog "logs/ivr.com-error_log"
CustomLog "logs/ivr.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.1.20:9090>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/IVR"
ServerName www.ivr.com
ServerAlias ivr.com
ErrorLog "logs/ivr.com-error_log"
CustomLog "logs/ivr.com-access_log" common
</VirtualHost>
Same IP same website name same port number but different context root.
http://www.yahoo.com/abc
http://www.yahoo.com/ncd
http://www.yahoo.com/sdf
http://www.yahoo.com:8080/abc
http://www.yahoo.com:8080/bcd
http://www.yahoo.com:8080/sdf
www.lac.com
www.ivr.com
Note: Go to the end of the file and copy paste the below:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/IVR"
<VirtualHost *:80>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/LAC"
ServerName lac.com
ServerAlias www.lac.com
DirectoryIndex index.html default.html
ErrorLog "logs/lac.com-error_log"
CustomLog "logs/lac.com-access_log" common
</VirtualHost>
<HTML>
<BODY BGcolor=green>
<Head>
Hello This is IVR Application..
</HEAD>
<H2> Welcome To IVRS<H2>
</Body>
</HTML>
<HTML>
<BODY BGcolor=yellow>
<Head>
Hello This is IVR Application..
</HEAD>
<H2> Welcome To LACSS<H2>
</Body>
</HTML>
Note: The above eg only for IVR change it to LAC in case if your creating another file.
From here on for Apache HTTP Server we need to become Root user to start HTTP
Server:
Port number restriction makes sure that 0 - 1024 port number should be only
started by a root user.
:wq
It says the logs folder is not able to be opened. Which means the folder might not
exists.
[root@localhost ~]# mkdir /opt/httpd/logs
[root@localhost ~]# /opt/httpd/bin/apachectl start
[root@localhost ~]# /opt/httpd/bin/apachectl start
httpd (pid 3145) already running
[root@localhost ~]# /opt/httpd/bin/apachectl start
httpd (pid 3145) already running
[root@localhost ~]#
Open a browser
www.lac.com
If you're getting forbidden error which means that there is a ACL mentioned in the
apache httpd server.
Now you need to allow the document root to be browsable. Normally the whole "/"
root part will be disallowed.
[root@localhost ~]# vi /opt/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/IVR"
ServerName www.ivr.com
ServerAlias ivr.com
ErrorLog "logs/ivr.com-error_log"
CustomLog "logs/ivr.com-access_log" common
<Directory "/opt/content/IVR">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
You can also give the Directory tag outside the VH configuration:
<Directory "/opt/content/">
Order allow,deny
Allow from all
</Directory>
www.lac.com/
www.ivr.com/
Plugins are used for connectivity btw, the webservers And Application Servers.
When you browse a website you have no idea where the request are being served from. Because the website will be having
too many redirection inside. So all the reduction works when you click or press enter in your keyboard.
Say for eg, if your going to a website called yahoo and you click on an actress image.
www.ivr.com
http://www.ivr.com/Calendar_1.0/
Or
a. We have the correct plugin modules for the correct version of apahce httpd server
b. Copy the module to the location of apache httpd server and type an entry about this new module to httpd.conf file. We call
this as loadmodule.
d. Open the httpd.conf file again and enter the details about when and where the routing to the application server should
happen.
Note: Make sure your Apahe HTTPD server & Welogic application server is up and running.
Configuration:
Now add the extra details about how request has to route to the application servers ( Standalone Configuration ) :
[root@localhost conf]# vi /opt/httpd/conf/httpd.conf
<VirtualHost *:80>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/LAC"
ServerName lac.com
ServerAlias www.lac.com
DirectoryIndex index.html default.html
ErrorLog "logs/lac.com-error_log"
CustomLog "logs/lac.com-access_log" common
<Directory "/opt/content/LAC">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
<Location /Calendar_1.0>
SetHandler weblogic-handler
WebLogicHost wls-node40
WebLogicPort 8080
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/IVR"
ServerName www.ivr.com
ServerAlias ivr.com
ErrorLog "logs/ivr.com-error_log"
CustomLog "logs/ivr.com-access_log" common
<Directory "/opt/content/IVR">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
<Location /Calendar_1.0>
SetHandler weblogic-handler
WebLogicHost wls-node40
WebLogicPort 9080
</Location>
</VirtualHost>
Note: The above needs to be mentioned inside the virtual Host of lac.
For allowing only the JSP files routed to the application Server:
<IfModule mod_weblogic.c>
WebLogicHostwls-node40
WebLogicPort 9080
MatchExpression *.jsp
</IfModule>
Make sure, you have completed the previous steps and the cluster creation is also completed as per the below topic details.
You should have at least two servers to continue for a cluster based routing of request from webserver to weblogic servers.
Make sure that both the server which are part of the clusters are running
Make sure that the deployment was done on the cluster than on individual servers.
Remove the location which is currently set and give the following:
<VirtualHost *:80>
ServerAdmin venkatramanvv@gmail.com
DocumentRoot "/opt/content/IVR"
ServerName www.ivr.com
ServerAlias ivr.com
ErrorLog "logs/ivr.com-error_log"
CustomLog "logs/ivr.com-access_log" common
<Directory "/opt/content/IVR">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
<Location /Calendar_1.0>
SetHandler weblogic-handler
WebLogicCluster wls-node40:9080,wls-node40:9090
Debug On
DebugConfigInfo On
WLLogFile /tmp/plguin.log
</Location>
</VirtualHost>
Try to browse the website and open the plugin.log to check the logs.
readTemplate('/u01/apps/Oracle/Middleware/Oracle_Home/wlserver/common/templates/wls/wls.jar')
cd('Servers/AdminServer')
cmo.setListenAddress('')
set('ListenPort', 8001)
create('AdminServer','SSL')
cd('SSL/AdminServer')
set('Enabled', 'True')
set('ListenPort', 8002)
cd('/')
cd('Security/base_domain/User/weblogic')
cmo.setPassword('weblogic1')
setOption('ServerStartMode','prod')
setOption('OverwriteDomain', 'true')
writeDomain('/opt/Oracle/Middleware/Oracle_Home/user_projects/domains/PROD_LAC_domain')
closeTemplate()
exit()