oracle soa suite and coherence dehydration
TRANSCRIPT
Extreme performance with Oracle
SOA Suite 12.2, Coherence and
Exalogic
Helsinki, Wednesday , May 17, 2017
By Michel Schildmeijer,
Speaker and Contents
• Michel Schildmeijer, Oracle ACE• 17 years WebLogic, Middleware, Integration
Contents:• Dehydration on SOA, what is it?
• How configure Oracle SOA Suite for Exalogic
• SOA and Coherence□ How can SOA make use of coherence for dehydration?
19-5-2017Ruimte voor voettekst2
The case
• A credit insurance company
• Lot’s of initiatives to transform to new technology
• Key platform was the “Blue Stack”
• Current Oracle Fusion Middleware Platform on conventional hardware
19-5-2017Ruimte voor voettekst3
First: Generic Migration Plan
19-5-20174
Period 1 Period 2 Period 3 Period 4
<nn> weeks <nn> weeks <nn> weeks
Inventory & Design
Develop, Deploy, Build
Rollout & TestRollout & Test
Oracle Fusion Middleware 12c Migration Path
Operational Ready & LiveOperational Ready & Live
<nn> weeks
Pre-analysis Upgrade SOA 11g to 12c
• Pre-analysis for upgrade areas of complexity:
□ Use custom DB scripts for purge, partitioning
□ Custom code using SOA locator APIs
□ Significant performance tuning in 11g?
□ Long running Instances?
19-5-2017Redesign & Rebuild5
19-5-2017Ruimte voor voettekst6
SOA logical landscape
Process Services
Orchestration
System BPM
Business Logic
Databases
Data Services
Enterprise Service Bus (ESB)
Systems of Record
Web Portals
Human Business Process Management (BPM)
Security
Regis
try a
nd R
epository
Manage a
nd m
onitor
Choice: In place upgrade SOA 11g to 12c
19-5-20177
Chosen: Side by side Upgrade SOA 11g to 12c
• New build domain configuration
• Deploy composites after upgrade
• Not for long-running instances
19-5-2017Redesign & Rebuild8
19-5-2017Ruimte voor voettekst9
SOA Infrastructure PlatformSOA Infrastructure Platform
WebLogic Server
Managed Server(S)
Java EE deployed Apps forSOA
Webapps
EJB/MDB
RAR
Software & Config files
Oracle Linux
SOA WebLogic Cluster
Operating System
Installation & Config
Domain Configuration
JDBC
JMS
HTTP(S)
JMX
Side by side Upgrade SOA 11g to 12c
19-5-2017Redesign & Rebuild10
Dehydration of SOA Suite, what is it?
• Statelessness - Services minimize resource consumption by deferring the management of state information when necessary
• State is maintained and offloaded in a dehydration store
• An instance is created every time a new inbound call arrives
• Every important step is maintained using a dehydration point
19-5-2017Ruimte voor voettekst11
Why Dehydration?
• Long running instances waiting for response consumes memory and CPU
• While waiting for the response the bpel engine can store the process, thus freeing up server resources.
• Over the life cycle of the BPEL instance, the instance with the current state of execution may be saved in database.
19-5-2017Ruimte voor voettekst12
Dehydration continued
• Storing status of BPEL process(long running process, asynchronous process) into database tables
• SOA_INFRA schema is the dehydration store contains tables to hold the meta data of the process.
• Synchronous Process□ Process gets dehydrated only at the end of the process.□ Using Dehydrate activity we can explicitly dehydrate
process state if required.• Asynchronous Process
□ Automatically dehydrated the process based on the activities used.
19-5-2017Ruimte voor voettekst13
Dehydration store tables
• Cube_Instance: Stores the information about the composite instance that gets created.
• Cube_scope: Stores information about the scopes and variables declared and used.
• DLV_Message: All the incoming payload details are stored.
• Invoke_Message: All the outgoing message payload details are stored.
• Audit_Trail: Used to store information xml rendered in EM console.
19-5-2017Ruimte voor voettekst14
19-5-2017Ruimte voor voettekst15
•Transaction speeds are constrained by database I/O at dehydration points
•Persisting state and flow data cause substantial database growth
•Purging database at regular intervals is a mandatory operational overhead
Oracle Confidential – Internal/Restricted/Highly Restricted16
Challenges
A possible Solution
• Choice to persist flow and instance data only for faulted transactions
• Coherence cache for running transactions (flow trace, BPEL
state, audit trail and payloads)
• Tracks and updates already persisted transactions
• Choice to defer writing to a database - update in batches
• Configurable write behind thread
• Metrics to track and evaluate state of transactions
19-5-2017Ruimte voor voettekst18
But first
• Design a SOA Suite infrastructure which makes use of:
□ Extreme performance features□ Stable and solid solution architecture□ Exalogic network capabilities
19-5-2017Ruimte voor voettekst19
19-5-2017Ruimte voor voettekst20
Exalogic X5-2 Converged Infrastructure
� Integrated Network Attached Storage� ZFS Clustered for high availability� 80 TB SAS disk, 6,4 TB read cache, 800
GB write cache� Clones, snapshots, remote replication
Integrated Storage
� 40 Gb/sec internal I/O backplane� 10 Gigabit Ethernet connectivity to
datacenter
Internal I/O Fabric and Data Center Conn.
� 2 socket, 8-core, 2.9 GHz Intel Xeon processors
� 7.5 TB of DRAM� 1080 cores in a Full Rack; also available in
1/2,1/4,1/8 or multi-rack configurations� Redundant SSD, power, cooling,
InfiniBand
Compute Power
Different
Vendors
across the
stack
Integrated
Tuned
Optimized
Consolidated
Application
Platform
Layer
Compute
Layer
Storage
Layer
I/O Layer
OS Layer
HP Blades
HP Storage
HP Networking
150+ partsMonths from start to finish before
its ready for production
1 Engineered SystemUnpack and ready for production
“in one day”
Building BlocksEngineered versus “common stack”
5/19/201723
• The “Magic” Switch
WebLogic boost
5/19/201724
• WebLogic Exalogic Domain Enhancements
• -Dweblogic.ScatteredReadsEnabled &
-Dweblogic.GatheredWritesEnabled
• Better I/O in high network volume environments
• Uses Native IO Socket Channels optimized
• -Dweblogic.replication.enableLazyDeserialization
• Clustered session replication
WebLogic boost
5/19/201725
WebLogic boost
• # Enable Java Exalogic optimizations
EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES}
-Xlargepages:exitOnFailure=false -
Doracle.xdkjava.exalogic.optimization=true
-Dweblogic.ScatteredReadsEnabled=true
-Dweblogic.GatheredWritesEnabled=true
-
Dweblogic.replication.enableLazyDeserialization=true
"
export EXTRA_JAVA_PROPERTIES
More optimizations
• Optimal use of Infiniband
• Clusters and channels
• Oracle Traffic Director
• SOA Suite and Coherence
Optimal use of Infiniband
• Because of high speed IB network we could
• Store all persistency in database
• JMS TLogs
• JMS FileStores
Optimal use of Infiniband
JDBC GridLink over Infiniband
• jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROT
OCOL=tcp)(HOST=<IBVIP>)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=<DB Service>)))
• JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.net.preferIPv4Stack=true -Doracle.net.SDP=true"
setDomainEnvsetDomainEnv
JDBCJDBC
WebLogic Channels
5/19/201731
5/19/201732
WebLogic Channels
Several channels to define
• WebLogic Admin Channel. • This is the default channel to be used by the
AdminServer.
• Internal network channels for HTTP and T3 (Cluster, Coherence, OTD)• These channels are used for internal traffic:
• Cluster communication• Application High Availability and Serialization• Application caching with Coherence
• External network channels for SOA
JMS Messaging Optimization
• The way message are temporary stored, compressed and decompressed can be set with these optimizations
• JMS Lockless Request Manager.
• A specific WebLogic JMS MBean must be set for using concurrent messaging for JMS queue
JMS Messaging Optimization
• The way message are temporary stored, compressed and decompressed can be set with these optimizations
• JMS Lockless Request Manager.
• A specific WebLogic JMS MBean must be set for using concurrent messaging for JMS queue
ServerMBean.useConcurrentQueueForRequestManager=true
SOA and Coherence
• Coherence in JVM or separate coherence cluster
• Coherence cluster needs own JVMs
• Coherence WKA addresses use over Infiniband
-Dtangosol.coherence.wka1=(IPoIB adresslocalhost)-Dtangosol.coherence.wka2=(IPoIBadress1)-Dtangosol.coherence.localhost=(IPoIBadress2)
SOA and Coherence
• Coherence integrate with SOA Suite:• Activation of Coherence Adapter
SOA and Coherence
• Coherence
Configurations:
• file adapter-soa-config.xml
• New EIS Adapter
SOA and Coherence
SOA and Coherence
• Test Coherence Adapter:
• WSDL call a different adapter reference for each operation.
• Put (Put item in cache),
• Get (Get item from cache),
• Remove (Remove item from cache) or
• Query (Query item from cache),
• list – retrieve all the objects in the cache. listKeys– retrieve all the keys of the objects in the cache;
• removeAll – remove all the objects from the cache.
5/19/201741
5/19/201742
5/19/201743
5/19/201744
SOA BPEL and Coherence
• Some specific settings set in JVM for Coherence:EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES}
-Dsoa.archives.dir=${SOA_ORACLE_HOME}/soa
-Dsoa.oracle.home=${SOA_ORACLE_HOME}
-Dsoa.instance.home=${DOMAIN_HOME}
-Dtangosol.coherence.log=jdk
• Transport optimization-Dtangosol.coherence.transport.reliable=imb -
Djavax.xml.soap.MessageFactory=oracle.j2ee.ws.saaj.soap.MessageFactoryImpl
• Take the database role in committing and rollback -Dweblogic.transaction.blocking.commit=true
-Dweblogic.transaction.blocking.rollback=true
SOA BPEL and Coherence
• Some specific settings for SOA:
• CacheEnabled=true
• -Dbpel.cache.localStorage=true
• -Dbpel.cache.threadCount=<value>
• -Dbpel.cache.cubeInstance.sizeLimit=<value>
• -Dbpel.cache.invokeMessage.sizeLimit=<value>
• -Dbpel.cache.deliveryMessage.sizeLimit=<value>
• -Dbpel.cache.deliverySubscription.sizeLimit=<value>
Note that all settings relate to some form of dehydration
The benefits
• Minimize database traffic by using coherence cache
• Regulate amount of dehydrations to the database
• Use ZFS storage, high speed with Infiniband
• Besides all the Exalogic benefits, also to be used on non Exalogic hardware
Any Questions?Let’s keep in touch!!
The ACE Community
https://community.oracle.com/blogs/mnemonic
https://www.qualogy.com/nl/techblog/author/michel-schildmeijer
Any Questions?
Let’s keep in touch!!
@MNEMONIC01@Qualogy_news
nl.linkedin.com/in/mschldmr