WebLogic Suite & Exalogic Deep Dive Oracle Partner iDay Jeffrey West Application Grid Product Management Oracle Strategy Hardware and Software Engineered to work Together

• Deliver a complete, open, integrated stack of hardware, infrastructure, database, middleware, and business applications

• Exploit processor, systems, storage, and networking trends to deliver breakthrough innovations by combining Oracle software with Sun hardware

• Integrate components of Oracle‟s software stack to provide unique value to customers

2 2 Middleware and Java in Oracle’s Strategy

• Comprehensive foundation for building and running custom and packaged applications – Extremely well integrated – Industry-leading reliability and performance – Unified development and management – Basis for Oracle Fusion Applications

• Built with and for Java technology

3 Application Server Platform at Oracle Strategically Centered Around WebLogic Server

Custom Packaged SOA Cloud FMW App App Service Service Service Cloud Application Foundation

GlassFish Coherence

Developer WebLogic Enterprise Tools Server Management

Java SE

Most complete Best integration platform for #1 in Performance AND with Oracle cloud time-to-market stack

4 WebLogic Areas of Focus

Lifecycle • Seamless install, upgrade, patching, provisioning, diagnostics across Fusion Management Middleware and Fusion Applications

Enterprise • Mission critical database, messaging, security, Web, services, caching, Runtime Services transactional middleware infrastructure

Platform • Formalized large scale, HA operations, Operations virtualization, Exalogic and Cloud solutions

Lightweight • Standards based, highly productive Java Application development with Java EE 6 Development

5 WLS 11g Innovations

6 WebLogic Suite Product Update Rolling Updates in 11g R1 Patchsets Spring/ Java EE 6

• Developer Experience Jan 2011 WebLogic RAC Integration • Active GridLink for RAC Jan 2011 Partitioned Distributed • Messaging Jan 2011 Topics

3 Coherence 2 1 • ActiveCache April 2010 Integration

April 2010 Assembly • Virtualization Builder

• Operations April 2010 Flight Recorder, EM 11g • Exalogic Elastic Cloud Dec 2010 Hardware/ Software Optimized

7 WebLogic Unique Features

8 WebLogic Suite Unique Features Features available on WebLogic

Messaging Persistence Diagnostics Development

• WebLogic JMS • TopLink & EclipseLink • WebLogic Diagnostic • Fast Swap Extensions • Transaction Manager Frameworks • OEPE • JMS Performance • High Performance • JRMC & JRFR • Netbeans • Foundation for FMW • EM 11g Java Advanced • Web Services Interoperability Monitoring Advanced: Buffered, • JMS C/Net Client Asynchronous, Conversational, JMS transport • Assembly Builder • ZIP Distribution • Mac OS Support

High Availability Operations Leveraging Performance Open Source • SPECjAppServer • Web Tier & HW LB • WebLogic Console Benchmarks • Side by Side • WLST & Recording • Spring Integration • SPECJBB Benchmarks Deployments • WebLogic Templates • JPA Integration • Multiple Vendors & • Whole Server Migration • WebLogic Configuration • Active Cache for JPA Topologies Supported • Service Migration Wizards (2nd level cache) • Jrockit Real Time • Rolling Upgrade • Vertical & Horizontal • ExaLogic • Data Guard • Self Tuning (WebLogic Optimizations Certification & Jrockit) • RMAN Certification • OVF Deployer/Control • Cloud Management Pack

9 Messaging

10 Messaging Infrastructure Foundation JMS for Java EE, SOA and Applications

Java EE/ISV SOA Applications C, .NET Apps Suite Clients

WebLogic Server JMS

WebLogic Server

File Database Store and Bridging Oracle AQ Persistence Persistence Forward (OFM 11)

File Database SAF Bridge AQ

11 Messaging Infrastructure Designed to Scale to the Most Complex SOA Integrations

• Unit of Order Messages red and grey have separate UOO – Messages tagged with same Unit of Order (UOO) 1 2 3 4 5 6 7 8 9 are processed in order – Stronger ordering semantics than the JMS MDB 1 MDB 2 MDB 3 specification Message 3/4 not processed until 1/2 processed • Unit of Work – Messages are grouped with a group identifier 1 MDB 1 – Messages at final destination become available Producer MDB 3 only when entire group arrives 2 3 2 1 3 MDB 2 • Store and Forward Messaging WebLogic WebLogic – Store messages on local server and forward to Forward when remote server when available JMS Server Target Available JMS Server – Store and forward for clients to server and server to server

