Überleben im OSB/SOA-Dschungel - PDF


Please download to get full document.

View again

of 54
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.


Publish on:

Views: 10 | Pages: 54

Extension: PDF | Download: 0

Daniel Joray BASEL BERN BRUGG GENF LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN KOPENHAGEN Unser Unternehmen Trivadis ist führend bei der IT-Beratung, der Systemintegration, dem Solution-Engineering und der Erbringung von IT-Services mit Fokussierung auf und Technologien im D-A-CH-Raum. Unsere Leistungen erbringen wir aus den strategischen Geschäftsfeldern: B E T R I E B Trivadis Services übernimmt den korrespondierenden Betrieb Ihrer IT Systeme. 2 Trivadis das Unternehmen Mit über 600 IT- und Fachexperten bei Ihnen vor Ort Hamburg 12 Trivadis Niederlassungen mit über 600 Mitarbeitenden 200 Service Level Agreements Düsseldorf Frankfurt Stuttgart Freiburg München Basel Brugg Bern Zürich Lausanne Wien Mehr als 4'000 Trainingsteilnehmer Forschungs- und Entwicklungsbudget: CHF 5.0 Mio. / EUR 4.0 Mio. Finanziell unabhängig und nachhaltig profitabel Erfahrung aus mehr als 1'900 Projekten pro Jahr bei über 800 Kunden Trivadis das Unternehmen Stand 12/2013 Trivadis an der DOAG Ebene 3 - gleich neben der Rolltreppe Wir freuen uns auf Ihren Besuch. Denn mit Trivadis gewinnen Sie immer. Trivadis das Unternehmen AGENDA 1. SOA & OSB Project 2. Installation 3. WLS Domain Configuration 4. OSB Cluster 5. SOA Cluster 6. SOA Schema 7. Testing 8. Tools 9. Summary About SOA & OSB SOA & OSB Project General The Oracle SOA Suite is a comprehensive, standards-based software suite to build, deploy and manage integration following the concepts of service-oriented architecture(soa) The Oracle Service Bus is an enterprise service bus (ESB) that provides the key virtualization layer required for any sustainable integration architecture SOA & OSB Project Focus External hosted appliations can execute SOA requests to the main appplication The internal GUI application should use the same services to retrieve the data. Authentication is done before in a secure zone - a token is delivered with the request Coherence will be use to Cache Data between the OSB, SOA and GUI components SOA & OSB Project Requirements Application should be high available Application should support 200 requests per second 98% transactions should be faster than 600 milliseconds Database Size is about 1 TB The Application should deliver data to subsystems e.g. for a batch job SOA & OSB Project The Architecture SOA & OSB Project Lessons learned In the next slides, you will see our lessons learned Installation Installation - General Use distinct middleware home for SOA and for OSB. Use always the last patch set Install your own JDK, don t use the system JDK In this project, we got better performance with Oracle JDK as with JRockit Installation Patching Install the last patch set and PSU in comparison with the base version Patch : OSB Bundle Patch fix 118 bugs Patch : SOA Bundle Patch fix 768 bugs Patch : SU Patch [EJUW]: WLS PATCH SET UPDATE fix more than 700 bugs Nobody will spend time for upgrade in a project phase, but this is very important to plan updates regularly in the project Use a recent JDK compatible with your middleware version After each patch, regression testing must be done WebLogic Domain Configuration WLS Domain Configuration General Create your domain in Production Mode to maximize performance For performance testing and production environments, consider using the lowest acceptable logging level, such as ERROR or WARNING whenever possible Consider turning off the HTTP access logging If You use non-persistent JMS scenarios, explicitly turn off persistence at the JMS server level - for persistent JMS scenarios you can use file store or JDBC store If there are multiple JMS servers involved, create each JMS store on a separate disk to lower I/O contention WLS Domain Configuration JVM Memory The out-of the box JVM configuration provided by the default installation of OSB, SOA or WebLogic Domain is probably not optimal for your application (-Xms512m Xmx1024m) Not only the Heap Size should be tuned, take care for the ratio between Young and Tenured Verify the Garbage Collection algorithm Sample of the memory argument from the OSB Managed Server -Xms8192M -Xmx8192M -XX:+UseParNewGC - XX:+UseConcMarkSweepGC -XX:NewSize=4096m - XX:MaxNewSize=4096m -XX:SurvivorRatio=6 - XX:TargetSurvivorRatio=90 -XX:PermSize=512m - XX:MaxPermSize=768m -XX:ReservedCodeCacheSize=120m WLS Domain Configuration Connection Pools Configure the Connection Pools Ensure that the connection pool has enough free connections. Set Initial Capacity and Minimum Capacity to the same value Disable unnecessary connection testing and profiling Enabling Data Source Statement Caching Take care with the Option Wrap datatypes and DB Adapter WLS Domain Configuration TCP The Accept Backlog parameter specifies how many Transmission Control Protocol (TCP) connections can be buffered in a wait queue. Tune the Default Work Manager. The Default WorkManager is used to handle thread management and perform self-tuning. -DWebLogicic.threadpool.MinPoolSize=100 -DWebLogicic.threadpool.MaxPoolSize=250 WLS Domain Configuration Work Manager For OSB you can create Work Manager in the WebLogic Domain WLS Domain Configuration Time Zone / Archiving Force WLS to use the right time zone -Duser.timezone=Europe/Zurich Set Configuration Archive Enable on True and set the Archive Configuration parameter WLS Domain Configuration Cluster or not Cluster If your system must be permanently available, it is best to define a cluster configuration type from the beginning of your project SOA and OSB environments are extremely slow to start (several minutes) which makes them unusable failover type configuration A cluster type of configuration is easily modified to accept more load depending on demand. For SOA and OSB cluster configurations are robust even under high load variation or if some managed server are not available WLS Domain Configuration Oracle HTTP Server If you use mod_wl_ohs from the Oracle HTTP Server or mod_wl for Apache, set the parameter WebLogic Plug-In Enabled to true OSB Cluster OSB Cluster Proxy Service Caching Oracle Service Bus 11g provides built-in cache for proxy services may help throughput (Compiled Proxy Cache ) This cache management use algorithm (LRU) The default value is 100 and can be increased for large number of proxy services If you deploy a large numbers of services in your OSB, you should increase the size of this cache -Dcom.bea.wli.sb.pipeline.RouterRuntimeCache.size=700 -Dcom.bea.wli.sb.pipeline.RouterRuntimeCache.preload=true OSB Cluster Result Caching (1) For result caching, OSB provides built-in cache functionality that uses Oracle Coherence Per default, the Coherence Cache is part of the OSB Managed Server OSB Cache Configuration is located unter $DOMAIN_HOME/config/osb/coherence/ Coherence Cache Configration is defined in file osb-coherencecache-config.xml Coherence Network Configuration is define in file osb-coherenceoverride.xml If you want no spend OSB JVM Memory for the cache, you can configure external Coherence Server and change the local storage for each cache OSB Cluster Result Caching (2) Result caching definition is done on service level You can enable or disable result caching for the OSB Domain in the console OSB Cluster Load Balancing Outgoing Request (HTTP) Specify Load Balancing Algorithm and list of Endpoint URIs 3 settings that help with endpoint failures Retry Count - Retry Iteration Interval - Retry Application Errors You can use an external load balancer OSB Cluster Load Balancing Outgoing Request (JMS) For JMS you have the same possibilities, but the syntax is a quite different SOA Cluster SOA Cluster Post Configuration (1) Oracle SOA Suite 11g use an embedded Coherence cache to coordinate several cluster-wide activities including composite deployment By default, this embedded Coherence cache is configured for multicast node discovery To allow the communication between the coherence cache members, you should add in the setdomain.sh/cmd these properties In setdomain from Managed Server 1 -Dtangosol.coherence.wka1= ServerName1 -Dtangosol.coherence.wka2= ServerName2 -Dtangosol.coherence.localhost= ServerName1 In setdomain from Managed Server 2 -Dtangosol.coherence.wka1= ServerName1 -Dtangosol.coherence.wka2= ServerName2 -Dtangosol.coherence.localhost= ServerName2 SOA Cluster Post Configuration (2) Configure the Java Object Cache (JOC) procedure is optional, but increases the performance of Oracle WSM by keeping a local cache instead of having to search for a cache. $JAVA_HOME/bin/java weblogic.wlst $MW_HOME/oracle_common/bin/configure-joc.py Perform the 'soa-createudd.py' to create the JMS Cluster $JAVA_HOME/bin/java weblogic.wlst $ORACLE_HOME/bin/soacreateUDD.py --domain_home $DOMAIN_HOME --soacluster soacluster SOA Cluster Common Properties The Audit Level property enables you to select the level of information to be collected by the message tracking infrastructure (None, Production, Development) Don t forget to turn off the Payload Validation at SOA Infra Properties, if you don t need validation at this level. This increases the performance of the SOA Suite to greater extent. Major Improvements are guaranteed. SOA Cluster Common Properties More SOA Infra Advanced Configuration Properties... this link gives you access to the soa-infra MBEAN Configure the same value for all SOA Server You can use WLST Scripts to make change SOA Cluster BPEL/BPMN Engine Level Properties The BPEL thread pool implementation notifies the threads when a message has been enqueued It ensures the appropriate number of threads are instantiated in the pool Verify Parameter dspsystemthreads dspinvokethreads dspenginethreads largedocumentthreshold SOA Cluster Mediator Engine Level Properties Mediator is a component of Oracle SOA that provides mediation capabilities like selective routing, transformation and validation capabilities Verify Parameter metricslevel Parallel Worker Threads (DeferredWorkerThreadCount) Parellel Maximum Rows Retrieved (DeferredMaxRowsRetrieved) Parallel Locker Thread Sleep (DeferredLockerThreadSleep) SOA Schema SOA Schema Database Purging (1) The SOA schema has one of the biggest impact on the SOA business application Impact on performance of SQL query runtime Impact on asynchronous routing rules and asynchronous BPEL processes It slows down the console access when querying for auditing data Purging data needs database performance - do it in the general maintenance window If retention periods are defined too long, larger disk space is required BLOB column tables are growing fast SOA Schema Optimizing Consider using hash partitioning on your tables and indexes Check for missing indexes High CPU Usage in SOA due to Full Table Scan (Doc ID ) Don t let your SOA Composite instance grow exponentially Define rules to keep the house clean, purge the instances at regular interval to obtain better performance from BPEL engine and Enterprise Manager SOA Schema Purge Script (1) Composite instances using the SOA Suite Service Engines (BPEL, mediator, rules, BPM, etc.) are writing data to tables residing within the SOAINFRA schema Oracle provides a purge script to delete instances that are no longer required using stored procedures that are provided with Oracle SOA Suite out of the box This purge script will delete composite instances that are in the following states: Completed, Faulted, Terminated by user, Stale, Unknown This purge script will NOT delete composite instances that are in the following states: Running (in-flight), Suspended, Pending Recovery SOA Schema Purge Script (2) There are two options for running the purge script: Looped Parallel Basically the soa.delete_instance uses five parameters Parameter min_creation_date max_creation_date batch_size max_runtime retention_period Description Beginning creation date for the composite instances. Ending creation date for the composite instances. Batch size used to loop the purge. The default value is Expiration at which the purge script exits the loop. The default value is 60. This value is specified in minutes. Retention period is only used by the BPEL process service engine SOA Schema Package Package soa.delete_instances DECLARE max_creation_date timestamp; min_creation_date timestamp; batch_size integer; max_runtime integer; retention_period timestamp; BEGIN min_creation_date := to_timestamp(' ','yyyy-mm-dd'); max_creation_date := to_timestamp(' ','yyyy-mm-dd'); max_runtime := 60; retention_period := to_timestamp(' ','yyyy-mm-dd'); batch_size := 10000; soa.delete_instances( min_creation_date = min_creation_date, max_creation_date = max_creation_date, batch_size = batch_size, max_runtime = max_runtime, retention_period = retention_period); END; / Testing Testing - General Performance optimization for a SOA Suite application is a real challenge A large number of components are involved in each request Each component (JVM, DB, OSB, SOA, Network) has to be optimized separately To ensure that parameter changes have the desired effect, it is necessary to repeat the same tests under the same conditions several times Maybe this change may have negative effects on other parts of the application Test cases must represent reality, use actual test data The end scenarios is a representative mixture of all application services Testing Divide and Conquer For each service, it is necessary to develop automatic test scenarios which can be repeated for several times For each scenario it is necessary to define The expected response time The number of requests that this service can be called per second The expected response values In reality, some query will be go wrong, it is important that this type of queries are integrated in your test scenarios too (error handling) During testing, don t forget to check the log files Use SoapUI, LoadUI, Jmeter or whatever you want, each tool has his own advantages the mesure key is the driver Testing Verify your Test Runs Start a test is one thing, optimize the system is another For each component type, there are many specific tools to perform these measurements JVM - jconsole, jvisualvm, jmc (Java Mission Control), DomainHealth WLST, Enterprise Could Control, Domain - DomainHealth, WLST, Enterprise Could Control, SOA - DMS Spy, WLST, But only a few tools give you the possibility to see your complete environment in the same application E2E EM12c Could Control, Dynatrace, AppDynamics Tools Tools Dynatrace (1) Real End-to-End Monitoring A deep dive in the application code Haben Sie Ihre WebLogic Umgebung im Griff Tools Dynatrace (2) You can see in detail where your application spends time Haben Sie Ihre WebLogic Umgebung im Griff Tools Dynatrace (3) The PurePath functions allows you to see the true transaction level detail, all the time Haben Sie Ihre WebLogic Umgebung im Griff Tools Dynatrace (4) See the database calls, code included Search for the hostpot Haben Sie Ihre WebLogic Umgebung im Griff Summay Summary Each components from a SOA Suite should be tuned separately Do to this, you need automated test scenarios To tune an application, you must understand how it works, speak with your developers, eat with them, go to beer with them To optimize the right parameters, you need to understand what represents the measured value Application Optimization is a permanent job - it must be started from the beginning of zthe development This is as much an art as it is a science. (John Mounjoy, WebLogic The Definitive Guide) Fragen und Antworten... Daniel Joray Principal Consultant Tel BASEL BERN BRUGG GENF LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN KOPENHAGEN Haben Sie Ihre WebLogic Umgebung im Griff
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks