Professional Documents
Culture Documents
2014-08-29
M. Schildmeijer
Whitepaper
Oracle Exalogic FMW Optimization
Inhoudsopgave
1. Preface ................................................................................................................................. 3
2. WebLogic Domain Level ...................................................................................................... 4
2.1 Domain Enhancements .................................................................................................. 4
2.2 JDBC SDP enhancement .............................................................................................. 4
2.3 Using AdminServer VIPS for floating IP ......................................................................... 5
2.4 WebLogic Admin channel over InfiniBand private net .................................................... 5
2.4.1
2.4.2
2.5 Using Embedded Coherence (Several FMW products, SOA suite, IDM) ....................... 7
2.5.1 Configuring Coherence Caches for Dehydrations .................................................... 7
2.5.2 Enabling the property ............................................................................................... 7
2.5.3 Update SOA JVM settings ....................................................................................... 8
2.5.4 Overview of tuning settings ...................................................................................... 8
2.6 Cluster replications ....................................................................................................... 10
2.7. Configure JMS for Exalogic ......................................................................................... 12
2.7.1 JDBC Store ........................................................................................................... 12
2.7.2 JMS and Exalogic .................................................................................................. 12
2.8 Other Considerations .................................................................................................... 13
2.8.1 Hugepages and Transparent HugePages .............................................................. 13
3. Oracle Traffic Director enhancements ................................................................................ 14
1. Preface
For each WebLogic / FMW environment running on Exalogic, some extra optimization work
needs to be done in order to get the biggest benefit in terms of resources and performance
you can get when combining an Exalogic with an Oracle FMW. This whitepaper describes
the different configurations to optimize.
This whitepaper focuses on:
To be set in setDomainEnv
# 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
3. In the JDBC URL, replace TCP protocol with SDP protocol. For example:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=sdp)(HOST=<>)(PORT=1521))(C
ONNECT_DATA=(SERVICE_NAME=<DB Service>)))
By having all these enhanced features, storing JMS artifacts in a JDBC store is more valid
than ever.
We do the same for all managed servers and their listen addresses
Trouble is that we cant access the AdminServer url over IPOIB. For this we create separate
channels.
Also for the managed servers, which have client access, we create channels to connect to
the outside world.
There are several channels to identify:
There are several channels for EoIB interfaces, such as:
AdminServer Network Channel
HTTP and T3 Network Channels
These are needed for internal resources, like AdminServers or to let managed servers
communicate with the outside world.
You must create two network channels for the Administration Server. The network channels
are necessary for routing HTTP traffic and T3 traffic (TCP-based protocol used by WebLogic
Server) coming in from an external data center via Ethernet over InfiniBand (EoIB). You must
create the following network channels:
2.4.1
1.
2.
3.
4.
5. Enter AdminHTTPClient as the name of the new network channel, select http as the
protocol, then click next.
6. Enter the following information in the Network Channel Addressing page:
Listen address: < the EOIB IP address >. This address is the floating IP
assigned to the Administration Server using the BOND<n> interface.
Listen port: 7001
7. Click next, and select Enabled on the Network Channel Properties page and click
Finish.
8. Activate these changes.
2.4.2 T3 Client channels
Repeat the same steps as above but choose T3 as a protocol.
Repeat these steps for all managed servers as well.
Example channels configured in a domain
AdminServer
Managed Servers
When started, you see the several interfaces which are listened to:
Sep 5, 2014 4:49:15 PM CEST> <Notice> <Server> <BEA-002613> <Channel "Default" is
now listening on 192.168.11.26:7001 for protocols iiop, t3, ldap, snmp, http.>
<Sep 5, 2014 4:49:15 PM CEST> <Notice> <Server> <BEA-002613> <Channel
"AdminChannel" is now listening on 10.16.160.21:7001 for protocols t3, http.>
And you still can use the normal AdminServer address to logon, either hostname or Admin
VIP configured.
When you configure Oracle Traffic Director, this should be configured using the IPoIB, in
every other setup you choose the EoIB, but then you miss all IB enhancements.
SOAHOST1-PRIV-V1 is the virtual host name that maps to the virtual IP where WLS_SOA1
is listening (in SOAHOST1), and so on.
2.5.1 Configuring Coherence Caches for Dehydrations
Dehydrations take place in the SOA repository database, but you can use Coherence to
offload this kind of work. If you configure the BPEL engine with the CacheEnabled property,
the engine runs much fewer reads against database. Because many reads require locks and
version checks, eliminating them improves BPEL engine performance. Configuring Oracle
Coherence for dehydration requires the following steps:
2.5.2 Enabling the property
To enable the cache enabled property in SOA, follow these steps:
1. Log in to Oracle Enterprise Manager Fusion Middleware Control
2. Expand Farm_domain_name, SOA, and then right click soa-infra (server_name)
(either one of the servers).
3. Click SOA Administration, and then BPEL Properties.
4. Select More BPEL Configuration properties.
5. Enter CacheEnabled for the property QualityOfService property.
6. Select Apply.
Next, set the required server properties for using in-process coherence cache for
dehydration.
To enable the cache enabled property in SOA:
1. Log into the Administration Console
2. In the Domain Structure window, expand the Environment node.
3. Click Servers.
4. Click the name of the server (WLS_SOA1 or WLS_SOA2, which are represented as
hyperlinks) in the Name column of the table.
5. The settings page for the selected server appears.
6. Click Lock & Edit.
7. Click the Server Start tab.
8. In the Arguments field, add the following for all SOA managed servers
-Dbpel.cache.localStorage=true
-Dbpel.cache.threadCount=20
-Dbpel.cache.cubeInstance.sizeLimit=4g
-Dbpel.cache.invokeMessage.sizeLimit=2g
-Dbpel.cache.deliveryMessage.sizeLimit=2g
-Dbpel.cache.deliverySubscription.sizeLimit=2g
( heapsize used)
Java 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
InfiniBand enabling! IMB driver must be enabled for that. Only for Linux x86- 64 bit platforms.
-Djavax.xml.soap.MessageFactory=oracle.j2ee.ws.saaj.soap.MessageFactoryImpl
-Dweblogic.transaction.blocking.commit=true
-Dweblogic.transaction.blocking.rollback=true
-Djavax.net.ssl.trustStore=<location of your trust store>"
export EXTRA_JAVA_PROPERTIES
EXTRA_JAVA_PROPERTIES="${EXTRA_JAVA_PROPERTIES}
-Dbpel.cache.localStorage=true
-Dbpel.cache.threadCount=20
-Dbpel.cache.cubeInstance.sizeLimit=4g
-Dbpel.cache.invokeMessage.sizeLimit=2g
-Dbpel.cache.deliveryMessage.sizeLimit=2g
-Dbpel.cache.deliverySubscription.sizeLimit=2g"
export EXTRA_JAVA_PROPERTIES
Note that all the values are examples and can differ from your situation. Always measure,
analyze, test and decide!
3.
4.
5.
6.
10
7. Expand Advanced, and select Enable SDP Protocol and click Save.
You must repeat these steps to create a network channel, each for the remaining managed
servers in the SOA_Cluster cluster.
Next you should specify the replication channel to you cluster
1. Click the Replication tab.
2. In the Replication Channel field, ensure that ReplicationChannel is set as the name of
the channel to be used for replication traffic.
3. In the Advanced section, select the Enable One Way RMI for Replication option, and
click save.
4. Activate the changes and restart the managed servers.
5. Add the system property -Djava.net.preferIPv4Stack=true to the start parameters for
the WebLogic servers.
a. In the Domain Structure window, expand the Environment node and click
servers.
b. Click the name of the server.
c. Enter ReplicationChannel as the name of the new network channel and select
t3 as the protocol, then click next.
d. Click the Server Start tab. and add the following for the managed servers into
the Arguments field:
-Djava.net.preferIPv4Stack=true
Note that the domain should be restarted.
See logs, to see if it succeeded.
<Sep 5, 2014 5:53:16 PM CEST> <Notice> <Server> <BEA-002613> <Channel
"SOAReplChannel{4}" is now listening on 192.168.11.26:8009 for protocols t3,
CLUSTER-BROADCAST, http using SDP for I/O.>
11
Ensure that the JDBC data source used for the database work exists on the same
server instance as the JMS destinationthe transaction will still be two-phase, but it
will be handled with less network overhead.
Configure multiple services to share the same store if they will commonly be invoked
within the same transaction.
Do no use the XA driver for the JDBC Store, because the JMS infrastructure of
WebLogic itself is fully equipped for XA
JMS often executes direct database operations to invoke its store services within the
same transaction, so using a JDBC data source with Logging Last Resource (LLR)
might be a good option. It will do two-phase commit in a single local transaction DB
operation, this improves the overall transaction performance.
12
13
Network topology
Segregations of duties and tasks rolled out over several departments, or done by one
department overall? Who takes care of what? (Cloud Infrastructure team, Middleware
Team, all by one DevOps team)
Other solutions than those provided by Oracle (3rd party WebTiers, hardware
loadbalancers)
Besides the common steps to take in order to use Oracle Traffic Director, there are some
specific topics to address. These will be covered in a separate whitepaper.
14