• Distributed Destinations – All queues and topics in a cluster appear as a JMS Server JMS Server single logical destination to clients Client – Provides high availability and scalability; parallel JMS Server JMS Server processing and load balancing Logical Destination WebLogic Cluster

12 Messaging Infrastructure Performance: Meets the Most Rigorous Throughput Req

Persistent Queuing • WebLogic 10 JMS is fast 7000 6000 – Up to 10X faster than previous WLS 5000 releases 4000 – Re-written file store and disk scheduling 3000 2000 extremely fast 1000 – Database integration optimized with JDBC 0 and batching optimizations 1 2 4 8 16 32 64 WL 100byte EMS 100byte WL 4K EMS 4K • WebLogic JMS consistently beats 1400 pure plays 1200 1000

– Synchronous writes 3X-6X faster than 800

competitors 600 – Message size 25%-4X faster for messages 400 between 1K->512K than competitors 200 0

0001K 0002K 0004K 0008K 0016K 0032K 0064K 0128K 0256K 0512K 1024K

WL Persist EMS Persist Persistent Message Versus Size

Oracle Confidential 13 Messaging WebLogic Partitioned Distributed Destinations

3 • Distributed 2 Destination is 1 created with physical members Publish on each server and Connection accessed with a Factory global JNDI Name JNDI: jms/MyApp/Queue1

DT Member DT Member DT Member • Messages sent to 1 2 3 an individual Member topic are jms-server-1 jms-server-2 jms-server-3 NOT forwarded to other members Subscription Subscription Subscription

MDB / MDB / MDB / • Each MDB pool on Consumer Consumer Consumer a single server receives a copy of Server 1 Server 2 Server 3 the message Cluster

14 Messaging Oracle AQ JMS Integration

• Enables migration and interop with AQ JMS apps • Leverages new JNDI provider in AQ JMS client • Uses standard WebLogic integration features – Foreign JMS Servers, JDBC Data Sources, MDBs • Fully supports JTA transactions

Oracle FMW 10gR3 Oracle FMW 11gR1 OC4J/OAS, BPEL PM, SOA Suite… WLS, BPEL PM, SOA Suite… AQ client Foreign AQ AQ JMS MDB MDB JNDI provider Server OC4J JDBC WLS JDBC

Oracle AQ DBMS Store

15 Persistence & RAC Connectivity

16 Persistence Services High Performance Transaction Manager

Java Java EE SCA Spring Ships WLS TX Clients Applications Applications Integration

Transaction Coordinator Transaction Recovery Manager

Global Transaction HA Local Transactions Transaction Service/Server Migration

Inter Domain Server Interposed Logging Last Tx Log Administrative Transactions Transaction Manager Resource Transaction (Shared Operations (JMX) Operations Storage) WebLogic Transaction Service (JTA/JTS) WebLogic Server

DB Resource 3rd Party (JMS, DB…) 3rd Party (Vitria BW…) Other WLS Instances Manager Resource Manager Transaction Manager (Global, Local & Tx Propagation) (Global, Local Tx) (Global, Local Tx ) (JTS Tx Interoperability )

17 Persistence Services Infrastructure Integrated with Eclipse Java Persistence Platform - TopLink

OSGI Java Spring Applications

ORM OXM EIS SDO XML Database (JPA) (JAXB) Relational Web Services

JDBC Coherence JCA Eclipse Java Persistence Platform WebLogic Server

Databases Data Hub XML Data Packaged Apps Legacy Systems

18 WebLogic and RAC Highest Availability and Performance

• Long History, Wide Adoption WebLogic Cluster

• Highest Availability – For Mission Critical Applications – Transaction Recovery – Fast Connection Failover OracleORACLE RAC RAC ClusterCluster • Highest Performance – Load Balancing – Connection Affinity RAC 1 RAC 2 RAC 3 • GridLink Data Source – Easier Configuration for RAC RAC Instances

19 Complete Resiliency with WebLogic Server Active GridLink for RAC

WebLogic Domain WebLogic Cluster Managed Managed Server1 Server 2  Datasource No Service Interruption! Active GridLink Connection Data Source Pool RAC Node Taken Offline!

What will happen with WebLogic applications when a RAC Node is taken Oracle RAC Database offline? RAC Node 1 RAC Node 2 • No user downtime • Zero wait time for WebLogic connection recovery • Connect pool automatically and rapidly rebalances • No application changes required

RAC Node 3 RAC Node 4

20 Active GridLink: Runtime Connection Load Balancing

Oracle Oracle Oracle Oracle WebLogic RAC WebLogic RAC Server Server Server Server RAC 1 RAC 1 Connections 90% Connections for RAC Node 1 for RAC Node 1 35%

