Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Application Development for IBM WebSphere Process Server 7 and Enterprise Service Bus 7

You're reading from   Application Development for IBM WebSphere Process Server 7 and Enterprise Service Bus 7 A Service Oriented Architecture approach has many benefits for your applications, including flexibility, reusability, and increased revenue. You can exploit those benefits to the fullest by following this step-by-step tutorial for WPS and WESB.

Arrow left icon
Product type Paperback
Published in Jul 2010
Publisher Packt
ISBN-13 9781847198280
Length 548 pages
Edition 1st Edition
Languages
Arrow right icon
Toc

Table of Contents (20) Chapters Close

Application Development for IBM WebSphere Process Server 7 and Enterprise Service Bus 7
Credits
About the Authors
About the Reviewers
Preface
1. Introducing IBM BPM and ESB FREE CHAPTER 2. Installing the Development Environment 3. Building your Hello Process Project 4. Building Your Hello Mediation Project 5. Business Process Choreography Fundamentals 6. Mediations Fundamentals 7. Sales Fulfillment Application for JungleSea Inc. 8. Walk the Talk 9. Building the Order Handling Processes 10. Integration with Various Applications 11. Business Space 12. Deployment Topologies 13. Management, Monitoring, and Security WID, WPS, and WESB Tips, Tricks, and Pointers Index

Some performance tips and considerations


While the question is a simple one, the answer itself is not. Every customer is unique including the physical topology, network topology, requirements, needs, and other application and hardware that make up the ecosystem. Performance tuning is a personalized exercise that is done uniquely with and for the customer. As mentioned several times, WPS and WESB are built on the core capabilities of the WebSphere Application Server infrastructure. Hence solutions built using WPS and WESB also benefit from tuning, configuration, and best practices information for WAS and the corresponding platform JVMs. However, having said this, here are some tips, considerations, and areas to look into for performance improvements:

  • Use Microflows wherever possible instead of long-running processes.

  • Use a high-performance disk subsystem.

  • Use DB2 instead of the default Derby DBMS. DB2 is a high-performing, industrial strength database designed to handle high levels of throughput and concurrency, scale well, and deliver excellent response time.

  • Disable tracing and monitoring; use this wisely.

  • Configure thread and connection pools to enable sufficient concurrency.

  • Avoid unnecessary usages of asynchronous invocations.

  • Use events (CBE) with judgment, since it uses a persistence mechanism.

  • BPC DB2 Database Tuning:

    • Avoid RUNSTATS on empty tables.

    • Separate the logfiles from the data, put them on their own volumes.

    • Large enough space allocation for logfiles and the log buffer.

    • Make the buffer pool big enough to avoid disk I/O.

    • Set only the monitor switches that are really needed to on.

    • Update optimizer statistics (RUNSTATS) to avoid deadlocks.

  • The throughput of the services you build on WPS and WESB will be limited by the external applications and services it will have to invoke which may have a lowest throughput capacity. Design your system taking into consideration these bottlenecks.

  • For large object (over 5 MB in general) processing consider batch patterns by splitting the large objects as multiple small objects.

  • Consider moving to a 64-bit mode (for server runtime) for applications that are well behaved and liveset exceeds 32-bit memory limitations.

  • Cache results of ServiceManager.locateService() in your Java code.

  • Use synchronous SCA bindings across local modules, since this binding has been optimized for module locality and will outperform other bindings.

  • Do not apply a QoS qualifier at the interface level if it is not needed for all operations of the interface.

  • When designing long-running business process components, ensure that callers of a two-way (request/response) interface do not use synchronous semantics, as this ties up the caller's resources (thread, transaction, and so on) until the process completes. Instead, such processes should either be invoked asynchronously, or through a one-way synchronous call, where no response is expected.

  • Minimize number and size of BPEL variables declared and business objects because each commit saves modified variables to the database.

  • The throughput is inversely related to the number of transaction boundaries traversed in the scenario, so fewer transactions are faster.

  • In an SCA assembly, we recommend using the SCA transactional qualifiers to reduce transaction boundaries. For any pair of components where this is desired, we recommend using the following golden path:

    • SuspendTransaction=false, for the calling component's reference

    • joinTransaction=true, for the called component's interface

    • Transaction=any|global, for both components implementation

  • Components and modules can be wired to each other either synchronously or asynchronously. The choice of interaction style, especially choosing an asynchronous style, can have a profound impact on performance. Use asynchronous style only when needed. Set the preferred interaction style to Sync whenever possible.

  • Avoid asynchronous invocation of synchronous services in a fan-out/fan-in block.

  • There are three categories of Mediation primitives in WebSphere ESB that benefit to a greater or lesser degree from these internal optimizations:

    • Category 1 (greatest benefit):

      • Route on message header (message filter primitive)

      • XSLT primitive (transforming on /body as the root)

      • Endpoint Lookup without XPath user properties

      • Event emitter (CBE header only)

    • Category 2 (medium benefit):

      • Route on message body (message filter primitive)

    • Category 3 (lowest benefit):

      • Custom Mediation

      • Database lookup

      • Message Element Setter

      • Business Object (BO) mapper

      • Fan-out

      • Fan-in

      • Set message type

      • Message Logger

      • Event Emitter (except for CBE header only)

      • Endpoint Lookup utilising XPath user properties

      • XSLT Primitive (with a non /body root)

  • XSLT and BO Maps—In a mediation flow that is eligible for deferred parsing, the XSLT primitive gives better performance than the BO Map primitive. However, in a mediation flow where the message is already being parsed, the BO Map primitive gives better performance than the XSLT primitive. Note that if you are transforming from the root (/), then the Business Object map will always perform better.

  • Do not run the production server in development mode or with development profile.

  • Do not use the UTE for performance measurement.

  • Use query tables to optimize query response time.

  • Place database logfiles on a fast disk subsystem.

  • WID performance considerations:

    • Opt for a faster and high speed disk drive

    • Defragment the drive periodically

    • Make use of shared libraries in order to reduce memory consumption

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image