Cheatsheet Wlsessentials PDF
Cheatsheet Wlsessentials PDF
Cheatsheet Wlsessentials PDF
A cluster is a collection of two or more Managed Servers that provide failover and load balancing. All
domain configurations are stored in $DOMAIN_HOME/config/config.xml, which can be hosted on a
shared drive, or on one of the boxes for servers to pack/unpack.
Do not change configuration manually or on Managed Servers. Always use the Administration Server to ensure no changes are lost.
Applications/services are targeted to run on Managed Servers, or to a cluster, which automatically targets to all Managed Servers in that cluster. Most
services are deployed homogeneously on all server instances in acluster, enabling transparent failover from one server to another. Certain pinned services
such as JMS and JTA are targeted at individual server instances, and support failure recovery with migratable servers. Node Manager is an optional, cross-
domain daemon process on each machine, providing server start/restart/monitoring capabilities and is required for whole server migration. It is
configured in nodemanager.domains and nodemanager.properties.
Note that there can be only ONE SOA installation per domain, either targeted to one Managed Server or one cluster.
WebLogic Server Class Loading Hierarchy
Key Principles: Delegation, Visibility, Uniqueness. Classloader Analysis Tool at http://<host>:<port>/wls-cat/
JVM Bootstrap Loads core JDK/JRE classes
Extension Classes under jre/lib/ext
System Classes from $CLASSPATH i.e. jars/classes
References in META-INF/MANIFEST.MF Class-Path:<lib>
WLS Domain Extension Classes under $DOMAIN_HOME/lib applies to all apps/clusters
Filtering Classloader <prefer-application-packages> in weblogic-application.xml
J2EE EAR App Each app receives its own classloader hierarchy i.e. one for all JARs in the app.
J2EE JAR App Enterprise App Shared Libraries referenced from the EARs META-
J2EE WAR App INF/weblogic-application.xml library-ref
Web App Shared Libraries referenced from the WARs WEB-
INF/weblogic.xml library-ref
EJB Shared Libraries referenced from the EJB-JARs META-INF/
SOA libraries packaged separately outside of
weblogic-ejb-jar.xml library-ref
soa-infra J2EE app, requiring common classes
Libraries referenced from within each JARs META-INF/MANIFEST.MF
e.g. Coherence to be in the System class path
Class-Path:<lib>
BPEL generated code uses filter class loaders to
Shared Utility classes loaded in the EARs APP-INF/lib and classes
avoid conflicts from code in the class path
WAR/RAR in App One class loader per WAR and RAR. Use APP-INF/lib to share classes.
Shared Library examples: SOA Ext, Fusion ESS
Loads WEB-INF/Classes and WEB-INF/lib
Use Cases (take care not to over-use these, which defeats the purpose of self-tuning threads):
Thread Starvation (A calls B calls A) Specify <min-threads-constraint>
Back-end Hogging all Threads Specify <max-threads-constraint>
Use Deamon Threads for long running processes (e.g. SOA engine) -- avoids STUCK warnings
Transaction Management
Global Transaction (XA) Local Transaction No Transaction
Involves more than one resource manager Involves only one resource manager e.g. even if across Involves no resource manager e.g. web service
e.g. JMS and Database multiple database schemas (reason FA uses AQ vs. JMS) invocations
High overhead due to JTA log maintenance Low overhead Lowest overhead
Supports Guaranteed Message Delivery with Supports Guaranteed Message Delivery with EXACTLY Supports Guaranteed Message Delivery with AT
EXACTLY ONCE delivery ONCE delivery LEAST ONCE delivery using WS-RM web services
Guaranteed Message Delivery is an exchange of acknowledgements between sender and receiver to ensure message delivery. It does not depend on global
transactions. It is also possible with no transactions e.g. when using web services with WS-RM.
Consistency across multiple applications depends on transaction boundaries. It does not depend on global transactions. e.g. debit()->process()-
>credit() is guaranteed even with local transactions, and if the process() is asynchronous, it will be eventually consistent.
Transaction Timeouts can be specified at domain level or superseded at application level (e.g. BPEL EJB Timeout). It is read when initiating transactions e.g.
BPEL invoked via WS call or callbacks uses application level timeout, but if invoked via JMS Adapter (with existing transaction) uses domain level timeout.
oracle.com/SOA blogs.oracle.com/SOA @OracleSOA OracleSOA Oracle SOA 2013 Oracle Corporation. All rights reserved.