Connections RAC 2 Connections RAC 2 for RAC Node 2 for RAC Node 2 Thin Thin 40% JDBC 5% High JDBC Utilization Connections on RAC Connections Node 1 for RAC Node 3 RAC 3 for RAC Node 3 RAC 3 Oracle WebLogic Workload Oracle WebLogic 5% Balanced 25% Data Source Across Data Source Connection Pool RAC Instance Cluster Connection Pool RAC Instance Notification Notification Notification Notification Service Service Service Service Channel for RAC Node Status Notifications Channel for RAC Node Status Notifications

21 Active GridLink: Fast Connection Failover Connecting WebLogic Server to Oracle RAC

Oracle Oracle Oracle Oracle WebLogic RAC WebLogic RAC Server Server Server Server RAC 1 RAC 1 Invalid Entries Invalid Entries for RAC Node 1 for RAC Node 1 X

Pool Entries RAC 2 Pool Entries RAC 2 for RAC Node 2 Thin for RAC Node 2 Thin JDBC RAC JDBC Node 1 Pool Entries failure Pool Entries causes for RAC Node 3 for RAC Node 3 RAC 3 connections RAC 3 Oracle WebLogic cleaned Oracle WebLogic In WebLogic Data Source Connection Data Source Connection Pool RAC Instance Pool Connection Pool RAC Instance Notification Notification Notification Notification Service Service Service Service Channel for RAC Node Status Notifications Channel for RAC Node Status Notifications

22 Active GridLink: Web Session Affinity Connecting WebLogic Server to Oracle RAC

Application RAC Database Data EJB Source

Data JSP Source Instance1 Connect to me! Servlet Data Source

OracleAS Containers Instance2 Web Logic for J2EE Connection Pool Connection Affinity Context Instance3

23 Active GridLink: XA Transaction Affinity Connecting WebLogic Server to Oracle RAC

Oracle Oracle Oracle Oracle WebLogic RAC WebLogic RAC Servers Server Servers Server RAC 1 RAC 1 WebLogic 1 WebLogic 1 XA App 1 App 1 TXN WebLogic XA WebLogic Conn RAC 2 Conn RAC 2 State Pool TXN State Pool WebLogic Instance1 WebLogic Instance1 Affinity Enable XA Context WebLogic 2 Transaction WebLogic 2 Affinity App2 RAC 3 App2 RAC 3

WebLogic WebLogic Conn RAC Instance Conn RAC Instance State Pool State Pool WebLogic Instance2 Notification WebLogic Instance2 Notification Service Service

24 Development

25 WebLogic: Developers Experience Developer Friendly Operations Platform

• Best server tools integration – Ant and Maven support, classloading analysis tool (CAT) • Delivered on most popular developer platform – New Mac OS X developer support ; ongoing OEPE Eclipse/JDeveloper releases • Simple developer installation SCA – New zip distribution • Early standards adoption – Updating Java EE 6 Core API – JPA 2.0, JSF 2.0, JAX-RS – New Java SCA support – integrated with SOA SCA – Full Java EE 6 in next major release • Latest open source support – Updating to Spring 3.0 • Fusion Middleware Development – ADF

26 WebLogic: Developers Experience Easy Access: NEW ZIP INSTALLER

• Make it easier to get and use WLS! • New zip file distribution • Complete version of WebLogic Server • Missing some very minor tooling support (SmartUpdate)

• Download, unzip, go • Portable, platform independent • Automatic domain creation on startup • Mac OS X support!

27 WebLogic 10.3 Development Features Enhancements from prior WebLogic versions

• Focused on improving developer productivity – Fast turnaround times Develop Deploy

• WebLogic 10.3 Console performance Accelerate – 2x-3x improvements over WebLogic 9.2/10.0 Development Cycle • WebLogic 10.3 Deployment and startup – For example, EJB compilation improvements • Optional service startup Debug – Start WebApp container w/o EJB, JMS, JCA – Precursor to Java EE Web profile Reduce Time • FastSwap to – WebLogic Server 10.3 development option Develop/Test – Bypass typical edit > build >deploy > test cycle – Execute modified code immediately after recompile – No reboot, redeploy, no loss of application state – Change code, refresh browser, view results

28 WebLogic Spring Integration Ongoing Spring Support • Develop/deploy Spring apps to WebLogic WebLogic Admin Server – Supported for multiple WebLogic releases WebLogic Console – Integration features to host Spring applications – Simplified config w/Spring pre-configured beans • Leverage WebLogic in Spring apps WebLogic Cluster/Domain Managed Server Managed Server – Datasources, JMS, Work Managers Spring Apps Spring Apps – Clustering Java EE JEE – Transactions – Monitoring – Management – Automation • Oracle Enterprise Pack for Eclipse Support – Spring IDE, DAO generation, Facets – Generate JAX-WS from bean – Validate Spring config file – Easy project configuration and library mgmt – Graph view for relationship among Spring Beans

