際際滷

際際滷Share a Scribd company logo
Oracle WebLogic: The next
Big Thing for Apps DBAs


Sudeep Raj, Team Lead
March, 2013
About Me



 Oracle Apps DBA/Team Lead at Pythian Group Inc.
 10 Years of IT experience
 OCP Certified
     @sudeeporcl
     http://www.linkedin.com/in/sudeepraj1
Agenda
   Overview of WebLogic
   OC4J v/s WebLogic
   Understanding the WebLogic Terminologies and architecture
   Exploring Administration Tools
   WLST Scripting Tool
   JVM Tuning
   Tips and How-Tos
   Hands on Session with WebLogic 12c
Evolution of WebLogic
                  WebLogic Inc started in 1995 credited with
                  creating the first J2EE application
                  server, the WebLogic Application Server.



         BEA Systems
         Acquired WebLogic
         Inc in 1998



           Oracle Acquired BEA
           Systems in 2008
What is WebLogic?
OC4J v/s WeLogic

Oracle Containers for Java              WebLogic
Multiple JVMs                           One JVM
Runs on wide range of ports             Runs on a single port
No HTTP listener                        Configured with HTTP listener
Web Server is mandatory                 Not Mandatory
Application Server cluster topology     WebLogic Server domain
OC4J groups                             WebLogic Server clusters
Managed by OPMN                         Not managed by OPMN
Oracle Enterprise Manager Application   Oracle WebLogic Server Administration
Server Control                          Console
OC4J v/s WeLogic
OC4J v/s WeLogic
Understanding the Terminologies
   WebLogic Server Instance

   WebLogic Server Domain

   Administration Server

   Managed Server

   WebLogic Server Cluster

   Machine

   Node Manager
WebLogic Server Instance
 WebLogic Server Instance is a Java Virtual Machine process
  runs Java code.

 Each domain must have one server instance

 One instance serves as Admin Server and rest as Managed
  Servers.

 Typical development environment is of one WebLogic instance
WebLogic Server Domain
   A Domain is a logically related group of WebLogic Server
    resources that you manage as a unit.

   A domain provides one point of administration and each
    domain must create its own set of resources.

   A domain consists of one of more WebLogic server
    instances

   A domain lets you easily deploy applications across
    multiple WebLogic Server instances

   WebLogic Server stores the configuration information of
    a domain in config.xml file
Administration Server
   Designed for managing the domain rather than running
    applications.

   One-to-one relationship between domains and Admin
    Server

   Manages the domain configuration

   Admin Server hosts the Administration Console used for
    configuring, monitoring and managing a domain

   In Production environment best practice is to separate the
    application work with administrative work. You can
    firewall the Admin Server separately to avoid external
    client access
Managed Server
   Any additional servers you create after the creation of
    default Admin Server are called Managed Servers

   Contacts Admin Server only during the startup to get
    configuration and deployment settings

   Managed servers operates independent of the Admin
    Server after the startup

   Recommended to deploy applications to Managed
    Servers
WebLogic Server Cluster
   Consists of multiple managed servers that runs
    simultaneously
   WebLogic Cluster provide increase reliability,
    scalability through load distribution and high
    availability
   Version of WebLogic server for all Managed
    Server instance in a cluster should be same
   A Cluster always belongs to a single WebLogic
    Server Domain.
   Each machine must have a static IP address
    and must not assign IP addresses dynamically
    to a cluster member though DHCP
Node Manager
   Purely optional, lets you remotely manage both Admin and Managed Servers
    within that domain.

   Oracle recommends to install Node Manager on each of the machines that
    hosts Managed Server

   Each installation of WebLogic Server comes with Node Manager

   When you start or stop a Managed Server through Admin console, the admin
    server first access Node Manager, which in turn performs the actual task.

   Is available as either a Java-based or a script-based process
Machine

   In WebLogic context, Machine is a logical representation of computer that
    hosts one or more WebLogic server instances.

   Runs a supported operating system platform

   A Machine could be a physical or virtual server that hosts Admin or Managed
    Server
Administration Tools

   Admin console

   WebLogic Scripting Tool

   Configuration Wizard

   Configuration Template Builder

   Node Manager
