+ All Categories
Home > Documents > TIBCO MDM · † TIBCO MDM Installation and Configuration: Read this manual for instructions on...

TIBCO MDM · † TIBCO MDM Installation and Configuration: Read this manual for instructions on...

Date post: 08-Feb-2021
Category:
Upload: others
View: 7 times
Download: 0 times
Share this document with a friend
96
TIBCO ® MDM Performance Tuning Guide Software Release 8.3.2 October 2014 Two-Second Advantage ®
Transcript
  • Two-Second Adv

    TIBCO® MDM

    Performance Tuning GuideSoftware Release 8.3.2October 2014

    antage®

  • Important Information

    SOMETIBCOSOFTWAREEMBEDSORBUNDLESOTHERTIBCOSOFTWARE.USEOFSUCHEMBEDDEDORBUNDLEDTIBCOSOFTWAREISSOLELYTOENABLETHEFUNCTIONALITY(ORPROVIDELIMITEDADD-ON FUNCTIONALITY) OF THE LICENSED TIBCO SOFTWARE. THE EMBEDDED OR BUNDLEDSOFTWARE IS NOT LICENSED TO BE USED OR ACCESSED BY ANY OTHER TIBCO SOFTWARE OR FORANY OTHER PURPOSE.

    USEOFTIBCOSOFTWAREANDTHISDOCUMENTISSUBJECTTOTHETERMSANDCONDITIONSOFALICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTED SOFTWARE LICENSEAGREEMENT, OR, IF THERE IS NO SUCH SEPARATE AGREEMENT, THE CLICKWRAP END USERLICENSE AGREEMENT WHICH IS DISPLAYED DURING DOWNLOAD OR INSTALLATION OF THESOFTWARE(ANDWHICHISDUPLICATEDINTHELICENSEFILE)ORIFTHEREISNOSUCHSOFTWARELICENSE AGREEMENT OR CLICKWRAP END USER LICENSE AGREEMENT, THE LICENSE(S) LOCATEDINTHE“LICENSE”FILE(S)OFTHESOFTWARE.USEOFTHISDOCUMENTISSUBJECTTOTHOSETERMSAND CONDITIONS, AND YOUR USE HEREOF SHALL CONSTITUTE ACCEPTANCE OF AND ANAGREEMENT TO BE BOUND BY THE SAME.

    This document contains confidential information that is subject to U.S. and international copyright laws andtreaties. No part of this document may be reproduced in any form without the written authorization of TIBCOSoftware Inc.

    TIBCO, Two-Second Advantage, TIBCO Hawk, TIBCO Rendezvous, TIBCO Runtime Agent, TIBCOActiveMatrix BusinessWorks, TIBCO Administrator, TIBCO Designer, TIBCO ActiveMatrix Service Gateway,TIBCO BusinessEvents, TIBCO BusinessConnect, and TIBCO BusinessConnect Trading CommunityManagement are either registered trademarks or trademarks of TIBCO Software Inc. in the United States and/orother countries.

    Enterprise Java Beans (EJB), Java Platform Enterprise Edition (Java EE), Java 2 Platform Enterprise Edition(J2EE), and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle Corporationin the U.S. and other countries.

    All other product and company names and marks mentioned in this document are the property of theirrespective owners and are mentioned for identification purposes only.

    THIS SOFTWARE MAY BE AVAILABLE ON MULTIPLE OPERATING SYSTEMS. HOWEVER, NOT ALLOPERATINGSYSTEMPLATFORMSFORASPECIFICSOFTWAREVERSIONARERELEASEDATTHESAMETIME. SEE THE README FILE FOR THE AVAILABILITY OF THIS SOFTWARE VERSION ON A SPECIFICOPERATING SYSTEM PLATFORM.

    THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS ORIMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.

    THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS.CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BEINCORPORATED IN NEW EDITIONS OF THIS DOCUMENT. TIBCO SOFTWARE INC. MAY MAKEIMPROVEMENTSAND/ORCHANGESINTHEPRODUCT(S)AND/ORTHEPROGRAM(S)DESCRIBEDINTHIS DOCUMENT AT ANY TIME.

    THE CONTENTS OF THIS DOCUMENT MAY BE MODIFIED AND/OR QUALIFIED, DIRECTLY ORINDIRECTLY, BY OTHER DOCUMENTATION WHICH ACCOMPANIES THIS SOFTWARE, INCLUDINGBUT NOT LIMITED TO ANY RELEASE NOTES AND "READ ME" FILES.

    Copyright © 1999-2014 TIBCO Software Inc. ALL RIGHTS RESERVED.

    TIBCO Software Inc. Confidential Information

  • Contents | iii

    Contents

    Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vii

    Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

    Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

    Changes from the Previous Release of This Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii

    Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiiiTIBCO MDM Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiiiOther TIBCO Product Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii

    Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

    Connecting with TIBCO Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviiHow to Join TIBCOmmunity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviiHow to Access TIBCO Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviiHow to Contact TIBCO Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii

    Chapter 1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

    Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2Deployment Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

    Chapter 2 Hardware and Operating System Tuning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

    Overview of Hardware and Operating System Tuning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6Physical Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7Input/Output Throughput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

    Chapter 3 Java Virtual Machine Tuning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

    Heap Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10Setting the JVM Parameters in TIBCO MDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

    Chapter 4 Application Server Configuration - JBoss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

    Application Server Oracle Data Source Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14Configuring Multiple JBoss Instances on One Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14Configuring Multiple Instances on JBoss 5.1.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15Configuring Multiple Instances on JBoss 7.1.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

    TIBCO MDM Performance Tuning Guide

  • iv | Contents

    Chapter 5 TIBCO ActiveSpaces® Tuning and Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    ActiveSpaces Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Deployment Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19ActiveSpaces Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19ActiveSpaces Cache Memory Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20ActiveSpaces Cache Config Files Shipped with the Product. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20TIBCO MDM Cache Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21ActiveSpaces Cache Monitor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    Chapter 6 Oracle Database Configuration and Tuning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    Database Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Oracle Database Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Initialization Parameters Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Tablespaces Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Pinning Tables in Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    Chapter 7 Microsoft SQL Database Configuration and Tuning . . . . . . . . . . . . . . . . . . . . . . . . . 29

    Data Files Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Database Optimizations Microsoft SQL Server - Customer Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Lack of Documented Non-Functional Requirements and Over-Aggressive Scheduled Maintenance Jobs . 33

    Chapter 8 EMS Configuration and Tunings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    TIBCO EMS Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    Chapter 9 Load Balancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    Load Balancing Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    Chapter 10 Database Loader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    Database Loader Utility Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    When to Use Database Loader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Performance Best Practices for Database Loader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Data Source Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Data Source Upload Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    Chapter 11 Import. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    Import Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Direct Load Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Performance Best Practices for Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    TIBCO MDM Performance Tuning Guide

  • Contents | v

    Chapter 12 Workflow Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51

    Regular Workflow Processing - Transactional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52

    In-Memory Workflow Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53

    Impact of In-Memory Workflows on UI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54Checking Progress in the Event Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54Checking Progress of Records for Workflows Run In-Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54

    Regular Workflow versus In-Memory Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55

    In-Memory Configuration through Configurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56Best Practices and Limitations for In-Memory Workflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57When to Use In-Memory Workflow Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57Workflow Configurations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58

    Chapter 13 Preload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61

    Preload Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62Preloading Best Practices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63Preloading Sizing Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63

    Chapter 14 Purge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65

    Purge Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66Purge Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67

    Chapter 15 TIBCO MDM Logging Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69

    Logging Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70Setting Standard Logging Levels through Configurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71

    Chapter 16 TIBCO MDM Additional Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73

    Indexes Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74

    TIBCO MDM Performance Tuning Guide

  • vi | Contents

    TIBCO MDM Performance Tuning Guide

  • Tables | vii

    Tables

    Table 1 General Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

    Table 2 JVM Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    Table 3 Recommended JVM Setting for TIBCO MDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    Table 4 Regular Workflow versus In-Memory Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    TIBCO MDM Performance Tuning Guide

  • viii | Tables

    TIBCO MDM Performance Tuning Guide

  • Figures | ix

    Figures

    Figure 1 TIBCO MDM Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

    Figure 2 ActiveSpaces Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19

    Figure 3 Setting the Pool Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

    Figure 4 Load Balancing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38

    Figure 5 Data Source Upload Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45

    Figure 6 Workflow Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56

    Figure 7 Web services Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58

    Figure 8 TIBCO MDM Configurations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59

    Figure 9 Preload Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62

    Figure 10 Preload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64

    Figure 11 Logging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70

    Figure 12 Standard Logging Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71

    TIBCO MDM Performance Tuning Guide

  • x | Figures

    TIBCO MDM Performance Tuning Guide

  • | xi

    Preface

    TIBCO® MDM is a tool to manage master data of your organization by providinga framework for governance, rules, and processes.

    TIBCOMDMensuresaccuracyandefficiencybothinsidetheenterpriseaswellasthroughout the value chain so that multiple processes are optimally coordinated.TIBCO MDM delivers a multidomain horizontal platform to manage all types ofinformation including products, customers, vendors, reference data, backendsystems, and so on.

    Topics

    • Changes from the Previous Release of This Guide, page xii

    • Related Documentation, page xiii

    • Typographical Conventions, page xv

    • Connecting with TIBCO Resources, page xvii

    TIBCO MDM Performance Tuning Guide

  • xii | Changes from the Previous Release of This Guide

    Changes from the Previous Release of This Guide

    This is the first release of this guide.

    TIBCO MDM Performance Tuning Guide

  • Preface | xiii

    Related Documentation

    This section lists documentation resources you may find useful.

    TIBCO MDM DocumentationThe following documents form the TIBCO MDM documentation set:

    • TIBCO MDM Release Notes: Read the release notes for a list of new andchanged features. This document also contains lists of known and closedissues for this release.

    • TIBCO MDM Installation and Configuration: Read this manual for instructionson site preparation, installation, and configuration.

    • TIBCO MDM User’s Guide: Read this manual to learn the TIBCO MDMfeatures. This manual guides you to use the product. It describes thefunctionality as well as all the screens.

    • TIBCO MDM System Administration: This manual explains features relevant tothe system administrator.

    • TIBCO MDM Customization: Read this manual to understand how theapplication can be customized to your enterprise needs.

    • TIBCO MDM Workflow Reference: This manual is a reference for theautomation of business processes.

    • JAVA API Reference: This Help includes a list of workflows that are used inTIBCO MDM.

    • TIBCO MDM Web Services: This manual is a reference for using web services.

    • TIBCO MDM Best Practices Guide: This manual provides the best practicesbased on contributions from the users of TIBCO MDM, who develop thesoftware and implement it in a variety of TIBCO MDM projects.

    • TIBCO MDM Performance Tuning Guide: This manual provides theperformance tuning methodologies to tune your system and to achieve theoptimal system performance on all of the layers of TIBCO MDM.

    Other TIBCO Product DocumentationYou may find it useful to read the documentation for the following TIBCOproducts:

    TIBCO MDM Performance Tuning Guide

  • xiv | Related Documentation

    • TIBCO MDM Process Designer User’s Guide: This guide is a reference fordesigningworkflowsusingtheTIBCOMDMProcessDesignergraphicaluserinterface.

    • TIBCO MDM Process Designer Tutorial: This guide is a tutorial for designingworkflows using the TIBCO MDM Process Designer graphical user interface.

    • TIBCO MDM Repository Designer User’s Guide: This guide is a reference fordesigningrepositoriesusingtheTIBCOMDMRepositoryDesignergraphicaluser interface.

    • TIBCO MDM Repository Designer Tutorial: This guide is a tutorial for designingrepositories using the TIBCO MDM Repository Designer graphical userinterface.

    • TIBCO MDM Rulebase Designer User’s Guide: This guide is a reference fordesigningrulebasesusingtheTIBCOMDMRulebaseDesignergraphicaluserinterface.

    • TIBCO MDM Rulebase Designer Tutorial: This guide is a tutorial for designingrulebases using the TIBCO MDM Rulebase Designer graphical user interface

    • TIBCO Enterprise Message Service™: This software allows the application tosend and receive messages using the Java Message Service (JMS) protocol. Italso integrates with TIBCO Rendezvous and TIBCO SmartSockets™messaging products.

    • TIBCO ActiveMatrix BusinessWorks™: This is a scalable, extensible, andeasy-to-use integration platform that allows you to develop and testintegration projects. It includes a graphical user interface (GUI) for definingbusiness processes and an engine that executes the process.

    • TIBCO BusinessConnect™: This software allows your company to send andreceive XML or non-XML business documents over the Internet. Based on amutually agreed upon process flow and common document format, you andyour trading partners can conduct secure and verifiable business transactionsonline.

    TIBCO MDM Performance Tuning Guide

  • Preface | xv

    Typographical Conventions

    The following typographical conventions are used in this manual.

    Table 1 General Typographical Conventions

    Convention Use

    code font Code font identifies commands, code examples, filenames, pathnames, andoutput displayed in a command window. For example:

    Use MyCommand to start the foo process.

    bold code

    font

    Bold code font is used in the following ways:

    • In procedures, to indicate what a user types. For example: Type admin.

    • In large code samples, to indicate the parts of the sample that are ofparticular interest.

    • In command syntax, to indicate the default parameter for a command. Forexample, if no parameter is specified, MyCommand is enabled:MyCommand [enable | disable]

    italic font Italic font is used in the following ways:

    • To indicate a document title. For example: See TIBCO ActiveMatrixBusinessWorks Concepts.

    • To introduce new terms. For example: A portal page may contain severalportlets. Portlets are mini-applications that run in a portal.

    • To indicate a variable in a command or code syntax that you must replace.For example: MyCommand PathName

    Keycombinations

    Key names separated by a plus sign indicate keys pressed simultaneously. Forexample: Ctrl+C.

    Key names separated by a comma and space indicate keys pressed one after theother. For example: Esc, Ctrl+Q.

    The note icon indicates information that is of special interest or importance, forexample, an additional action required only in certain circumstances.

    The tip icon indicates an idea that could be useful, for example, a way to applythe information provided in the current section to achieve a specific result.

    TIBCO MDM Performance Tuning Guide

  • xvi | Typographical Conventions

    The warning icon indicates the potential for a damaging situation, for example,data loss or corruption if certain steps are taken or not taken.

    Table 1 General Typographical Conventions (Cont’d)

    Convention Use

    TIBCO MDM Performance Tuning Guide

  • Preface | xvii

    Connecting with TIBCO Resources

    How to Join TIBCOmmunityTIBCOmmunity is an online destination for TIBCO customers, partners, andresident experts. It is a place to share and access the collective experience of theTIBCO community. TIBCOmmunity offers forums, blogs, and access to a varietyof resources. To register, go to http://www.tibcommunity.com.

    How to Access TIBCO DocumentationYou can access TIBCO documentation here:

    https://docs.tibco.com

    How to Contact TIBCO SupportFor comments or problems with this manual or the software it addresses, contactTIBCO Support as follows:

    • For an overview of TIBCO Support, and information about getting startedwith TIBCO Support, visit this site:

    http://www.tibco.com/services/support

    • If you already have a valid maintenance or support contract, visit this site:

    https://support.tibco.com

    Entry to this site requires a user name and password. If you do not have a username, you can request one.

    TIBCO MDM Performance Tuning Guide

    http://www.tibcommunity.comhttps://docs.tibco.comhttp://www.tibco.com/services/supporthttps://support.tibco.com

  • xviii | Connecting with TIBCO Resources

    TIBCO MDM Performance Tuning Guide

  • | 1

    Chapter 1 Overview

    This guide provides the performance tuning methodologies and best practices totune your system and to achieve the optimal system performance on all of thevarious layers of TIBCO MDM.

    Topics

    • Overview, page 2

    TIBCO MDM Performance Tuning Guide

  • 2 | Chapter 1 Overview

    Overview

    TIBCO MDM handles multiple functions such as data cleansing, data retrieval,and bulk data inserts where the volume of data can be millions of records. ThisguideprovidesinformationonTIBCOMDMperformancetuningmethodologiesand best practices, and hardware and software tuning techniques. This guide alsohas information on OS,JVM,andTIBCOMDMconfiguration parameters tuning.

    System performance can vary depending on the volume of records that TIBCOMDM manages, concurrent users accessing the application, and the record levelhierarchy (records depth with relationships). The TIBCO MDM PerformanceTuning Guide provides information on tuning the various layers of TIBCO MDMfor stability, scalability, and large data volumes that can help achieve optimalsystem performance.

    Deployment ModeThe following diagram depicts a high level architectural overview of TIBCOMDM and shows the various layers described in the guide including:

    • Hardware and Operation system

    • Application layer

    • Distributed Cache layer

    • Messaging layer

    TIBCO MDM Performance Tuning Guide

  • Overview | 3

    Figure 1 TIBCO MDM Overview

    TIBCO MDM Performance Tuning Guide

  • 4 | Chapter 1 Overview

    TIBCO MDM Performance Tuning Guide

  • | 5

    Chapter 2 Hardware and Operating System Tuning

    This chapter provides an overview of the hardware and operating system tuningfor TIBCO MDM.

    Topics

    • Overview of Hardware and Operating System Tuning, page 6

    TIBCO MDM Performance Tuning Guide

  • 6 | Chapter 2 Hardware and Operating System Tuning

    Overview of Hardware and Operating System Tuning

    TIBCO MDM manages the existing data as well as the data in motion across theorganization. The key performance parameters include:

    • Volume of data

    • Complexity of data (record hierarchy with relationships)

    • Workload on the system

    Allocating the correct hardware is critical for proper sustained performance of thesolution. The correct size of the hardware required to effectively run the finalsolution depends on the volume of the data and the overall complexity of thesolution.

    You can scale TIBCO MDM performance by running TIBCO MDM on fasterhardware (that is, more CPUs and increased input/output) or by increasing thephysical memory available.

    Depending on the resources available, you can opt for horizontal scaling bydeploying multiple TIBCO MDM instances on the same machine or verticalscaling by deploying multiple TIBCO MDM instances on different machines.

    Physical MemoryPhysical memory available on the system should satisfy the TIBCO MDM Heapsettings (along with JVM or native thread stack overhead) and accommodate anyother processes. Size the available physical memory accordingly to accommodatethe heap settings of the TIBCO MDM Server, memory allocated to the cacheserver, and any other processes running on the machine.

    Before you start multiple instances of TIBCO MDM on the same machine and thecache server, ensure that enough memory is available.

    Allocate memory to the distributed cache at startup depending on the systemmemory available. Size the cache according to the memory available to ensurethat eviction does not trigger when extensive caching is used in theimplementation.SeeChapter 5,TIBCOActiveSpaces®TuningandConfigurationfor more detail on this.

    Preload, an important function, loads the specified number of records into thecache from the database as defined in the TIBCO MDM configuration.

    Insufficient memory available on the system for the records to be loaded in cachecantriggeraneviction.Memoryrequirementsdependontheattributesdefinedinthe metadata model and the complexity of the data (record hierarchy withrelationships). For more details, refer to Chapter 13, Preload.

    TIBCO MDM Performance Tuning Guide

  • Overview of Hardware and Operating System Tuning | 7

    CPUTIBCO MDM relies on highly efficient threading to achieve its throughput inhandling data and serving content to the user. For optimal performance, deployTIBCO MDM, Database, and EMS on separate physical machines. Also, note thatrunning other third-party applications creates competition for CPU and may havea negative effect on TIBCO MDM Server performance.

    Direct Load Import is one of the TIBCO MDM features which is CPU intensive. Ifa CPU resource on a TIBCO MDM instance is available, you can increase the poolsizeoftheasynchronousqueueorincreasethenumberofTIBCOMDMinstances.

    In-memory workflow executions are another feature that is CPU intensive.

    For concurrent processing including operations such as UI, web services, andBulk Load, ensure that you have adequate CPU resources available for processingthe requests.

    If CPU usage on an TIBCO MDM instance is high, you may want to use LoadBalancing. See Chapter 9, Load Balancing for more details.

    Input/Output ThroughputTIBCO MDM is a highly input/output intensive system which constantlyreceives, stores, and retrieves data from the database.

    Application logging level can also have an impact on input/output performance.See Chapter 15, TIBCO MDM Logging Configuration for more details.

    Consider deploying faster storage hardware such as network, drives, orimplement striping for multiple data destinations. If the input/outputthroughput for the system is below industry standards, check for input/outputchain misconfiguration, ensure the firmware is up-to-date, or validate the SAN(Storage Area Network) routing configuration. You can also reduce the latencybetween the database and the TIBCO MDM server.

    TIBCO MDM Performance Tuning Guide

  • 8 | Chapter 2 Hardware and Operating System Tuning

    TIBCO MDM Performance Tuning Guide

  • | 9

    Chapter 3 Java Virtual Machine Tuning

    This chapter provides information about the Java Virtual Machine (JVM) tuning.

    Topics

    • Heap Size, page 10

    TIBCO MDM Performance Tuning Guide

  • 10 | Chapter 3 Java Virtual Machine Tuning

    Heap Size

    The JVM heap is a repository of active objects, inactive objects, and free memory.When an object can no longer be reached from any pointer in the runningprogram, it is considered garbage and ready for collection. When the JVM heapruns out of memory, all processing in the JVM stops until garbage collectioncompletes.

    The JVM heap size is important because it controls how often, and for how longgarbage collection runs. If garbage collection runs too infrequently, the extra timethat is required to complete garbage collection can negatively affect the TIBCOMDM performance.

    These are the recommended JVM settings for TIBCO MDM:

    • Java heap (-Xms4096m -Xmx4096m). To avoid out of memory errors useidentical settings for minimum and maximum memory. A good practice is toset the 512 MB heap per configured worker thread. For example, if there areeight worker threads, setting a heap of 4 GB is sufficient. The setting alsodepends on the bundle sizes.

    • Performance options:

    XX:NewSize=256m. Default size of new generation (in bytes)XX:MaxPermSize=512m. Size of the Permanent Generation

    • Behavioral options:

    XX:-UseParallelGC. Use parallel garbage collection for scavenges.

    • Debugging options:

    XX:+HeapDumpOnOutOfMemoryError. Dump heap to file whenjava.lang.OutOfMemoryError is thrown

    Use the debugging options only if you suspect a memory leak and you need totake the heap dump out of memory. This is not recommended in a productionenvironment.

    For GC -XX:-ParallelGC is recommended to select the parallel garbage collectorfor the new generation of the Java heap. For more information, refer tohttp://www.oracle.com/technetwork/java/tuning-139912.html

    The JVM heap size is a configurable parameter that you can set when you start theTIBCO MDM instance. You may also want to review the G1 garbage Collectorintroduced in JDK 1.7.0. For more information, refer tohttp://www.oracle.com/webfolder/technetwork/tutorials/obe/java/G1GettingStarted/index.html

    TIBCO MDM Performance Tuning Guide

    http://www.oracle.com/technetwork/java/tuning-139912.htmlhttp://www.oracle.com/webfolder/technetwork/tutorials/obe/java/G1GettingStarted/index.htmlhttp://www.oracle.com/webfolder/technetwork/tutorials/obe/java/G1GettingStarted/index.html

  • Heap Size | 11

    Setting the JVM Parameters in TIBCO MDMThe JVM parameters are set in standalone.conf under the $JBoss_HOME/bindirectory.

    You can set the following for JVM parameters for TIBCO MDM:

    Table 2 JVM Parameters

    Parameter Value Additional Information

    -Xms 4096m Java Heap Size

    -Xmx 4096m Maximum Java Heap Size

    -XX:MAxPermSize 512m Maximum Size for PermanentGeneration Heap

    -XX:NewSize 256m Default Size of New Generation

    -XX:+UsePArallelGC

    Use parallel garbage collection forscavenges

    XX:+HeapDumpOnOutOfMemoryError

    Dump heap to file when java.lang.OutOfMemoryError is thrown

    -Dsun.rmi.dgc.server.gcInterval

    3600000 ms Ensures that unreachable remoteobjects are unexported and garbage iscollected in a timely fashion. Thevalue of this property represents themaximum interval (in milliseconds)that the RMI runtime allows betweengarbage collections of the local heap.The default value is 60000milliseconds (60 seconds).

    -Dsun.rmi.dgc.client.gcInterval

    3600000 ms Ensures that DGC clean calls forunreachable remote references aredelivered in a timely fashion. Thevalue of this property represents themaximum interval (in milliseconds)that the RMI runtime allows betweengarbage collections of the local heap.The default value is 60000milliseconds (60 seconds).

    TIBCO MDM Performance Tuning Guide

  • 12 | Chapter 3 Java Virtual Machine Tuning

    To improve overall throughput, consider using a parallel garbage collectionstrategy.

    This type of strategy works best with workloads that are designed to:

    • reduce or eliminate garbage collection pauses

    • trade some memory throughput to accomplish the reduction or elimination

    For more information on JVM, options, see

    http://docs.oracle.com/javase/7/docs/technotes/guides/vm/

    To verify the effectiveness of the garbage collection strategy, run the application,and measure either response times or the throughput relative to garbagecollection pause times, or both.

    TIBCO MDM Performance Tuning Guide

    http://docs.oracle.com/javase/7/docs/technotes/guides/vm/

  • | 13

    Chapter 4 Application Server Configuration - JBoss

    This chapter provides information about configuring a data source directly fromwithin your application.

    Topics

    • Application Server Oracle Data Source Configuration, page 14

    TIBCO MDM Performance Tuning Guide

  • 14 | Chapter 4 Application Server Configuration - JBoss

    Application Server Oracle Data Source Configuration

    Since Java EE6, the new annotation @Data SourceDefinition enables you toconfigure a data source directly from within their application.

    A data source is a Java Naming and Directory Interface (JNDI) object used toobtain a connection from a connection pool to a database.

    You can set the data source configurations at the following locations:

    • JBoss 5.1.0: Edit the oracle-ds.xml, db2-ds.xml, or sqlserver-ds.xml fileslocated in the $JBoss_HOME\server\configname\deploy directory.

    • JBoss 7.1.0: Edit the standalone.xml file located in the$JBoss_HOME\standalone\configuration directory.

    Considersettingthefollowingparametersinthedatasourceconfigurationfileforperformance tests:10050030000

    • min-pool-size: specifies the minimum number of connections a pool shouldhold. These pool instances are not created until an initial request for aconnection is made. The default is 0.

    • max-pool-size: specifies the maximum number of connections for a pool. Themax-pool-size number of connections is the maximum that is created in apool. The default is 20.

    • blocking-timeout-millis:specifiesthemaximumtimeinmillisecondstoblockwhile waiting for a connection before throwing an exception. Note that thisblocks only while waiting for a permit for a connection, and never throws anexception if creating a new connection takes an inordinately long time. Thedefault is 5000.

    Configuring Multiple JBoss Instances on One MachineMultiple instances of JBoss Application Server can run on a single machineprovided you have the necessary system resources such as RAM or CPU. Theseinstances can be clustered or can run completely independently of one anotherdepending on your business requirements.

    You may want to run multiple instances for the following reasons:

    • Scaling: you may need to test horizontal scaling of the application todetermine if you have enough system resources available.

    TIBCO MDM PerformanceTuning Guide

  • Application Server Oracle Data Source Configuration | 15

    • Isolation: you may require complete isolation of your applications if oneapplication is unstable and negatively impacts the other applications.

    • QA: you might like a separate QA environment which is isolated from thedevelopment environment on the same box.

    • JBoss Application Server version dependencies: you may have multipleapplications with some applications requiring version X of JBoss ApplicationServer or version Y of JBoss Application Server.

    • JVM version dependencies: one application may require JDK 1.6 and anotherapplication may require JDK 1.7. JBoss Application Server can use either,therefore you can launch one instance using 1.6 and another instance using 1.7(unclustered).

    Configuring Multiple Instances on JBoss 5.1.0For information on configuring multiple instances on JBoss 5.1.0, see

    https://community.jboss.org/wiki/ConfiguringMultipleJBossInstancesOnOneMachine

    Configuring Multiple Instances on JBoss 7.1.0For information on configuring multiple instances on JBoss 7.1.0, see

    https://community.jboss.org/wiki/MultipleInstancesOfJBossAS7OnTheSameMachine

    TIBCO MDM Performance Tuning Guide

    https://community.jboss.org/wiki/ConfiguringMultipleJBossInstancesOnOneMachinehttps://community.jboss.org/wiki/MultipleInstancesOfJBossAS7OnTheSameMachine

  • 16 | Chapter 4 Application Server Configuration - JBoss

    TIBCO MDM PerformanceTuning Guide

  • | 17

    Chapter 5 TIBCO ActiveSpaces® Tuning andConfiguration

    This chapter provides information on tuning and configuration for ActiveSpaces.

    Topics

    • ActiveSpaces Overview, page 18

    TIBCO MDM Performance Tuning Guide

  • 18 | Chapter 5 TIBCO ActiveSpaces® Tuning and Configuration

    ActiveSpaces Overview

    ActiveSpaces combines the features and performance of databases, cachingsystems, and messaging software to support large, highly volatile data sets andevent-driven applications. With ActiveSpaces you can offload transaction-heavysystems and enable developers to concentrate on business logic rather than thecomplexities of developing distributed fault-tolerance.

    TIBCO MDM Performance Tuning Guide

  • ActiveSpaces Overview | 19

    Deployment ModeYou can configure TIBCO MDM for deployment as follows:

    • WithActiveSpaces inatruepeer-to-peerconfigurationwhereall themembersare direct peers to each other. Each member acts as SEEDER here. In thisconfiguration all the members contribute to the cache size. SEEDER plays anactive role in maintaining the space by providing CPU and RAM.

    • With ActiveSpaces where MDM members act as LEECH to a centralizeddistributed cache server. LEECH plays a passive role; it has access to spacedata but provides no resources.

    For high performance scenarios, deploy TIBCO MDM in true peer-to-peerSEEDER role. Default configuration is SEEDER.

    ActiveSpaces Server ConfigurationSet the AS Member Distribution Role property to the SEEDER role usingConfigurator (NodeID > Optimization - Member) for high performance levels.

    Figure 2 ActiveSpaces Server Configuration

    This deployment mode yields the highest performance level, however allprocesses must establish bidirectional TCP connections to each other.

    TIBCO MDM Performance Tuning Guide

  • 20 | Chapter 5 TIBCO ActiveSpaces® Tuning and Configuration

    ActiveSpaces Cache Memory ConfigurationThe ActiveSpaces Cache memory sets the maximum memory allocated to thecache server. For theSEEDER role all the members of TIBCO MDM in the clusteredenvironment contribute to the cache memory.

    The memory is allocated to ActiveSpaces cache at startup. ActiveSpaces Cachememory configuration is done inCacheConfig.xml under the$MQ_HOME/configdirectory.

  • ActiveSpaces Overview | 21

    TIBCO MDM Cache CalculationTIBCO MDM uses cache objects of different sizes depending on the amount ofdata held. TIBCO MDM internally calculates the cache size for each object basedon the ListSize provided in CacheConfig.xml for the individual objects. Forheavily used cache objects, allocate more memory to the object files in theconfiguration file.

    Depending on the memory resources available, set the ListSize of individualobjects in CacheConfig.xml. ListSize of -1 -1means unlimited size is set for that particular object in ActiveSpace cache.Depending on the ListSize defined in the configuration file, if the memoryallocated for a particular object is full, eviction policy comes into effect whichcould impact the performance.

    ActiveSpaces Cache MonitorThe CacheManager utility enables you to get the statistics of ActiveSpaces cacheand member details. You can use the utility to monitor thePut/Take/Expire/Seed/Unseed activity.

    You can execute the CacheManager utility from the $MQ_HOME\bin directory:

    CacheManager Usage [options]

    -? : print usage

    -connect: Connects to the metaspace

    -Listen: Listen space for [Put/Take/Expire/Seed/Unseed] activity

    -member: Displays information about members

    -space: Displays space details

    -search: Searches the records in space

    -asadmin: Executes the exact asadmin commands

    Follow these steps to monitor AS spaces. You can monitorPut\Take\Get\Expire\Evicts

    1. Enter ./CacheManager.sh

    2. Enter Connect.

    3. To monitor the RECORD space, enter space -s RECORD.

    4. To monitor the Evicts, use the members detail command.

    5. To monitor the individual spaces in the metaspace, use as-admin under$MQ_HOME/as/2.0/lib.

    TIBCO MDM Performance Tuning Guide

  • 22 | Chapter 5 TIBCO ActiveSpaces® Tuning and Configuration

    TIBCO MDM Performance Tuning Guide

  • | 23

    Chapter 6 Oracle Database Configuration and Tuning

    This chapter describes how to properly tune a backend database to optimize theTIBCO MDM performance.

    Topics

    • Database Information on page 24

    TIBCO MDM Performance Tuning Guide

  • 24 | Chapter 6 Oracle Database Configuration and Tuning

    Database Information

    TIBCO MDM stores the master data of the enterprises in the backend databaseand retrieves potentially large amounts of data from the database. If the databasedoes not perform well, the TIBCO MDM Server slows down as a result. Aproperly tuned backend database helps the TIBCO MDM Server run moreefficiently.

    Oracle Database TuningThis section describes some of the more important database configurationsettings. However, you should consult an experienced database administrator(DBA) who can take appropriate decisions to set up your particular databaseenvironment.

    Initialization Parameters ConfigurationThefollowingtabledescribestheinitializationparametersset intheperformancelab for testing medium and large systems:

    Table 3 Recommended JVM Setting for TIBCO MDM

    Parameter Value Description

    db-block_size 8192 Specifies (in bytes) the size of Oracledatabase blocks. Typical values are4096 and 8192. The value of thisparameter must be a multiple of thephysical block size at the device level.This parameter affects the maximumvalue of the FREELISTS storageparameter for tables and indexes.

    db_cache_size 9663676416 Specifies the size of the DEFAULTbuffer pool for buffers with theprimary block size (the block sizedefined by the DB_BLOCK_SIZEinitialization parameter).The valuemust be at least 4M * number of cpus* granule size (smaller values areautomatically rounded up to thisvalue).

    TIBCO MDM Performance Tuning Guide

  • Database Information | 25

    db_file_multiblock_read_count

    16 Minimizes disk input/output duringtable scans by specifying themaximum number of blocks read inone input/output operation during asequential scan.

    db_writer_processes

    10 Useful for systems that modify dataheavily.Itspecifiestheinitialnumberof database writer processes for aninstance.

    job_queue_processes

    10 Specifies the maximum number ofprocesses that can be created for theexecution of jobs.

    open_cursors 3024 Specifies the maximum number ofopen cursors (handles private SQLareas) a session can have at once. Thisparameter prevents a session fromopening an excessive number ofcursors. It is important to set thevalue of OPEN_CURSORS high enoughto prevent your application fromrunning out of open cursors.

    parallel_threads_per_cpu

    8 Specifies the default degree ofparallelism for the instance anddetermines the parallel adaptive andload balancing algorithms. Theparameter describes the number ofparallel execution processes orthreads that a CPU can handle duringparallel execution.

    processes 1000 Specifies the maximum number ofoperating system user processes thatcan simultaneously connect to anOracle server. This valueaccommodates all backgroundprocesses such as Job Queue (SNP)and parallel execution (Pnnn)processes.

    Table 3 Recommended JVM Setting for TIBCO MDM

    Parameter Value Description

    TIBCO MDM Performance Tuning Guide

  • 26 | Chapter 6 Oracle Database Configuration and Tuning

    sessions 2000 Specifies thetotalnumberofuserandsystem sessions.

    Table 3 Recommended JVM Setting for TIBCO MDM

    Parameter Value Description

    SGA is set to 14 GB in the performance lab database while PGA is set to 4 GB inthe performance lab database.

    TIBCO MDM Performance Tuning Guide

  • Database Information | 27

    Tablespaces ConfigurationTIBCOMDMmanagesthemasterdataoftheenterprisesacrossdifferent tablesinthe database. To manage the data in the database, create individual tablespacesfor all the large tables and their indexes.

    Create all the indexes including unique and primary keys for each large table in aseparate table space.

    Create separate tablespaces for the following tables and their associated indexes:

    • Master Catalog tablesPERSON

    ASSET

    CLIENT

    LOCATION

    • TIBCO MDM tablesGENERALDOCUMENT

    GENERALDOCUMENTLOB (Separate tablespace for the BLOB column)GOLDENCOPY

    PRINCIPALKEY

    PROCESSLOG

    PRODUCTKEY

    PRODUCTLOG

    RELATIONSHIP

    For optimal performance, place the data files on faster disks, such as Solid StateDrives (SSD).

    Contact the engineering team for information regarding the scripts.

    TIBCO MDM Performance Tuning Guide

  • 28 | Chapter 6 Oracle Database Configuration and Tuning

    Pinning Tables in MemoryTo improve the performance of TIBCO MDM when using Oracle, ensure that youuse the commonly used tables that are cached in memory as shown in this list:• ASSOCIATION

    • CONFIGURATIONDEFINITION

    • DOMAIN

    • DOMAINENTRY

    • DOMAINLINK

    • DOMAINSTRING

    • DOMAINVALUE

    • RESOURCEACCESS

    • RESOURCEACL

    • QUEUEENTRY

    • FUNCTION

    • OBJECTSEQUENCE

    • ORGANIZATION

    • ENTERPRISE

    • WORKFLOWFORM

    Run the sample script after the installation is complete. The sample script islocated under $MQ_HOME/db/oracle/install/tablepinning.sql and containsa complete list of tables which should be pinned in memory.

    Consult your database administrator (DBA) to modify and run this script.

    TIBCO MDM Performance Tuning Guide

  • | 29

    Chapter 7 Microsoft SQL Database Configuration andTuning

    This chapter describes how to manage the data in the database and createindividual tablespaces for large tables.

    Topics

    • Data Files Configuration on page 30

    TIBCO MDM Performance Tuning Guide

  • 30 | Chapter 7 Microsoft SQL Database Configuration and Tuning

    Data Files Configuration

    TIBCOMDMmanagesthemasterdataoftheenterprisesacrossdifferent tablesinthe database. To manage the data in the database, create individual data files forall the large tables and their indexes.

    Create all the indexes including unique and primary keys for each large table in aseparate data file.

    Create separate data files for the following tables and their associated indexes.

    • Master Catalog Tables include:— PERSON

    — ASSET

    — CLIENT

    • TIBCO MDM tables include:— GENERALDOCUMENT

    — GOLDENCOPY

    — PRINCIPALKEY

    — PROCESSLOG

    — PRODUCTKEY

    — PRODUCTLOG

    — RELATIONSHIP

    Out-of-the-box scripts are used for the following actions:

    1. Create filegroups.

    2. Add data files in filegroups.

    3. Move tables or indexes.

    4. Delete data files.

    TIBCO plans to modify the username, file location, and ID of MCT tables in thescripts.

    Database Optimizations Microsoft SQL Server - Customer StudyThe database optimization recommendations are based on the tuning that wascarried out at one of our customer sites.

    C For additional information, contact the engineering team.

    TIBCO MDM Performance Tuning Guide

  • Data Files Configuration | 31

    ForrecommendingMicrosoftSQLperformanceoptimization,startbyrunningtheSQL diagnosis, identify the bottlenecks, and then change any configurationchanges to the Microsoft SQL server.

    Follow the same approach in tuning the database at the customer location.Iteratively, TIBCO ran the SQLdiag utility and highlighted top bottlenecks andaddressed the heavy input/output contentions on theTEMPDB files common itemsfirst.

    These configuration changes may or may not be applicable to other customers.

    ThefollowinginformationlistssomeofthebottlenecksthatTIBCOidentifiedandfixed after running the Microsoft SQL diagnosis or Microsoft SQL profiler.

    Heavy Input/Output Contentions on TEMPDB Files

    Heavy input/output contention on temp database was one of the bottlenecks thatappeared in the analysis.

    OptimumTEMPDB configuration is important for any solution that has heavy dataaccess as in the case of TIBCO MDM. If you observe heavy TEMPDB input/outptutcontention due to huge spikes on the Microsoft SQL server CPU, check theTEMPDB file. The contention can occur even if there is only one TEMPDB file.

    If this is the case, you should consider increasing the number of TEMPDB filesaccording to the initial data access requirements and server configuration.

    Although there is no convention on the number of files or size, TIBCOrecommends having one TEMPDB file per two CPUs with identical sizes.

    Another factor to consider while configuring the TEMPDB files is the growth ofeach file. You can set the growth to auto-growth with a percentage of growthfactor or to no auto-growth limit. A Microsoft best practice is to allow noauto-growth but you can also set an auto-growth of 300MB.

    CXPACKET Wait-type Observed Frequently

    CXPACKET wait is another bottleneck TIBCO observed. This wait-type occurswhen SQL server spawns a single query on multiple worker threads.

    The default maximum degree of parallelism (MAXDOP) is set to 0 which requiresinfinite worker threads to execute the query. Microsoft recommends that youoptimize the queries, however because most of these are product queries you mayencounter limitations when optimizing some of them.

    TIBCO recommends that you set theMAXDOP to10. In our environment there were32 physical CPUs and 40 CPUs with hyper-threading.

    TIBCO MDM Performance Tuning Guide

  • 32 | Chapter 7 Microsoft SQL Database Configuration and Tuning

    TIBCO also recommends setting the MAXDOP to 25% of the total number ofavailable CPUs. TIBCO decided that the MAXDOP set to 10 will allow the query tospawn across 25% of the total CPUs leaving the remaining 75% available for otherthreads. If you allow one query to spawn across 100% of the CPUs it may causeCPU contention.

    Lesser Dedicated Memory to Operating System on Which Database Instance Is Hosted

    TIBCO recommends allocating sufficient memory to the operating system. If theoperating system is running on less dedicated memory it could become abottleneck.

    TIBCO also recommends increasing the memory dedicated to the operatingsystem to a higher memory allocation. A slow operating system may reflect on thedatabase instances hosted. This may not be reflected in the SQL profiler report.

    Incorrect Snapshot Isolation Level Settings

    It is important to setup the correct snapshot isolation level as recommended in theTIBCOMDMproductiondocuments.Eventhoughthisoccursintheearlierstagesof the project, you should verify this configuration in case of performance issues.As noted in the product documentation, the isolation level is set to READ_COMMIT.

    File-Grouping

    TIBCO MDM product documents recommend creating various file-groups whilesetting up seed-data. However, depending on the data model and the solution,you should create several file-groups so that the larger entities are on separatefile-groups. This reduces the input/output contention on the same file group. Youcan decide if you need more file groups by observing the file-group input/outputin the SQL profiler. A Microsoft best practice is to limit the number of file groups.Refer to Chapter 7, Data Files Configuration for more details.

    Antivirus Configuration

    The SQL server runs on a Windows operating system containing anti-virussoftware. TIBCO recommends that you configure the anti-virus software todisallow some of the SQL server related files to skip on-access scanning.

    Lack of Indexes on MVT Tables

    TIBCO recommends that you include the recommended set of indexes on theMVT tables including clustered indexes on CMODVERSION and CPRODUCTKEYID.TIBCO has addressed this product defect.

    TIBCO MDM Performance Tuning Guide

  • Data Files Configuration | 33

    Query Optimization on Product Queries

    The SQL profiler report may also show top select statements that include heavylogical reads or that consume heavy CPU cycles. These can be external querieswhich may not be executed by TIBCO MDM but communicate with TIBCOMDM. Based on regular observation, you may need to tune these types of queries.You can contact TIBCO MDM engineering for more information.

    Storage or IO Contention

    SQL input/output test can highlight various storage or input/output relatedbottlenecks. Ensure that there are no fault disks which can cause a performancebottleneck.

    Lack of Documented Non-Functional Requirements and Over-AggressiveScheduled Maintenance Jobs

    Over-Aggressive Backup Schedules

    To avoid an over aggressive backup strategy TIBCO recommends the followingstrategy:

    • Complete a full backup daily.

    • Complete a differential backup once per hour.

    These backup strategies not only cause performance issues but also cause highCPU and input/output utilization. TIBCO recommends changing the scheduledmaintenance activities to no incremental backups and full backup once aweek.

    There were improvements in the CPU and input/output utilization which in turnimproved performance at the customer location.

    Over-Aggressive T-Logs Backup

    To avoid overhead, TIBCO recommends configuring the T-Log backup scheduleto run every four hours rather than every 15 minutes.

    TIBCO MDM Performance Tuning Guide

  • 34 | Chapter 7 Microsoft SQL Database Configuration and Tuning

    Over-Aggressive Reorganization and Rebuild of Indexes

    To avoid overhead, set the schedule for the reorganization and rebuild of indexesto a weekly basis rather than every day.

    Additional places to look at for performance issues include reviewing yournetwork or the overall hardware configuration of the database server.

    The information in this chapter is based on a recent experience at a customer siteand this effort is an ongoing activity.

    TIBCO MDM Performance Tuning Guide

  • | 35

    Chapter 8 EMS Configuration and Tunings

    This chapter explains how to use TIBCO EMS to customize the application forproper functioning.

    Topics

    • TIBCO EMS Overview, page 36

    TIBCO MDM Performance Tuning Guide

  • 36 | Chapter 8 EMS Configuration and Tunings

    TIBCO EMS Overview

    TIBCO MDM uses TIBCO EMS internally for proper functioning of theapplication.Minimalcustomization(poolsizes)isrequiredforproperfunctioningof TIBCO MDM.

    TIBCO MDM also uses some queues to exchange messages and events withexternal applications. You can set the pool size of the queues as well as for theindividual members in the cluster.

    The following figure shows how to set the pool size using Configurator (NodeID >Async Task Management):

    Figure 3 Setting the Pool Size

    You can set the pool size for Asynchronous and Workflow queues for eachmember in the cluster.

    If the CPU on a TIBCO MDM instance is available, you can increase the pool sizeof asynchronous queues of TIBCO MDM instances to increase the throughput.

    TIBCO MDM Performance Tuning Guide

  • | 37

    Chapter 9 Load Balancing

    This chapter describes how to use load balancing to distribute workloads acrossmultiple TIBCO MDM instances.

    Topics

    • Load Balancing Overview, page 38

    TIBCO MDM Performance Tuning Guide

  • 38 | Chapter 9 Load Balancing

    Load Balancing Overview

    Load balancing is configured for distributing workloads across multiple TIBCOMDM instances, network links, central processing units, disk drives, or otherresources. Load balancing optimizes resource use, maximizes throughput,minimizes response time, and avoids overload. Using multiple components withload balancing instead of a single component increases overall throughput of thesystem.

    Figure 4 Load Balancing

    You can configure load balancing to replicate the member properties in theConfigurator. Additionally, you can configure load balancing to start TIBCOMDM instances on the same machine or different machines referring to the sameconfiguration file with a different Member ID. Since all the cluster memberswould point to the same EMS queues, the load on the system would bedistributedequally.Thistypeofconfigurationoptimizesresourceuse,maximizesthroughput, minimizes response time, and avoids overload.

    TIBCO MDM Performance Tuning Guide

  • Load Balancing Overview | 39

    Use an Apache web server with mod_jk for HTTP load balancing with JBossApplication Server. Refer to the JBoss Application Server documentation for theconfigurations.

    TIBCO MDM Performance Tuning Guide

  • 40 | Chapter 9 Load Balancing

    TIBCO MDM Performance Tuning Guide

  • | 41

    Chapter 10 Database Loader

    Database Loader is used in bulk loading of data with and without relationships.This chapter explains when to use Database Loader and describes the bestpractices to use with Database Loader.

    Topics

    • Database Loader Utility Overview, page 42

    TIBCO MDM Performance Tuning Guide

  • 42 | Chapter 10 Database Loader

    Database Loader Utility Overview

    The Database Loader utility addresses the need to import millions of recordsalong with their relationships. To optimize the time involved to import a largenumber of records, validation is not performed and workflows are not consideredwhile importing records into a repository.

    TIBCO MDM Performance Tuning Guide

  • When to Use Database Loader | 43

    When to Use Database Loader

    Database Loader provides fast loading of data with relationships and should beyour preferred option if you need to import large data in a single load withrelationships. Database Loader is faster because it does not include:

    • Workflows

    • Approval

    • Validations

    • Record history

    • Named version

    Use Database Loader when the imported data is clean, does not require anyvalidation, and only for initial versions. Data is mapped from data sources toinput maps and imported as is.

    Database Loader performance depends on the following factors:

    • Database setup: database Loader performs bulk operations (mostly inserts,some updates and deletes) therefore the larger the batch size, the moredatabase resources it requires. If you cannot change the database parameters,consider using smaller sets per import.

    • Number and size of attributes: more attributes and larger attribute sizes takelonger to import.

    • Indexes on MCT tables: although you can create many indexes on MCTtables to facilitate searches, this slows down inserts and deletes. Determine ifyou really need these indexes and consider if you can drop the indexes duringthe initial load.

    • Number of records in a repository: a larger size means the database needs towork harder to insert and delete the records. To address this issue, ensure thatthe database advisors do not report any problems with file systems, segments,or table spaces. You can also partition your data.

    • Partitioning strategy: verify how your indexes are partitioned and that yourpartitioning is appropriate and not causing slow inserts.

    You cannot improve Database Loader performance by adding CPU or memory toTIBCO MDM or cache instances.

    TIBCO MDM Performance Tuning Guide

  • 44 | Chapter 10 Database Loader

    Performance Best Practices for Database LoaderToobtainoptimumperformancewhenusingDatabaseLoader,followthesesteps:

    1. Create Indexes which are shipped with the product as part of Seed Data.

    2. Create Indexes on data source as mentioned in Chapter 10, Database Loader,Data Source Indexes.

    3. Create separate tablespaces or datafiles for large TIBCO MDM tables andIndexes. Refer to the following documentation:

    — Tablespaces Configuration, page 27

    — Database Optimizations Microsoft SQL Server - Customer Study, page 30

    4. Disable logging on Oracle tables for the following tables:

    — MCT's

    — Productkey

    — Principalkey

    — Relationship

    — Goldencopy

    — MVT

    — RCT

    Data Source IndexesWhen multiple data sources are joined in an import and the load sizes are large,for example over 200 K,TIBCO recommends configuring indexes for data sources.

    Indexes are created on the Data File (DF) tables for bulk loading scenarios.

    Example 1If the CID column of data source table DF_33969_37793_TAB is mapped toproductid and productidext is not mapped, create the index file as follows:

    UPPER("CID")

    Example 2If the CID column of data source table DF_33969_37793_TAB is mapped toproductid and CEXT is mapped to productidext, create the index file as follows:UPPER("CID"),UPPER("CEXT")

    TIBCO MDM Performance Tuning Guide

  • When to Use Database Loader | 45

    For option: loadrelationship create index file as follows:CPARENTCATALOGID,UPPER("CPARENTID"),UPPER("CPARENTEXT")

    CCHILDCATALOGID,UPPER("CCHILDID"),UPPER("CCHILDEXT")

    The idx file name should match the data source name.

    Data Source Upload LimitFor large loads (Database Loader and Import) in a single batch, increase the datasource upload limit. The default limit is 10485760 bytes. You can set the limitfrom Configurator for the UI Operation only and not for the FileWatcheroperation.

    Figure 5 Data Source Upload Limit

    For all options, create the index file under:$MQ_COMMON_DIR\enterprise\datasource\datasourcename.idx.

    TIBCO MDM Performance Tuning Guide

  • 46 | Chapter 10 Database Loader

    • Set the limit to 1048576000 bytes (1000 MB).

    • Zip the data source and upload it for larger loads.

    For large loads, split the data to ensure the upload file size does not exceed 1 GB.

    TIBCO MDM Performance Tuning Guide

  • | 47

    Chapter 11 Import

    This chapter explains how to use the Import feature for bulk loading of data withand without relationships and provides a list of best practices to use with Import.

    Topics

    • Import Overview, page 48

    TIBCO MDM Performance Tuning Guide

  • 48 | Chapter 11 Import

    Import Overview

    Import is used in bulk loading of data with and without relationships. This utilityaddressestheneedtoimportmillionsofrecordsalongwiththeirrelationships.Tooptimize the time involved to import a large number of records, validation is notperformed and workflows are not considered while importing records into aRepository.

    Direct Load ImportDirect load import depends on these factors:

    • CPUs available for processing records in parallel: if the CPU resources on aTIBCO MDM instance are available, you can increase the pool size of theasynchronous queue or the number of TIBCO MDM instances.

    • Preloaded data: this has a pronounced impact when the data you areimporting are modifications of existing records. Preloading does notnoticeably improve the performance when you import new records.

    • Database: the database insert performance could be a limiting factor. Insertperformance depends on the number of indexes, the file system, and thepartitioning strategy.

    • Database parameters: TIBCO recommends that you review the Reviewadvisories generated by Oracle, SGA, and PGA focusing on sizing.

    Performance Best Practices for ImportThese are the best practices to use with Import.

    • Create Indexes on data source as mentioned in Data source Indexes.

    • Create separate tablespaces for each MDM tables and Indexes. Refer to thefollowing documentation:

    — Tablespaces Configuration, page 27

    — Database Optimizations Microsoft SQL Server - Customer Study, page 30

    • If your load is large, TIBCO recommends splitting the load into smaller loadsin the range of 500K and using the Import utility to load the data.

    TIBCO MDM Performance Tuning Guide

  • Import Overview | 49

    • Disable logging on Oracle tables for these tables:

    MCT's

    — Productkey

    — Principalkey

    — Relationship

    — Goldencopy

    — MVT

    — RCT

    TIBCO MDM Performance Tuning Guide

  • 50 | Chapter 11 Import

    TIBCO MDM Performance Tuning Guide

  • | 51

    Chapter 12 Workflow Execution

    Thischapterdescribeshowthevarious typesofTIBCOMDMworkflowsoperate.

    Topics

    • Regular Workflow Processing - Transactional, page 52

    TIBCO MDM Performance Tuning Guide

  • 52 | Chapter 12 Workflow Execution

    Regular Workflow Processing - Transactional

    TIBCO MDM uses a workflow message to initiate any new processes and themessages are posted to JMS queues for processing. When the JMS queue receivesa message, an event (associated with the message) and a document are createdfrom the message and stored in the distributed cache. The event and documenttypeandsubtype(definedintheworkflowmanagerconfigurationfile)determinethe execution process.

    The transactional workflow is:

    • Whentheprocessisexecutedintransactionalmode,TIBCOMDMpersists theevent to the database and the documents to the file system. The file name isassociated with the event in the database. The event is then posted to aworkflow queue for processing.

    • The event type and subtype determine the workflows triggered for an event.The workflow reads the message associated with the event from the filesystem and starts a new process. This file is the main input parameter to theworkflow. Each workflow has a set of activities which in turn have input andoutput parameters.

    • Activity state changes are stored to the database. Activities can generatedocuments (written to the file system) that act as output parameters for thatactivity and input parameters to a subsequent activity in the flow.

    TIBCO MDM Performance Tuning Guide

  • In-Memory Workflow Processing | 53

    In-Memory Workflow Processing

    TIBCO MDM retrieves the workflow data from the cache. The workflow can runwithout persisting the workflow state information when the workflow isexecuted in the in-memory mode.

    The following object types are put in memory:

    • Event

    • EventDetails

    • Process

    • ProcessLog

    • ProcessDetails

    • ProcessState

    • AttributeLog

    • MLXMLDoc

    Input and output parameters such as XML files are stored in memory and are notwritten to a disk. When a workflow is executed, the local cache manages theworkflow states and documents.

    TIBCO MDM Performance Tuning Guide

  • 54 | Chapter 12 Workflow Execution

    Impact of In-Memory Workflows on UI

    This information describes how the workflows impact the UI.

    Checking Progress in the Event Log• An event is not generated when a workflow is run as in-memory. In this case,

    you cannot check event details for operations triggered by an in-memoryworkflow. However, if you have configured in-memory workflows that arepersisted on success (for example, if you set thesavestateonsucesspropertyto true), and the event is generated, you can view the result in the Event Logafter the workflow has finished executing.

    • Intermediate event logs are available if the workflow contains theCheckpointWorkflow activity, async subflow, spawn workflow activity, or ifthe activity suspends. If a workflow errors out, the entire Event Log isavailable for debugging.

    • If a data source upload or an import operation triggers an in-memoryworkflow, the Check Progress link (which you can use to track progress incase of regular workflows) redirects the event to an appropriate page with amessage that the event is an in-memory operation.

    Checking Progress of Records for Workflows Run In-MemoryIf you add a record in-memory, you can check the success of the workflow bysearching for the record in the catalog or checking the record count in the catalog.

    Record history does not contain any reference to events processed in-memory.The link to the event is disabled and the event column shows a message inmemory.

    TIBCO MDM Performance Tuning Guide

  • Regular Workflow versus In-Memory Workflow | 55

    Regular Workflow versus In-Memory Workflow

    The following table compares and contrasts the regular workflow with thein-memory workflow:

    Table 4 Regular Workflow versus In-Memory Workflow

    Regular Workflow In-Memory Workflow

    During each activity execution, process statesare persisted to the database and distributedcache.

    During each activity execution, process statesare written to the local cache.

    Input, output, and intermediate documentsare persisted to the file system.

    Input, output, and intermediate documentsare maintained in the local cache.

    Each activity is considered a transaction. The entire workflow (consisting of multipleactivities) is considered a transaction.

    When a transaction is committed, allworkflowchanges(processstates,documents,and record related data) in that activity arecommitted.

    When a transaction is committed, recordrelated data in the workflow is committed. Ifthe saveonsuccess flag is on, data from thelocal cache (process states, documents) iscommitted.

    TIBCO MDM Performance Tuning Guide

  • 56 | Chapter 12 Workflow Execution

    In-Memory Configuration through Configurator

    You can use Configurator to enable the In-memory workflows. The setting isavailable in the Workflow Settings of the Advanced Configuration Outline.

    To complete the In-memory configuration, add the name of the workflow youwant to execute In-memory in Configurator. You can add the following two typesof workflows:

    • List of Workflows that run in-memory: the Value column of this propertycontains a pop-up dialog where you can enter the names of the workflowsyou want to run-in memory. Click the cross icon to remove a specifiedworkflow from the in-memory execution.

    • List of workflows that run in-memory and whose state needs to be persistedon success: the Value column of this property contains a pop-up dialog whereyou can enter the names of the workflows you want to run in-memory andpersist to the database on success. Click the cross icon to remove a specifiedworkflow from the in-memory execution and database persistence.

    Figure 6 Workflow Settings

    The property is not hot deployable so you must restart the server after saving theconfiguration.

    TIBCO MDM Performance Tuning Guide

  • In-Memory Configuration through Configurator | 57

    Best Practices and Limitations for In-Memory WorkflowsThese are the best practices for in-memory workflows:

    • Processes that execute in-memory mode should be very optimal.

    • Do not run long-running processes using the in-memory mode.

    • Do not use activities that take a long time to execute or that import a largenumber of records for in-memory workflows.

    • Ideally,activities andsubflows for in-memory workflows shouldbeexecutedsynchronously.

    • Typically, in-memory workflows complete in a single transaction.

    • Adding subflows in async mode, spawned workflows in async mode, andcheckpoints lead to the persistence of intermediate states of the workflow.

    • Use the Checkpoint activity sparingly, for example, use it only when you needto check the status of the workflow at important milestones.

    Do not use these activities for in-memory workflows:

    • UploadData Source

    • Purge

    • ProcessServiceMessage

    • ImportCatalog

    • ImportClassificationScheme

    • ReclassifyRecord

    Additionally, in-memory workflows cannot be used in case of CIM2CIM. Massupdate and synchronization export are not supported in-memory.

    When to Use In-Memory Workflow ExecutionA boost in performance occurs when you use workflow execution and thethroughput is two or three times better compared to the regular workflowexecution mode.

    In-memory is most effective if you eliminate the process state. You also save diskspace on the database.

    TIBCO does not recommend using in-memory workflow in development.

    Additionally,thereisanintermediatemodewhereworkflowsrunin-memoryandwhere the state is persisted on success.

    TIBCO MDM Performance Tuning Guide

  • 58 | Chapter 12 Workflow Execution

    Workflow ConfigurationsYou can use the following configurations for web services tests under load forregular workflow execution, in-memory workflow execution, and concurrentscenarios (involving UI, web services, and Bulk Import Scenariossimultaneously). The Web service request Validation property enables theinbound web service request validation. The incoming request is validatedaccording to the XML schema. This adds some overhead on the processing andthe default value is set to false for performance. You can set this propertythrough Configurator.

    Figure 7 Web services Tests

    These TIBCO MDM configurations vary according to the concurrent usersaccessing the system:

    • Maximum concurrent http service count: This property sets themaximum count for a number of HTTP threads (web services and HTTP) Thedefault value is 20 and this property application server is member-specific.

    • Maximum concurrent webservice listener count: This property setsthe maximum count for a number of web services service listeners. Thedefault value is 10 users and this property is member specific applicationserver.

    TIBCO MDM Performance Tuning Guide

  • In-Memory Configuration through Configurator | 59

    Figure 8 TIBCO MDM Configurations

    TIBCO MDM Performance Tuning Guide

  • 60 | Chapter 12 Workflow Execution

    TIBCO MDM Performance Tuning Guide

  • | 61

    Chapter 13 Preload

    Use Preload to load important data quickly at startup and to enhance TIBCOMDM performance. Preload uses multiple threads across all nodes in the TIBCOMDM cluster.

    Topics

    • Preload Overview, page 62

    TIBCO MDM Performance Tuning Guide

  • 62 | Chapter 13 Preload

    Preload Overview

    You can preload the following objects:

    • Product keys

    • Records and record version numbers

    • Synchronized records and synchronization logs

    • Repository metadata

    • Enterprise specific data such as Enterprise, organization, users, or roles

    Preload configuration is common to the whole cluster and should not beconfigured as member specific properties. To set up the preload, startConfigurator and go to InitialConfig > Optimization.

    Figure 9 Preload Optimization

    TIBCO MDM Performance Tuning Guide

  • Preload Overview | 63

    Preloading Best PracticesThese are some of the best practices to follow when you use Preload:

    • Size the cache according to the requirements (number of records to bepreloaded, size of records, percentage of synchronized records). Refer toTIBCO MDM Cache Calculation, page 21.

    • Enable the preload tranche for preloading large volumes of data.

    • Set preload tranche size high for preloading large volumes of data. Trancheenables quick loading of the data from a single repository by splitting therecords of the repository in portions and initiating the load for each portion inparallel.

    The tranche is set to 500000 in the performance lab for 35 million recordspreloading.

    For more information on the preload properties, refer to the Configuring PreloadProperties section in TIBCO System Administration.

    Preloading is an asynch activity. After you initiate preloading, JMS messages arequeued up on theASYNCHqueue. An increase in the number of listeners or TIBCOMDM members increases the processing speed. Preloading also supportsclustering.

    Preloading Sizing GuidelinesThefollowinginformationprovidesguidelinesforsizingthecacheappropriatelybased on the data to be preloaded. It can vary the number of records andrepositories, the size of records, metadata definition, synchronized records, andthe objects to be preloaded.

    TIBCO MDM Performance Tuning Guide

  • 64 | Chapter 13 Preload

    Figure 10 Preload

    The performance lab has 4 repositories with a fixed number of attributes. Thepreceding estimates are only for RECORD,RECORDMAXMODVERSION, andPRODUCTKEY objects preloaded. For more information, refer to, TIBCO MDMCache Calculation, page 21

    TIBCO MDM Performance Tuning Guide

  • | 65

    Chapter 14 Purge

    This chapter describes the Purge feature, which enables deletion of history,records, metadata, record versions, and data.

    Topics

    • Purge Overview, page 66

    TIBCO MDM Performance Tuning Guide

  • 66 | Chapter 14 Purge

    Purge Overview

    Purge, a data clean-up operation, removes the data from the database, cache, andtext index unlike the logical delete done in other delete operations. Purge enablesyou to keep only the required data and reduce the disk capacity required. Use thecommand line to purge the following objects:

    • Records

    • Repositories

    • Data sources

    • Events

    To trigger purge, use the command line utility $MQ_HOME/bin/datacleanup.sh.

    For example, the command datacleanup.sh -o repository -a 69390 -rnALL -m 20101 purges all records of all repositories in enterprise ID 69390 andmember ID 20101.

    The purge log file (located in $MQ_COMMON_DIR\Temp\Year\Month\Date\Hour)provides details such as:

    • Purge Start Date

    • Member who initiated the purge

    • Event Descriptor

    • Repository or the Repositories’ ID to which Purge is applicable.

    • Exec mode

    • Number of rows deleted

    • Number of records deleted

    • All relevant data

    TIBCO MDM Performance Tuning Guide

  • Purge Overview | 67

    Purge Best PracticesThe following information describes the best practices to follow when usingPurge:

    • Create or alter indexes on MATCHRESULTDETAILS, MATCHCANDIDATE_PTIDX1,MATCHCANDIDATEDETAILS_PTIDX1, MERGERESULT_PTIDX1,

    PRODUCTSTATUS, PRODUCTKEY, ACTIVITYRESULT and

    RELATIONSHIPDEFINITION tables.

    Contact TIBCO Engineering team for the indexes scripts.

    • Resize the redo logs depending on the analysis of Automatic WorkloadRepository (AWR) reports. Consider resizing the redo logs based on the RedoSize in AWR and the redo interval. Consider increasing the size of redo logsand also the number of redo logs.

    • Log file switch: for a 10 minute switch, the total redo log file size should beapproximately 2.5 GB. This enables the log switch to occur in 12 to 15 minutes.

    — Use the AWR report: Report Summary to calculate the required size.

    — Check Load Profile: Redo Size and take the per second size and calculatethe required size for 12-15 minutes.

    — Next,checktheassignedredologs.Youcanincreasethesizeof thelogsandnumber of logs. If the log file size is too large, the switch does not occur forsome time and delays data recovery and the data being written. If there aretoomanylogfiles,multipleconcurrentaccessesaresupportedbutswitchesstill occur.

    — Consider moving the redo logs to faster disks to avoid log file switchdelays.

    — Set the size of the System Global Area (SGA) in Oracle, based on therecommendations in Automatic Database Diagnostic Monitor (ADDM)reports.

    TIBCO MDM Performance Tuning Guide

  • 68 | Chapter 14 Purge

    TIBCO MDM Performance Tuning Guide

  • | 69

    Chapter 15 TIBCO MDM Logging Configuration

    This chapter provides information about the TIBCO MDM LoggingConfiguration.

    Topics

    • Logging Overview, page 70

    TIBCO MDM Performance Tuning Guide

  • 70 | Chapter 15 TIBCO MDM Logging Configuration

    Logging Overview

    TIBCO MDM logs the entire request and response data in logs depending on thelog level set for the application. You can set the following logging levels for theTIBCO MDM server through Configurator:

    • Debugging level for TIBCO MDM package

    • MASSUPDATEUI package

    • DQ package

    • HeaderExtractor package

    • Root logging level

    In the following figure, the logging is set at an individual application servermember:

    Figure 11 Logging

    TIBCO MDM Performance Tuning Guide

  • Logging Overview | 71

    Setting Standard Logging Levels through ConfiguratorThis example shows the standard logging level set through Configurator.

    Figure 12 Standard Logging Level

    You can set the following log levels through Configurator:• FATAL

    • ERROR

    • WARN

    • INFO

    • DEBUG

    Logging is hot deployable and you can change the logging level withoutrestarting the TIBCO MDM server.

    • Set the log level toDEBUG to debug functional issues as well as understand theflow.Youshouldalsoset loggingtoDEBUGintheproductionenvironmentincase you encounter errors and you need to debug the issue.

    • Set the log level to ERROR for performance scenarios because logging set toDEBUG may impact performance by 15 percent.

    TIBCO MDM Performance Tuning Guide

  • 72 | Chapter 15 TIBCO MDM Logging Configuration

    TIBCO MDM Performance Tuning Guide

  • | 73

    Chapter 16 TIBCO MDM Additional Indexes

    ThischapterprovidesinformationabouttheadditionalindexesthatTIBCOMDMhas bought.

    Topics

    • Indexes Overview

    TIBCO MDM Performance Tuning Guide

  • 74 | Chapter 16 TIBCO MDM Additional Indexes

    Indexes Overview

    Adding new or changed indexes can improve TIBCO MDM performance. Overthe last few months, TIBCO has accumulated the following indexes based on thetuning results for a large volume from various TIBCO customer sites. TIBCOplans to roll these indexes into the product in a future release. In the meantime,you can contact TIBCO Customer Support to obtain a script to generate all of thelisted indexes.

    Index for repository table:

    Each MCT_xxx table including index MCT_35550_IDX99 (CPRODUCTID,CPRODUCTIDEXT,and CMODVERSION) makes this index unique.

    This index increases the import and Database Loader speed and has the greatestimpact on large batches. TIBCO recommends dropping and re-creating this indexas non-unique.

    Index for Multi-value attribute table:

    TIBCO recommends creating an index on each MVT_xxx table(CPRODUCTKEYID, CMODVERSION) if an index does not already exist. Thisindex which is missing, affec


Recommended