29 Choice of IDE Solutions

• JDeveloper – Complete IDE for Fusion Middleware and Oracle – Oracle ADF, SOA, WebCenter, Database etc. – WebLogic support

• Oracle Enterprise Pack for Eclipse (OEPE) – Best of breed Eclipse bundle focused on Java Development – Rich capabilities for WebLogic Java EE developers

• NetBeans – Open Source and tooling for Java RIs – WebLogic and generic Java platforms (SE, EE, ME, JavaFX)

• Many other IDEs support WebLogic – Support not as rich as JDeveloper, OEPE

30 High Availability

31 Transaction Log Persistence to RAC

• WebLogic historically has WebLogic Server managed transaction state using a „tlog‟ file on a filesystem • In order to recover transactions from a failed Server you had to migrate the Transaction Logs filesystem or use shared storage OracleORACLE RAC RAC Cluster Cluster • WebLogic now offers the ability to maintain transaction logs in the database RAC 1 RAC 2 RAC 3 • An HA database solution like Oracle RAC is strongly RAC Instance recommended

32 High Availability Built in HA Infrastructure

Load Balancing, Clustering Unplanned SW Failure Service/Server Migration Downtime Data Failure Backup and Recovery

Disaster Disk Replication and Recovery Data Guard HA HW Failure Clusterware

Reconfigure Online Operations

Deploy Apps Side by Side Deployment Planned Downtime Upgrade Rolling Upgrade

33 WebLogic HA Web Topology

Desktop Node Mgr Node Mgr X X Apache WLS Cluster Administration Server Oracle DB Server or OHS DMZ Intranet Internet Node Mgr Node Mgr X X Apache WLS Cluster FW-2 WLS Cluster Oracle DB FW-1 Server LB-1 or OHS ORACLE RAC

34 HA with Web Tier Load Balancing Surviving a Failed HTTP Server

• Load balancing – Round robin HTTP Server • Supported Web servers Apache Server – IIS, SunOne, Apache mod_wl • Multi-machine cluster aware • Uses HTTP piggy backing • Failure aware • Failed WLSs removed from cluster WLS1 WLSn • Restarted WLSs added to cluster …

• Routing JVM JVM

– Static routing WebLogic Cluster • Lightweight solution – HTTPClusterServlet hosted on a Node Manager WebLogic instance WebLogic Server

35 HA with WebLogic State Replication Surviving a Failed WebLogic Server

Domain State MAN State WAN State Replication Replication Replication

Domain Cluster 1 Cluster 1 Cluster Local Load State 1 Local Load State 1 Managed Balancer Balancer Server 1 State 2 State 2 State 1 Global Global Load Load Load Balancer Balancer Balancer Cluster 2 Cluster 2 Managed Local Load State 3 Local Load State 3 Server 2 Balancer Balancer State 2 State 4 State 4

In Memory or In Memory Database Backed Database Backed Asynch Asynch or Synch

36 HA with WebLogic Clustered JNDI Surviving a Failed WebLogic Server

• Clusterable objects include EJB, JDBC, JMS, Custom Objects • Each server creates and maintains a local copy of cluster wide JNDI tree

Managed WLS 1 Managed WLS 1

Object X Object X

A C A C

IP Unicast

Managed WLS 1 Managed WLS 1

Object X Object X A C A C

37 HA with WebLogic GridLink Data Sources Surviving a Failed Oracle RAC Node

Oracle Oracle Oracle Oracle WebLogic RAC WebLogic RAC Server Server Server Server RAC 1 RAC 1

DS1 Pool DS1 Pool for RAC Node 1 for RACX Node 1 X RAC Node RAC 2 Failure RAC 2 DS2 Pool Causes DS2 Pool for RAC Node 2 Thin Data for RAC Node 2 Thin JDBC JDBC Source to Load DS3 Pool RAC 3 Balance DS3 Pool RAC 3 for RAC Node 3 To for RAC Node 3 WebLogic Surviving WebLogic Multi Data Pools Multi Data Source RAC Instance Source RAC Instance

38 HA for JMS Infrastructure

Continued ability to send and receive Distributed messages Destinations

Whole Server and All messages sent are processed Service Migration

Automatic Seamless client failover Reconnect

Continued ability to send when no remote Store and Forward servers are available Client SAF