How does WebLogic Startup script works?

   Startup sequence

        Start $DOMAIN_HOME/startWebLogic.sh
            Calls $DOMAIN_HOME/bin/startWebLogic.sh
                   Calls $DOMAIN_HOME/bin/bin/setDomainEnv.sh
                          Calls $WL_HOME/common/bin/commEnv.sh
                   setDomainEnv.sh will set other memory parameters
                          Returns to $DOMAIN_HOME/bin/startWebLogic.sh
            $DOMAIN_HOME/bin/startWebLogic.sh organizes the parameters and calls
               java to startup the JVM and start Weblogic Server
   Boot Identity File
   Lock file $DOMAIN_HOME/servers/<ServerName>/tmp/<ServerName>.lok
Invoking WLST

   Java weblogic.WLST




   Source the environment . ./setWLSEnv.sh which is under
    $MW_HOME/wlserver_10.3/server/bin

   [oracle@srfm bin]$ java weblogic.WLST
    Initializing WebLogic Scripting Tool (WLST) ...
    Welcome to WebLogic Server Administration Scripting Shell
    Type help() for help on available commands
     wls:/offline>
Starting NodeManager via WLST

   wls:/offline>
   startNodeManager(verbose='true',NodeManagerHome='/u01/app/middleware/wlserver_
   12.1/common/nodemanager', ListenPort=5555', ListenAddress=vmlinux3.lab.com')

   wls:/offline>
   nmConnect('weblogic','welcome1','vmlinux3',5555,'pythian_domain','/u01/app/middleware
   /user_projects/domains/pythian_domain','ssl')
   Connecting to Node Manager ...
   Successfully Connected to Node Manager.
   wls:/nm/pythian_domain>

   wls:/nm/pythian_domain> nmServerStatus('ManagedServer_1');
   RUNNING
   wls:/nm/pythian_domain> nmServerLog()
   wls:/nm/pythian_domain> stopNodeManager()
Sample WLST script to monitor Server state.
Sample WLST script to monitor Server state.
How to change port in WebLogic?
   Option1: Change the port information via WebLogic console.




   Option 2: Update config.xml, modify listen-port




   Update ADMIN_URL on
    startManagedWebLogic.sh, stopWebLogic.sh and
    stopManagedWebLogic.sh scripts
JVM Tuning


 Oracle recommends
    Sun JDK with the HotSpot Client JVM for Development
    Oracle JRockit JDK for Production due to superior performance
 JAVA_HOME and JAVA_VENDOR
 Tuning Java heap size
        java.lang.OutOfMemoryError <<no stack trace available>>
        java.lang.OutOfMemoryError <<no stack trace available>>
 Garbage Collection
 setDomainEnv.sh >>>
JVM Tuning
   wls:/pythian_domain/domainRuntime> domainRuntime()
   wls:/pythian_domain/domainRuntime> cd('ServerRuntimes/AdminServer')
   wls:/pythian_domain/domainRuntime/ServerRuntimes/AdminServer> cd('JVMRuntime/AdminServer')
   wls:/pythian_domain/domainRuntime/ServerRuntimes/AdminServer/JVMRuntime/AdminServer> ls()

     -r--   HeapFreeCurrent                              190211496
     -r--   HeapFreePercent                              72
     -r--   HeapSizeCurrent                              324927488
     -r--   HeapSizeMax                                  477233152
     -r--   JavaVMVendor                                 Sun Microsystems Inc.
     -r--   JavaVendor                                   Sun Microsystems Inc.
     -r--   JavaVersion                                  1.6.0_29
     -r--   Name                                         AdminServer
     -r--   OSName                                       Linux
     -r--   OSVersion                                    2.6.18-194.el5
     -r--   Type                                         JVMRuntime
     -r--   Uptime                                       5341693

     -r-x   preDeregister                                Void :

   wls:/pythian_domain/domainRuntime/ServerRuntimes/AdminServer/JVMRuntime/AdminServer>
How to remove a domain?
        Make sure services are down
        Remove domain entry from $MW_HOME/domain-registry.xml




       Remove entry from nodemanager.domains




       Delete a domain folder
Hands on Session


   Install WebLogic 12c on Linux
   Configure WebLogic Domain
   Configuring Servers, Machines
   Cluster Configuration
   Using Admin console
   Starting Servers using Node Manager
   Configuring Data Sources
   Deploying/Undeploying simple Web Application
   Exploring important files and folders
Thank you - Q&A

More Related Content

Weblogic

  • 1. Oracle WebLogic: The next Big Thing for Apps DBAs Sudeep Raj, Team Lead March, 2013
  • 2. About Me Oracle Apps DBA/Team Lead at Pythian Group Inc. 10 Years of IT experience OCP Certified @sudeeporcl http://www.linkedin.com/in/sudeepraj1
  • 3. Agenda Overview of WebLogic OC4J v/s WebLogic Understanding the WebLogic Terminologies and architecture Exploring Administration Tools WLST Scripting Tool JVM Tuning Tips and How-Tos Hands on Session with WebLogic 12c
  • 4. Evolution of WebLogic WebLogic Inc started in 1995 credited with creating the first J2EE application server, the WebLogic Application Server. BEA Systems Acquired WebLogic Inc in 1998 Oracle Acquired BEA Systems in 2008
  • 6. OC4J v/s WeLogic Oracle Containers for Java WebLogic Multiple JVMs One JVM Runs on wide range of ports Runs on a single port No HTTP listener Configured with HTTP listener Web Server is mandatory Not Mandatory Application Server cluster topology WebLogic Server domain OC4J groups WebLogic Server clusters Managed by OPMN Not managed by OPMN Oracle Enterprise Manager Application Oracle WebLogic Server Administration Server Control Console
  • 9. Understanding the Terminologies WebLogic Server Instance WebLogic Server Domain Administration Server Managed Server WebLogic Server Cluster Machine Node Manager
  • 10. WebLogic Server Instance WebLogic Server Instance is a Java Virtual Machine process runs Java code. Each domain must have one server instance One instance serves as Admin Server and rest as Managed Servers. Typical development environment is of one WebLogic instance
  • 11. WebLogic Server Domain A Domain is a logically related group of WebLogic Server resources that you manage as a unit. A domain provides one point of administration and each domain must create its own set of resources. A domain consists of one of more WebLogic server instances A domain lets you easily deploy applications across multiple WebLogic Server instances WebLogic Server stores the configuration information of a domain in config.xml file
  • 12. Administration Server Designed for managing the domain rather than running applications. One-to-one relationship between domains and Admin Server Manages the domain configuration Admin Server hosts the Administration Console used for configuring, monitoring and managing a domain In Production environment best practice is to separate the application work with administrative work. You can firewall the Admin Server separately to avoid external client access
  • 13. Managed Server Any additional servers you create after the creation of default Admin Server are called Managed Servers Contacts Admin Server only during the startup to get configuration and deployment settings Managed servers operates independent of the Admin Server after the startup Recommended to deploy applications to Managed Servers
  • 14. WebLogic Server Cluster Consists of multiple managed servers that runs simultaneously WebLogic Cluster provide increase reliability, scalability through load distribution and high availability Version of WebLogic server for all Managed Server instance in a cluster should be same A Cluster always belongs to a single WebLogic Server Domain. Each machine must have a static IP address and must not assign IP addresses dynamically to a cluster member though DHCP
  • 15. Node Manager Purely optional, lets you remotely manage both Admin and Managed Servers within that domain. Oracle recommends to install Node Manager on each of the machines that hosts Managed Server Each installation of WebLogic Server comes with Node Manager When you start or stop a Managed Server through Admin console, the admin server first access Node Manager, which in turn performs the actual task. Is available as either a Java-based or a script-based process
  • 16. Machine In WebLogic context, Machine is a logical representation of computer that hosts one or more WebLogic server instances. Runs a supported operating system platform A Machine could be a physical or virtual server that hosts Admin or Managed Server
  • 17. Administration Tools Admin console WebLogic Scripting Tool Configuration Wizard Configuration Template Builder Node Manager
  • 18. How does WebLogic Startup script works? Startup sequence Start $DOMAIN_HOME/startWebLogic.sh Calls $DOMAIN_HOME/bin/startWebLogic.sh Calls $DOMAIN_HOME/bin/bin/setDomainEnv.sh Calls $WL_HOME/common/bin/commEnv.sh setDomainEnv.sh will set other memory parameters Returns to $DOMAIN_HOME/bin/startWebLogic.sh $DOMAIN_HOME/bin/startWebLogic.sh organizes the parameters and calls java to startup the JVM and start Weblogic Server Boot Identity File Lock file $DOMAIN_HOME/servers/<ServerName>/tmp/<ServerName>.lok
  • 19. Invoking WLST Java weblogic.WLST Source the environment . ./setWLSEnv.sh which is under $MW_HOME/wlserver_10.3/server/bin [oracle@srfm bin]$ java weblogic.WLST Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands wls:/offline>
  • 20. Starting NodeManager via WLST wls:/offline> startNodeManager(verbose='true',NodeManagerHome='/u01/app/middleware/wlserver_ 12.1/common/nodemanager', ListenPort=5555', ListenAddress=vmlinux3.lab.com') wls:/offline> nmConnect('weblogic','welcome1','vmlinux3',5555,'pythian_domain','/u01/app/middleware /user_projects/domains/pythian_domain','ssl') Connecting to Node Manager ... Successfully Connected to Node Manager. wls:/nm/pythian_domain> wls:/nm/pythian_domain> nmServerStatus('ManagedServer_1'); RUNNING wls:/nm/pythian_domain> nmServerLog() wls:/nm/pythian_domain> stopNodeManager()
  • 21. Sample WLST script to monitor Server state.
  • 22. Sample WLST script to monitor Server state.
  • 23. How to change port in WebLogic? Option1: Change the port information via WebLogic console. Option 2: Update config.xml, modify listen-port Update ADMIN_URL on startManagedWebLogic.sh, stopWebLogic.sh and stopManagedWebLogic.sh scripts
  • 24. JVM Tuning Oracle recommends Sun JDK with the HotSpot Client JVM for Development Oracle JRockit JDK for Production due to superior performance JAVA_HOME and JAVA_VENDOR Tuning Java heap size java.lang.OutOfMemoryError <<no stack trace available>> java.lang.OutOfMemoryError <<no stack trace available>> Garbage Collection setDomainEnv.sh >>>
  • 25. JVM Tuning wls:/pythian_domain/domainRuntime> domainRuntime() wls:/pythian_domain/domainRuntime> cd('ServerRuntimes/AdminServer') wls:/pythian_domain/domainRuntime/ServerRuntimes/AdminServer> cd('JVMRuntime/AdminServer') wls:/pythian_domain/domainRuntime/ServerRuntimes/AdminServer/JVMRuntime/AdminServer> ls() -r-- HeapFreeCurrent 190211496 -r-- HeapFreePercent 72 -r-- HeapSizeCurrent 324927488 -r-- HeapSizeMax 477233152 -r-- JavaVMVendor Sun Microsystems Inc. -r-- JavaVendor Sun Microsystems Inc. -r-- JavaVersion 1.6.0_29 -r-- Name AdminServer -r-- OSName Linux -r-- OSVersion 2.6.18-194.el5 -r-- Type JVMRuntime -r-- Uptime 5341693 -r-x preDeregister Void : wls:/pythian_domain/domainRuntime/ServerRuntimes/AdminServer/JVMRuntime/AdminServer>
  • 26. How to remove a domain? Make sure services are down Remove domain entry from $MW_HOME/domain-registry.xml Remove entry from nodemanager.domains Delete a domain folder
  • 27. Hands on Session Install WebLogic 12c on Linux Configure WebLogic Domain Configuring Servers, Machines Cluster Configuration Using Admin console Starting Servers using Node Manager Configuring Data Sources Deploying/Undeploying simple Web Application Exploring important files and folders
  • 28. Thank you - Q&A

Editor's Notes

  • #6: Oracle WebLogic Server is a scalable, enterprise-ready Java Platformapplication server. Supports the deployment of many types of distributed applications and is an ideal foundation for building applications based on SOA. Enables enterprises to deploy mission-critical applications in a robust, secure, highly available, and scalable environment.
  • #25: JVM executes the byte codes in Java class files, so tuning affects the performance of applications you deployed. Garbage collection is the VM&apos;s process of freeing up unused Java objects in the Java heap.