39 HA with Whole Server Migration Application and Resource Recovery with Continuous Capacity

• Automatic migration of failed servers within a cluster • Effectively a server restart and recovery on another machine

WebLogic Cluster

Administration Managed WLS 2 Detect Managed WLS 3 Managed WLS 2 Server Resources 2 Failure Resources 3 ResourcesSpare 2 Capacity (Cluster Master) Migrate Server Machine 1 Machine 2 Machine 3 Domain

Database or Consensus Leasing

40 HA with Service Migration Resource Recovery with Fast Recovery

• HA for singleton services • Restart and recover services on another running server in the cluster

WebLogic Cluster

Administration Managed WLS 2 Detect Managed WLS 3 Managed WLS 4 Server Resources 2 Failure Resources 3 Resources 4

(Cluster Master) Resources 2 Migrate Service Machine 1 Machine 2 Machine 3 Domain

Database or Consensus Leasing Storage Area Network

41 HA with Side by Side Deployment

Zero Application Downtime Existing External New External Client Client Connections Connections When Activated • Newer version of application deployed side-by-side with older version in same JVM

• Clients already connected continued to be served by older version

Application Application • New clients connect to newer version Version Version One Two • Test versions before opening up to Managed WebLogic Server users Single Java VM

• Rollback to previous versions Test First in Administrative Mode

• Automatic retirement – graceful or timeout

Internal Client Connections

42 HA with Rolling Upgrade Zero Server Infrastructure Downtime Node 1 Node 3 Node Mgr Node Mgr • Upgrade a running cluster with a Managed Server Managed Server patch, maintenance pack, or minor release without shutting down the App 1 App 1 entire cluster Maint Pack x.y Maint Pack x.y

• During the rolling upgrade of a cluster, each server in the cluster is IP individually upgraded and restarted Unicast while the other servers in the cluster continue to host your application Node 3 Node 4 • You can also roll back the patch, Node Mgr Node Mgr maintenance pack, or minor release Managed Server Managed Server in a similar fashion App 1 App 1

Maint Pack x.y Maint Pack x.y

43 Backup and Recovery Certified Solution Based on Disk Replication

• Simple solution based on file Fusion Middleware system copy for middle-tier Oracle Binaries WebLogic Middle Tiers components Exploded Archives • Use RMAN for • Support for online backups • Can integrate with existing Backup/Recovery tools • Can be scheduled through LDAP, Application Application Metadata External Policy, Data Data Files Credential Enterprise Manager or cron Data jobs

Backup Storage

44 Disaster Recovery Disk Replication Certified with Data Guard

Primary Site DNS Standby Site

WebLogic WebLogic Domain Software Binaries Domain Software Binaries ADF ADF ESB Configuration Disk ESB Configuration Replication BPEL Files BPEL Files Web Center Web Center Rules Application Rules Application ESB Code & Patches ESB Code & Patches BPEL BPEL Bus Intelligence Bus Intelligence

Data Guard

45 In-Memory Data Grid Integration

46 ActiveCache Coherence Operations and Administration with WebLogic

• Install integration . Coherence installable as part of WebLogic Server distribution • WebLogic Server and Coherence management integration . Configuration of Coherence clusters from console or WLST . Monitoring of Coherence clusters from console . Lifecycle management for application scoped Coherence clusters . WebLogic Server/Coherence WebLogic Domain logging integration Node Manager • WebLogic Server and Coherence WebLogic Cluster 1 WebLogic Cluster 2 WebLogic+Coherence WebLogic+Coherence runtime integration Storage Disabled 1 Storage Disabled 1 . Programming model integration with WebLogic+Coherence WebLogic+Coherence annotations Storage Disabled 2 Storage Disabled 2 . WebLogic JNDI integration with Common Management, Configuration, Scripting … Coherence Caches Coherence Cluster Coherence Storage Coherence Storage Enabled Cache 1 Enabled Cache 2

47 ActiveCache WebLogic Suite 11g & Coherence * Web

“Standard” WebLogic “Optimized” HTTP Server HTTP session session replication replication option with WebLogic

48 Distributed Level 2 JPA Entity Cache WebLogic Suite 11g & TopLink Grid

1. Queries are performed using JPA em.find(..) or JPQL. 2. A find() will result in a get() on the appropriate Coherence cache. If found, Entity is returned. 3. If get() returns null or query is JPQL, the database is queried with SQL. 4. The queried Entities are put() into Coherence and returned to the application.

49 Write-Behind JPA Entity Caching WebLogic Suite 11g & TopLink Grid

1. An application commits a transaction with new Entities or modifications to existing Entities. 2. EclipseLink put()s all new and updated Entities into Coherence. 3. If a CacheStore is configured, Coherence will synchronously or asynchronously write the changes to the database, depending on configuration.

50 Complete Database Entity Offload WebLogic Suite 11g & TopLink Grid

1. Queries are performed using JPA em.find(..) or JPQL. 2. JQPL will be translated to a Coherence Filter and used to query results from Coherence. A find() will result in a get() on the appropriate Coherence cache. • The database is not queried by EclipseLink. • If Coherence is configured with a CacheLoader then a find() may result in a SELECT, but JQPL will not.

51 Operations & Diagnostics

52 WebLogic Server Management Pack EE Complete management for all WebLogic Servers

• Business Transaction Management – Discovery of transaction flows across the enterprise Development – Leverages transaction content/payload Business Performance for business visibility Transaction & Diagnostics – Exception Management Management • Performance & Diagnostics – Enterprise scale multi-domain management Production Test – Improve performance and availability of Lifecycle Java EE and SOA applications Management • Lifecycle Management – Manage configuration changes – Automated deployment procedures to clone and scale-up applications

53 Operations Configuration Management

WebLogic AdministrativeAS Control EnterpriseGrid Manager Control WLST JMX JMXClient Console (Scripting)asctl Client

Node Manager

Lifecycle Resource Security Web Services Deployment Management Configuration Configuration Management

Workload Monitoring Logging Diagnostics Performance Management

WebLogic Administration Server

54 Operations Online, Offline, Batch Configuration Model

WebLogic Domain

• Cluster configuration Node Manager – Target cluster or individual nodes Administration Server • Lock and edit Cluster 1 Managed Managed Managed – Maintain administrator isolation Server 1 Server 2 Server 2 – Batch update or rollback – Optional developer mode Cluster 2 Managed Managed Managed Server 4 Server 5 Server 6 • Online/offline configuration – Over a thousand parameters can be changed live – Configuration can be changed offline

55 Cluster Deployment Using Standard Clients and Packaging

Java Artifacts – EARs, WARs, RARs JARs JDBC, JMS, WLDF Shared Libraries WebLogic Domain WebLogic Administration Console app1.jar Node Manager app.rar WebLogic Cluster app2.war Java EE EAR File Managed Server 1

weblogic-web.xml Managed weblogic-ejb-jar.xml Server 2 WLST, weblogic.Deployer, Ant & Maevn weblogic.xml JSR 88 Deploy Plan Managed Server 3 Java EE Deployment Deploy to Individual Plan (JSR 88) Nodes or Clusters

Development Tools

56 WebLogic Administration Console Java EE Configuration, Deployment, Cluster Management

57 WebLogic Scale Out with Application Isolation

• Isolation by application by machine WebLogic Domain within domain Machine 1 Machine 2 Machine 3 – Deploy applications to their own servers Managed Server Managed Server Administration – Administration server on its Server App 1 App 2 own server – Each managed server on its Node Mgr Node Mgr Node Mgr own physical server

• Isolation of single application per domain WebLogic Domain – Each application gets its Machine 1 Machine 2 Machine 3 own domain Managed Server Managed Server – Administration server on Administration its own server Server App 1 App 1 – Each managed server on its own physical Node Mgr Node Mgr Node Mgr server

58 WebLogic Scale Out Vertically and Horizontally

• Scale out vertically – Multiple managed servers for each application for WebLogic Domain each machine Machine 1 Machine 2 Machine 3 Managed Server Managed Server Administration • Scale out horizontally Server App 1 App 1 – Multiple machines each with multiple managed App 1 App 1 servers Managed Server Managed Server Node Mgr Node Mgr Node Mgr • Cluster replication scheme considers location in determining secondary servers

59 Automation with Domain Templates

• Configuration Wizard and Domain Template Builder – GUI/scriptable tool to generate templates from existing domains – Scriptable with WLST to clone domains to multiple environments • Fusion Middleware Templates Out of the Box – SOA, WebCenter, Identity …

Env 1 Env 2 Env n Domain Domain Domain Domain Build Template of Domain Managed Managed Managed Managed Server 1 Server 1 Server 1 Server 1 App 1 App 1 App 1 App 1 Res 1 Res 1 Res 1 Res 1

Managed Managed Managed … Managed Server 2 Server 2 Server 2 Server 2 App n App n App n App n Res n Res n Res n Res n Domain Template Builder

60 Lifecycle Management & Operations WebLogic & Coherence Server Lifecycle Management

• Define Coherence and WebLogic clusters using WebLogic Admin Console, WLST and Domain Templates • Easily configure and start Coherence servers and clusters remotely

61 WebLogic Server Diagnostics Enterprise Manager Diagnostics Pack

• Development Staff: JRockit Mission Control – JVM diagnostics for JRockit – Memory, thread, latency analysis – • Operations Staff: Application Diagnostics for Java – JVM Diagnostics for Sun, HP, IB – Memory, thread, latency analysis – From server through to database

• Server Infrastructure: WebLogic Diagnostics Framework – Built into WebLogic Server – Java EE specifics

62 Operations WebLogic Diagnostics/JRockit Flight Recorder Integration

WLDF Propagate Events • JRockit Flight Recorder – Powerful tool for post-incident Trigger analysis Buffer Capture

– Capture events in circular buffer Flight Recording Flight – Low overhead Capture in – Persist buffer to disk WLDF Image – Analyze in JRMC GUI • WLDF acts as event producer WLDF Image JFR File – Events stored in buffer JRMC GUI • WLDF-driven buffer capture – Based on WLDF Watch rules • JFR file in WLDF Image – Integrated snapshot

63 Performance

64 Performance Java App Server Designed to be Tuned for Maximum Performance

DataSource Web Client OHS Servlet EJB Connection Database Pool

Request Connection DB Internal Queues Queue Q Apache HTTP RMI DB Pool Database Listener Listener Listener Mgr Listener

ApacheOHS WebLogicOC4J Server RDBMSRDMS

65 Self Tuning Work Managers: Built-In Self Tuning

Network Socket Handlers (“Muxers”)‏ Self Tuning • Active Thread Pool • Standby • Stuck • Hogging Request Queue

Asynchronously dispatched work 1. Monitor rate of from WebLogic kernel, subsystem, request processing or application 2. Adjust thread pool size accordingly

66 App Server Performance Leadership Continued Focus on Best Results, Lowest Resources

SPECjApp Server Application Server Platform/CPU/Cores Server2004 Date Result Nodes JOPS@Standard SPARC Enterprise T5440 June 28,648 5 World Record, Multi-Node SPARC T5440, 160 cores 2010 Cisco UCS B230 M1 Sept 11,283 2 World Record, Dual Node Xeon 7560, 32 cores 2010 HP ProLiant DL980 G7 Sept 20,092 1 World Record, Single Node Xeon X7560, 64 Cores 2010 HP Proliant BL460c Jan 11,067 3 World Record, Multi-Node RAC Xeon X5570, 24 Cores 2010 Dell PowerEdge R810 May 5,739 1 Best on One Processor Xeon 7560, 16 cores 2010

Best Multi-Node Result Best on RAC Result Best Dual Node Result Best Single Node Result Best on One Processor Result

See: http://www.spec.org/jAppServer2004/results/ 67 JRockit JVM Performance Running on the World’s Fastest Java VM

250000 • Complete implementation of Java – 100% compatible with the Java SE and ”bug 200000

compatible” with the Sun Java implementation 150000 Sun JVM JRockit JVM 100000 • Underpins product bops SPECjbb2005 stack 50000 – One-stop shop for support issues 0 2P Opteron 2220 4P Opteron 885 2P Intel X5355 – Optimized stack Response times (DC1)

140 130 120 • Architected and optimized for server-side 110 100 90 Java 80 70 60 – High Performance 50 40 Response time (ms) Response 30 – Typical benefit is ~20% over Sun Java VM 20 10 based on benchmarking 0 0 200 400 600 800 1000 1200 1400 – Customer feedback & surveys Time (s) JRockit Sun

* Oracle JRockit has been used for all world record SPECjbb2005 publications since Q2 2006. Best results based on Sun, JRockit and IBM as of September 8, 2008 are (bops/bops per JVM): E25K (2105264/29240), SGI Altix 4700 (5180451/80945), IBM Power 595 (3435485/107359). 68 For full details see http://wws.spec.org. SPEC and SPECjbb2005 are trademarks of Standard Performance Evaluation Corporation. JRockit Performance JRockit Real Time: With Near Zero Application Pause Times

• Guaranteed maximum response Traditional Java VM – Stop the World Pauses times – Java EE applications consistently under 100ms pause times – Java SE tuned can be single-digit ms pause times

• Deterministic QoS under heavy load JRockit - < 10 ms Pause – No code re-writes

• Remove weeks of tuning with simple declarative setting – Deterministic setting – Pause time target

69 WebLogic & Exalogic

70 Extreme Java EE Performance The power of the Oracle Exalogic Elastic Cloud

250 450 (Higher is better) 400 (Lower latency is Better) 200 350

300 150 250

Tx/Sec 100 200

150 50 100

50 0 Update Insert Delete 0 CreateWS Purchase Manage Browse Standard WebLogic Server GridLink for Exadata Standard Platform Exalogic 2-3X improvement 60% more Up to 10X faster in Database OLTP Java Operations/sec. response time

– Run-time connection – Enhanced buffer – Cluster IPC load balancing handling for InfiniBand multiplexing over SDP – JDBC over SDP – Optimized multi-core – Scatter-gather IO scheduler

Copyright © 2011 - Proprietary and Confidential 71 InfiniBand Performance Advantage Up to 12x Performance

• Network IO is critical Exalogic Software – #1 limiting factor for application performance and scale • Eliminate buffer copies TCP/IP Sockets – From four to zero Direct Protocol • Use larger packet size to IPoIB reduce network overhead – 64K instead of 4K packets InfiniBand Core • Optimized for InfiniBand Host Channel Adapter – 3x throughput over 10 GbE (Driver) – 50% less latency via native SDP

72 Scatter Gather Input Output with InfiniBand Standard WebLogic WebLogic Server on Exalogic

WebLogic Server WebLogic Server Read/write 4K standalone chunks Read/write collections of 4K chunks 4K 4K 4K 4K 4K 4K 4K 4K

Standard WebLogic WebLogic on Exalogic with standard read write IO withScatter/Gather IO

64K 128K … 1.5K 1.5K 1.5K …

10Gb/s Ethernet with 1.5K 40Gb/s Infiniband with 64K MTU Maximum Transmission (MTU)Size for IPoIB or >=32K MTU for SDP

• Scatter gather input output collects 4K WebLogic chunks into larger collections of chunks • Chunks written onto larger MTU infrastructure of InfiniBand • Instrumental in increasing throughput and reducing latency

73 Self-Tuning Thread Pool Optimized for Exalogic Elastic Cloud Compute Node Processors

WebLogic Server • Thread pool aware Priority Request Queue of processor cores Work Work Work Request Request Request – 2 processors x 6 cores x 2 hyper threads per Self Tuning WebLogic Thread Pool Current Thread Count Adjust by 24 ______core = 24 hardware ______threads ______

• Rapid adjustment to Hotspot or JRockit

varying workloads Operating System

– Optimal adjustment is Exalogic X4170 Compute Node 24 threads per time X86 Dual Processor period 6 Cores per Processor with Hyper-Threading

74 ExaLogic Elastic Cloud Reduced IO Buffer Copying

Sender/Receiver

66% Less Buffer Copies JSP Compiler Uses Byte Buffers instead of static byte arrays Servlet Container

WebLogic Uses Byte Buffers instead of copying

User Space User WebLogic Core into temporary buffers

Uses Byte Buffer-aware streams instead JRockit/HotSpot of Kernel level chunked streams JVM pins WebLogic buffers on heap to avoid copies

Sockets Direct Space Kernel Protocol Reduced copying between user and kernel space

75 ExaLogic Elastic Cloud Optimized State Replication on Exalogic

Standard WebLogic WebLogic on Exalogic

• Single channel state replication per JVM • Multi-channel state replication per JVM • Traditional two way RMI • Optimized one way RMI • Full deserialization on secondary server • Lazy deserialization on second server • State replicated over standard network • State replicated over InfiniBand • Parallel muxer reduces lock contention • Larger packet sizes (>=32K MTU for SDP, versus 1.5K on 10Gb networks) reduces processing overhead • Rapid adjustment to varying workloads (optimal adjustment is 24 threads)

76 WebLogic Server Multi-tenancy in Exalogic Maximum density, manageability, flexibility

Application A Application A

WebLogic WebLogic WebLogic WebLogic WebLogic WebLogic WebLogic Domain Domain Domain Domain Domain Domain Domain A A B C B C D

Partition A Partition B Partition C

Compute Node Compute Node Compute Node Compute Node Compute Node

• Single application • Multiple HA applications or • Multiple • High Availability one composite HA applications • Dedicated CPU/Memory application • Single for maximum performance • Common Level of Service availability • Maximum security (shared CPU, Memory, • Maximum failure unit, security) density

77 Oracle Virtual Assembly Builder Package Complex, Multi-Tier Applications

config1

Oracle Enterprise (Software (Software Library)

config2 Manager Assembly = Appliances (VM Templates + Dev/Test configuration Environment Metadata) + relationships & start order Production Metadata Environments

• Package up complex structure from dev/test and reconstitute in production • Minimize setup time and risk of hard-to-debug configuration errors • Easily replicate in production with minor variations • Each production instance has well-contained configuration parameters for flexibility

78 79