tib cim bestpractices

Upload: sumanub6314

Post on 03-Jun-2018

243 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 Tib Cim BestPractices

    1/114

    TIBCOMDM

    Best Practices Guide

    Software Release 8.3.1Document Updated May 2014

    Two-Second Advantage

  • 8/11/2019 Tib Cim BestPractices

    2/114

    Important Information

    SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDEDOR BUNDLED TIBCO SOFTWARE IS SOLELY TO ENABLE THE FUNCTIONALITY (OR PROVIDE LIMITEDADD-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.

    USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS AND CONDITIONS OF ALICENSE 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 (AND WHICH IS DUPLICATED IN LICENSE.PDF) OR IF THERE IS NO SUCH SOFTWARELICENSE AGREEMENT OR CLICKWRAP END USER LICENSE AGREEMENT, THE LICENSE(S) LOCATEDIN THE LICENSE FILE(S) OF THE SOFTWARE. USE OF THIS DOCUMENT IS SUBJECT TO THOSE TERMSAND 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, TIB, TIBCO Adapter, Predictive Business, Information Bus, TIBCOBusinessConnect, TIBCO ActiveMatrix BusinessWorks, TIBCO Enterprise Message Service are either registeredtrademarks or trademarks of TIBCO Software Inc. in the United States and/or other 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 ALLOPERATING SYSTEM PLATFORMS FOR A SPECIFIC SOFTWARE VERSION ARE RELEASED AT THE SAMETIME. SEE THE README.TXT FILE FOR THE AVAILABILITY OF THIS SOFTWARE VERSION ON ASPECIFIC OPERATING 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 MAKEIMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED INTHIS DOCUMENT AT ANY TIME.

    THE CONTENTS OF THIS DOCUMENT MAY BE MODIFIED AND/OR QUALIFIED, DIRECTLY ORINDIRECTLY, BY OTHER DOCUMENTATION WHICH ACCOMPANIES THIS SOFTWARE, INCLUDING

    BUT NOT LIMITED TO ANY RELEASE NOTES AND "READ ME" FILES.This Product is covered by U.S. Patent No. 7,472,101.

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

    TIBCO Software Inc. Confidential Information

  • 8/11/2019 Tib Cim BestPractices

    3/114

    TIBCO MDM Best Practice Guide

    | iii

    Contents

    Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i

    Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

    Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vChanges from the Previous Release of This Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi

    Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

    TIBCO MDM Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

    Other TIBCO Product Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

    Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

    Connecting with TIBCO Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

    How to Join TIBCOmmunity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiHow to Access TIBCO Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

    How to Contact TIBCO Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

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

    Planning a TIBCO MDM Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    Multienterprise versus Single Enterprise Tenancy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Multienterprise and Single Enterprise Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Multienterprise and Single Enterprise Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    Chapter 2 Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

    File System Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    Temporary Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    Sent and Received Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    Work Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    Database Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    Scheduling Database Purge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    Performance Considerations While Running Purge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    Change Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    Backup Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    Configurations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    Data files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

  • 8/11/2019 Tib Cim BestPractices

    4/114

    TIBCO MDM Best Practice Guide

    iv | Contents

    Reducing Space Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    Chapter 3 Design Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    Attribute Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    Designing Data Models for Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    Identifying Related Entities and Attributes in a Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    Using the TIBCO MDM Relationship Table in Repositories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    Sparse Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    Record Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    Identifying Record Relationships during the Design Phase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Managing the Cardinality of Record Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    Managing Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    Softlinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    Effective Dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    Data Source Identification and Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    Naming Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    User-Defined Table and Column Names. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    Chapter 4 Installation and Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    Installation Choices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    Single Node Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    Highly Available or Fault Tolerant (HAFT) Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    ActiveSpaces and TIBCO MDM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    Java Versions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    Optimizing CPU Utilization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    Database Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    Table Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    Database Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    JMS Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    EMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    WebSphere MQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    Sequence Numbers and Caches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    Objects and Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    Managing Multiple TIBCO MDM Instances with Caches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    Cache Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    Managing Users and Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    Security Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    Lightweight Directory Access Protocol (LDAP) Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

  • 8/11/2019 Tib Cim BestPractices

    5/114

    TIBCO MDM Best Practice Guide

    Contents |v

    Data Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    Security Auditing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    Rulebases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    Validation Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    Initialization Rulebase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    Using Enumerations with Rulebases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    Security and Rulebases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    Optimizing Performance with Rulebases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    Using Lookups with Rulebases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Indexes and Rulebases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    Using Drop-Down Lists with Rulebases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    Initialization Rulebases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    Propagation and Rulebases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    Constraints and Rulebases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    Chapter 5 Deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51

    Task Prioritization through Isolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    TIBCO MDM Memory Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    Multiple TIBCO MDM Instances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    Failover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    Capacity Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    Using TIBCO MDM Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    Using Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Partial Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    Chapter 6 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59

    Initial Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

    Current Data Acceptance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

    Initial Load With Cleansing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    Input Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    Importing Nested Data Mapped to Multiple Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    Avoiding Failures during Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    Importing Large Batches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    Changing the Input Map During Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    Imports in the Approval Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    Using the CONTAINS Attribute for Imports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    Using SQL-Based Datasources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

    Loading Dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

  • 8/11/2019 Tib Cim BestPractices

    6/114

    TIBCO MDM Best Practice Guide

    vi | Contents

    Import Control Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    Database Loader versus Normal Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    Creating indexes for data sources (Database Loader only). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    Chapter 7 Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    Customizing Workflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    Using Java with Customized Workflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    Working with Transitions in Customized Workflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    Working with Caches in Customized Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    Using Rules in Customized Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    Performance Considerations in Customized Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Handling Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    Tuning Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    Using GetRecord for Tuning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    Using Rulebases for Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    Subflows versus Spawned Workflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    Subflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    Spawned Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    Chapter 8 Web Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

    Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    Optimizing Performance with Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    Single Sign-On and Web Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    Using Cache with Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    Concurrent Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    Synchronous Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    Workflows and Synchronous Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    Chapter 9 Performance Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    Performance Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    UI Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    Search Optimization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    Rulebases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Database Optimizations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    Timing Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    Preload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    Using JMX Console for Monitoring Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    Chapter 10 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

    Debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88TIBCO ActiveMatrix BusinessWorks Integration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

  • 8/11/2019 Tib Cim BestPractices

    7/114

    TIBCO MDM Best Practice Guide

    Contents |vii

    Using TIBCO ActiveMatrix BusinessWorks with TIBCO MDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    Recovering Failed Messages and Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

  • 8/11/2019 Tib Cim BestPractices

    8/114

    TIBCO MDM Best Practice Guide

    viii | Contents

  • 8/11/2019 Tib Cim BestPractices

    9/114

    TIBCO MDM Best Practices Guide

    Figures | i

    Figures

    Figure 1 Message Prioritization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

  • 8/11/2019 Tib Cim BestPractices

    10/114

    TIBCO MDM Best Practices Guide

    ii | Figures

  • 8/11/2019 Tib Cim BestPractices

    11/114

    TIBCO MDM Best Practices Guide

    Tables | iii

    Tables

    Table 1 General Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

    Table 2 Comparison between multi-enterprise and single-enterprise tenancy . . . . . . . . . . . . . . . . . . . . . . . 4

  • 8/11/2019 Tib Cim BestPractices

    12/114

    TIBCO MDM Best Practices Guide

    iv | Tables

  • 8/11/2019 Tib Cim BestPractices

    13/114

    TIBCO MDM Best Practice Guide

    |v

    Preface

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

    TIBCO MDM ensures accuracy and efficiency both inside the enterprise as well asthroughout the value chain so that multiple processes are optimally coordinated.TIBCO MDM delivers a multidomain horizontal platform to manage all types of

    information including products, customers, vendors, reference data, backendsystems, and so on.

    Topics

    Changes from the Previous Release of This Guide, page vi

    Related Documentation, page vii

    Typographical Conventions, page ix

    Connecting with TIBCO Resources, page xi

  • 8/11/2019 Tib Cim BestPractices

    14/114

    TIBCO MDM Best Practice Guide

    vi | Changes from the Previous Release of This Guide

    Changes from the Previous Release of This Guide

    This is the first release of this guide.

    P f | ii

  • 8/11/2019 Tib Cim BestPractices

    15/114

    TIBCO MDM Best Practice Guide

    Preface |vii

    Related Documentation

    This section lists documentation resources you may find useful.

    TIBCO MDM Documentation

    The 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 closed

    issues for this release.

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

    TIBCO MDM Users Guide: Read this manual to learn the TIBCO MDMfeatures. This manuals 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 in

    TIBCO MDM.

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

    TIBCO MDM Best Practices: Read this manual to learn the best practices whileusing the TIBCO MDM features and functionalities.

    Other TIBCO Product Documentation

    You may find it useful to read the documentation for the following TIBCOproducts:

    TIBCO MDM Process Designer Users Guide: This guide is a reference fordesigning workflows using the TIBCO MDM Process Designer graphical userinterface.

    TIBCO MDM Process Designer Tutorial: This guide is a tutorial for designing

    workflows using the TIBCO MDM Process Designer graphical user interface.

    viii | Related Documentation

  • 8/11/2019 Tib Cim BestPractices

    16/114

    TIBCO MDM Best Practice Guide

    viii | Related Documentation

    TIBCO MDM Repository Designer Users Guide: This guide is a reference fordesigning repositories using the TIBCO MDM Repository Designer graphicaluser 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 Users Guide: This guide is a reference fordesigning rulebases using the TIBCO MDM Rulebase Designer graphical userinterface.

    TIBCO MDM Rulebase Designer Tutorial: This guide is a tutorial for designing

    rulebases 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 SmartSocketsmessaging 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.

    Preface | ix

  • 8/11/2019 Tib Cim BestPractices

    17/114

    TIBCO MDM Best Practice Guide

    Preface | ix

    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 MyCommandto start the foo process.

    bold code

    fontBold 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. For

    example, if no parameter is specified, MyCommandis 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 several

    portlets. Portletsare mini-applications that run in a portal. To indicate a variable in a command or code syntax that you must replace.

    For example: MyCommandPathName

    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 the

    other. 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.

    x | Typographical Conventions

  • 8/11/2019 Tib Cim BestPractices

    18/114

    TIBCO MDM Best Practice Guide

    x | 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 (Contd)

    Convention Use

    Preface |xi

  • 8/11/2019 Tib Cim BestPractices

    19/114

    TIBCO MDM Best Practice Guide

    |

    Connecting with TIBCO Resources

    How to Join TIBCOmmunity

    TIBCOmmunity 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 Documentation

    You can access TIBCO documentation here:

    http://docs.tibco.com

    How to Contact TIBCO Support

    For 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.

    xii | Connecting with TIBCO Resources

    http://www.tibcommunity.com/http://docs.tibco.com/http://www.tibco.com/services/supporthttps://support.tibco.com/https://support.tibco.com/http://www.tibco.com/services/supporthttp://docs.tibco.com/http://www.tibcommunity.com/
  • 8/11/2019 Tib Cim BestPractices

    20/114

    TIBCO MDM Best Practice Guide

    |

    |1

  • 8/11/2019 Tib Cim BestPractices

    21/114

    TIBCO MDM Best Practices Guide

    |

    Chapter 1 Overview

    This document provides the best practices based on contributions from TIBCOMDM users who develop the software and implement it in a variety of TIBCOMDM projects. Some best practices may contradict others, because differenttargeted audiences may have mutually exclusive goals for the usage of thesoftware.

    The information contained in this document is provided as is. Apply yourjudgement and experience with TIBCO MDM to determine whether a particularbest practice applies to your environment.

    Topics

    Planning a TIBCO MDM Project, page 2

    Multienterprise versus Single Enterprise Tenancy, page 3

    2 | Chapter 1 Overview

  • 8/11/2019 Tib Cim BestPractices

    22/114

    TIBCO MDM Best Practices Guide

    Planning a TIBCO MDM Project

    TIBCO should be implemented in a phased manner to suit the requirements ofyour organization. A so-called big-bang approach delays completion of theimplementation and the realization of return-on-investment (ROI). If you use thebig-bang approach, it can take years to achieve a full implementation of allrequirements across all business functions.

    Instead, you should start with a smaller project with phased implementationcycles and define goals and ROI for each phase. Each project or phase can provideROI to your business. With a phased approach the implementation team candesign incrementally, make corrections in subsequent phases, and betterunderstand TIBCO MDM architecture's quirks and best practices. For a successfulTIBCO MDM project, you must train the implementation staff on the tools andmethodology.

    Multienterprise versus Single Enterprise Tenancy |3

  • 8/11/2019 Tib Cim BestPractices

    23/114

    TIBCO MDM Best Practices Guide

    Multienterprise versus Single Enterprise Tenancy

    An enterprise (also referred to as a company) is a logical unit that has almostcomplete data isolation (some global objects, such as global partners and datasources are shared). With TIBCO MDM, you can manage multiple enterprises inthe same instance. Managing one enterprise in an instance is called singleenterprise tenancy. Managing multiple enterprises in an instance is calledmultienterprise tenancy.

    Multienterprise and Single Enterprise Design ConsiderationsYou must decide early in the design process whether to use TIBCO MDM withmulti-enterprise or single-enterprise tenancy. You should take several factors intoconsideration when making this decision. For example, multienterprise tenancy isa good design choice if you use all the enterprises similarly and you want a singlepoint of operational control.

    Single enterprise tenancy is a good choice if you want physically separated

    enterprises to which you can separately assign the required resources. Thischoice, however, comes with overhead costs: the total resources needed tomaintain multiple single enterprise tenancies is significantly higher than thoserequired for a multienterprise tenancy.

    Before deciding on a multienterprise or single enterprise tenancy, considerwhether your configuration is likely to change. Separating an enterprise from amultienterprise tenancy to create a single enterprise tenancy is possible. However,

    doing so is tedious and requires several manual steps and consultation withTIBCO Support. Merging an enterprise from a single enterprise tenancy to amultienterprise tenancy is relatively easier but does require some manual steps.These steps may include recreating the enterprise in multienterprise tenancy andimporting the data and meta-data into the new environment).

    In multienterprise tenancies, using a single data store you can use a single set ofreporting tools for data analysis and aggregation across enterprises.

    You should also consider performance characteristics. In most cases, TIBCOrecommends a multienterprise tenancy if the enterprises are small (fewer than 50million records). Enterprises with records exceeding 300 million records should inmost cases be configured as single enterprise tenancies.

    4 | Chapter 1 Overview

  • 8/11/2019 Tib Cim BestPractices

    24/114

    TIBCO MDM Best Practices Guide

    Multienterprise and Single Enterprise Comparison

    The following table compares the features in a multienterprise tenancy with thefeatures in a single enterprise tenancy:

    Table 2 Comparison between multi-enterprise and single-enterprise tenancy

    Feature Multienterprise Single Enterprise

    Setup

    Multiple enterprises inone TIBCO MDMinstance.

    Database, cache, JMS,among others, shared byall enterprises in instance.(You cannot assignquotas to eachenterprise.)

    Each enterprise is in a separateTIBCO MDM instance.Database, cache, JMS, among

    others, separate for eachenterprise.

    Maintenance

    Software maintenance for

    all enterprises ismanaged together.

    Software maintenance for each

    enterprise is managedseparately.

    Configuration

    All configurations areshared, including singlesign-on and rolemapping, installedplug-ins and language

    packs, messageprioritization, messagelisteners, file watchers,ConfigValues andconfigurations.

    Some of thecustomizations, such aslook and feel, businessprocess rules, workflows,and rulebases, can beenterprise-specific.

    Configurations for eachenterprise are separate.

    Multienterprise versus Single Enterprise Tenancy |5

  • 8/11/2019 Tib Cim BestPractices

    25/114

    TIBCO MDM Best Practices Guide

    Data Isolation

    Data stored in shareddatabase and cache.TIBCO MDM enforceslogical separationbetween the enterprisedata. (Global businesspartners and lookup datasources defined for the

    TIBCO MDM enterprisethrough rulebases areshared across allenterprises.)

    All data is isolated.

    Performance

    Performancerequirements of differententerprises can

    potentially conflict. Alarge enterprise willconsume a large share ofsystem resources.

    Performance characteristics ofeach enterprise can be managedseparately.

    Table 2 Comparison between multi-enterprise and single-enterprise tenancy

    Feature Multienterprise Single Enterprise

    6 | Chapter 1 Overview

  • 8/11/2019 Tib Cim BestPractices

    26/114

    TIBCO MDM Best Practices Guide

    |7

  • 8/11/2019 Tib Cim BestPractices

    27/114

    TIBCO MDM Best Practice Guide

    Chapter 2 Maintenance

    This chapter explains the best practices for maintenance.

    Topics

    File System Management, page 8

    Database Maintenance, page 10

    Reducing Space Requirements, page 14

    8 | Chapter 2 Maintenance

  • 8/11/2019 Tib Cim BestPractices

    28/114

    TIBCO MDM Best Practice Guide

    File System Management

    Beginning with TIBCO MDM 8.0 release version, file system management is nowsimplified. Most data that was previously stored on the file system is now storedin a database. File system is used primarily for two important sets of files:

    Files uploaded to TIBCO MDM for attributes of type = FILE

    Temporary files generated during the processing of master data.

    Temporary DirectoryOn the file system, most of the generated files are temporary files. These arestored under $MQ_COMMON_DIR/Temp. The files stored under$MQ_COMMON_DIR/Tempare not required after they are used up by workflowprocesses, and can be deleted periodically. TIBCO recommends keeping the filesystem growth under check by periodically running the supplied script(bin/tibcrontab.sh) to clean up the older files or using a cronfacility in theUnix system.You can run the script through a scheduler. The script deletes theunnecessary files and you can customize the retention period.

    Reclaiming Space by Deleting Temporary Files

    In emergency situations, all the files and sub-directories under the$MQ_COMMON_DIR/Tempdirectory can be removed to reclaim space. Ensure that noworkflows are running when deleting all files from this directory. Runningworkflows may need recently created temporary files. To ensure no workflowsare running, shut down all TIBCO MDM instances or retain the files generated inthe last 10 days.

    Sent and Received Directories

    While sending messages in or out of TIBCO MDM through JMS, TIBCO MDMalso creates sentand receiveddirectories in $MQ_COMMON_DIR. These files are

    used for tracing, reconciliation, and debugging only. The sentand receiveddirectories keep a copy of the sent or received messages and you can removethese directories without affecting any process. These files are used for tracing,reconciliation, and debugging only.

    Work Directory

    Do not delete files stored under the $MQ_COMMON_DIR/workfolder. This folderdoes not grow significantly and is not expected to have many files.

    File System Management |9

  • 8/11/2019 Tib Cim BestPractices

    29/114

    TIBCO MDM Best Practice Guide

    If you are using a lot of attributes for which data type is defined as FILE, the filesare stored under $MQ_COMMON_DIR/work. As these files are version ed, the spacerequired to store data will increase proportional to the number of attributesdefined as file and versions of such records.

    Scheduling Database Maintenance

    TIBCO recommends scheduling a file clean-up job to run at periodic intervals. Todo this, use the tibcrontab.sh/.batsample script found in MQ_HOME/bin. Thisjob deletes temporary files created by TIBCO MDM. The sample script can beedited for different retention periods.

    10 | Chapter 2 Maintenance

  • 8/11/2019 Tib Cim BestPractices

    30/114

    TIBCO MDM Best Practice Guide

    Database Maintenance

    TIBCO recommends setting up a maintenance schedule for TIBCO MDM to clearolder logs and temporary files, and keep the database clean and manageable.

    For more details about the purge and tibcrontab functions, see TIBCO MDMSystemAdministration.

    Scheduling Database Purge

    The purge operation removes older record versions, changes history andworkflow trace data and helps maintain a clean database. You can invoke thepurge operation as a workflow, a command-line tool, or as a scheduled job.TIBCO recommends scheduling the data purge to run regularly.

    Beginning with TIBCO MDM 8.3.1release version, you can use interval-basedpurge to target records updated in a specified interval. Schedule history purges,for example, to run with an interval equal to 7 days to keep the history fromgrowing too large. You can also use purge to remove data which is no longerneeded. For example, test data which you can delete using the command-linepurge.

    If invoked as a workflow, the purge operation can only be run in two modes:deleting older record versions and deleting history. If invoked as a command-linetool, use the various options to trim unused test data, data sources, andrepositories.

    See Chapter 9, Configuring Purge in the TIBCO MDMSystemAdministration formore details about the purge operation.

    Performance Considerations While Running Purge

    While running, purge uses significant resources from the database, cache and textindex. While you can continue to use the system, the TIBCO MDM may appearsluggish. When data is removed from the database, the database updates all

    indexes.

    Purge consumes a large amount of database resources and therefore maynegatively affect performance. To avoid this, schedule purges to coincide withperiods of low or no activity and also schedule only one purge job at a time. If yourun a purge for the first time or after a long period after the last purge, it may takemore time to complete than a regularly scheduled purge.

    Database Maintenance |11

  • 8/11/2019 Tib Cim BestPractices

    31/114

    TIBCO MDM Best Practice Guide

    If you are running a purge for a repository (to clean up all records), performing animport for the same repository can generate resource contention and deadlocks.This can significantly slow the purge and import process.

    Performance Impact of Synchronization on Purge

    Synchronization of master data with external systems generates a large amount oftrack and trace data. Even if the amount of incremental data being synchronizedis small, TIBCO MDM tracks of the decision to skip all the records which were notsynchronized. If you are doing excessive synchronization, purge the data tomaintain the database size. TIBCO provides a purge job to trim thesynchronization data.

    Synchronization

    Consider the impact of Synchronization on capacity planning. The amount ofsynchronized data can be substantial and often requires significant disk space.

    When you synchronize data (except DBDump), TIBCO MDM maintains a

    detailed history. This history includes the following: Synchronization status: When and with which system or partner.

    Synchronized data: The data for each record that was synchronized. Thechanged data is recorded because data can be transformed duringsynchronization.

    Change ManagementUse a version control system to track all configurations and customizations.Instead of deploying the files directly to TIBCO MDM instances, check them intothe version control system, then use scripts to deploy them to target servers.TIBCO provides a sample script to automate deployment from version controlsystem.

    To customize the components provided in the $MQ_COMMON_DIR/Work/standard

    folder, make a copy of the component in an enterprise-specific folder. TIBCOMDM prioritizes files within enterprise-specific folders even if they have thesame name as the files under the standard folder. You can change artifacts underthe standard folder with a new version or hot fix, however are alwaysoverwritten.

    12 | Chapter 2 Maintenance

  • 8/11/2019 Tib Cim BestPractices

    32/114

    TIBCO MDM Best Practice Guide

    Backup Strategies

    TIBCO MDM data is stored in two separate data stores: files and a relationaldatabase.

    Configurations

    TIBCO recommends keeping all configuration files in a version control system totrack changes. Take regular backups whenever these components are changed.When creating backups, be sure to do the following:

    Ensure that all configuration files in $MQ_HOME/Configare backed up. Thesefiles affect the behavior of the TIBCO MDM application.

    Back up the ECM.earfile. This is the TIBCO MDM application that getsunpacked and deployed into the application server. TIBCO recommendsbacking up this file for every change made to its contents, such as visualcustomization, custom function, custom workflow activities and custom webservices.

    Check in all the modified application server configuration files into yourversion control system. The configuration files for the supported applicationservers are:

    Standalone.xml, for JBoss Application Server

    /Configfiles for WebLogic Application Server and WebSphereApplication Server

    For more information on configuration files, refer to the Installing onApplication Server chapter in the TIBCO MDM Installation and ConfigurationGuide.

    Store all the enterprise-specific configurations in $MQ_COMMON_DIR. Back upand check these configurations into your version control system on a regularbasis.

    Data files

    All TIBCO MDM data files are in the $MQ_COMMON_DIR/workdirectory which youshould back up. You do not need to back up files under the following directories:

    /temp

    /sent

    /received

    Backup Strategies |13

  • 8/11/2019 Tib Cim BestPractices

    33/114

    TIBCO MDM Best Practice Guide

    Database

    In addition to your company's general backup strategy, TIBCO recommends thatyou do the following for TIBCO MDM:

    Always back up the database first before backing up $MQ_COMMON_DIR.

    Back up the entire schema for TIBCO MDM.

    14 | Chapter 2 Maintenance

  • 8/11/2019 Tib Cim BestPractices

    34/114

    TIBCO MDM Best Practice Guide

    Reducing Space Requirements

    You can reduce disk space requirements by employing the following strategies:

    Use in-memory workflows.

    Reduce the amount of data collected for each workflow step, including theintermediate documents.

    Remove the output parameter if the output document of a step is not needed.

    Modify the out-of-the-box workflow to remove parameters you do not need to

    extract the attributes. Tune the in-memory workflow by specifying appropriate values for track and

    trace levels.

    Review the options and configurations for workflow and rulebase tracing.You can eliminate some of these if you do not need to specify log options ofEvaluateRulebase to generate error report file.

    Review the configuration of your production environment to ensure that

    request and response files for web service requests are not generated.

    |15

    D i C id ti

  • 8/11/2019 Tib Cim BestPractices

    35/114

    TIBCO MDM Best Practices Guide

    Chapter 3 Design Considerations

    This chapter explains the best practices during the design and development of aTIBCO MDM solution.

    Topics

    Attribute Groups, page 16

    Repositories, page 17

    Sparse Repositories, page 20

    Record Relationships, page 21

    Managing Hierarchies, page 23

    Softlinks, page 25

    Effective Dates, page 26

    Data Source Identification and Design, page 27

    Naming Conventions, page 28

    User-Defined Table and Column Names, page 29

    16 | Chapter 3 Design Considerations

    Attrib te Gro ps

  • 8/11/2019 Tib Cim BestPractices

    36/114

    TIBCO MDM Best Practices Guide

    Attribute Groups

    Attribute groups in TIBCO MDM group together attributes that are similar orshare security constraints. You can use Attribute groups to:

    Display records in an automatically generated tabbed UI.

    Define security and data visibility settings.

    Assign data custodians for governance and route work items.

    Assign rejection comments for a group instead of individual attributes.

    You can apply rules to attribute groups to manage and organize attributes and toperform the following actions:

    Hide entire attributes-based users, roles, or actions (for example, create andedit)

    Group together attributes that have similar behavior. For example, you cangroup together read-only attributes, or attributes that are hidden for certainusers.

    Create a data entry wizard by hiding attribute groups until certain conditionsare met. For example, you can hide subsequent attribute groups until the firstattribute group has been populated.

    Hide attribute groups from specified users. Such rules must also be reflectedin any validation rules. Otherwise, the rule may fail validation because a usercannot populate a field they cannot see.

    Repositories |17

    Repositories

  • 8/11/2019 Tib Cim BestPractices

    37/114

    TIBCO MDM Best Practices Guide

    Repositories

    A repository can have a large number of attributes and a well-designed repositorykeeps these attributes separate. For example, the number of base attributes thatapply to all records across all categories should not exceed 100.

    Designing Data Models for Repositories

    Use standard database modeling principles to identify attributes, objects, andrelationships during the initial design of new data models.

    After you have identified all the objects and relationships, consider the questionsin the following table:

    Design Principle Checklist

    Are there be frequent traversals to many levels of relationships? Shouldthese objects be denormalized to reduce the depth of hierarchy?

    Are there many small objects which can be denormalized into onebigger object? This may result in a sparse table with many nullattributes. If you have many small tables which are associated withanother table in a relationship, consider denormalizing it and mergingthem into one.

    Are there too many relationships between objects? Could theserelationships be reduced?

    Is a relationship cardinality expected to be very high (for example,100s)? If so, consider removing the relationship and using a softlink.Alternatively, you can use an intermediate object to group the childrecords.

    Are the attribute sizes, especially for Strings correct? After the data ispopulated, you can change the attribute sizes, however it is difficult.

    Some of the attribute size changes are not allowed, so TIBCOrecommends that you define the correct attribute size during thedesign stage.

    18 | Chapter 3 Design Considerations

    D i P i i l Ch kli t

  • 8/11/2019 Tib Cim BestPractices

    38/114

    TIBCO MDM Best Practices Guide

    Designing Data Models for Repositories Using the Out-of-the-Box UI

    If you are using a TIBCO MDM out-of-the-box UI, the complexity and depth ofdata model can have a significant impact on the UI. Small, highly normalized data

    models, for example, result in poor UI usability and performance because youneed to perform many clicks to view all data.

    To optimize out-of-the-box UI performance and usability, consider the followingpoints when designing a data model:

    Each attribute group is typically mapped as one tab on record UI. Attributegroups are arranged according to the sequence assigned and attributes arearranged in the order of position within the attribute group. You can provide

    additional UI specifications to combine data from more than one attributegroup or adjust the positions of groups and attributes by changing the order.

    The relationships and related records show up in the navigation hierarchy.

    Effective dates introduce the drop-down boxes to enable users to navigatebetween different time periods.

    Using Perspectives you can select different views. By default, the UI provides

    a set of attributes in record header and in relationship hierarchy. You canchange this by configuring the desired attributes through Configurator.

    Are the attribute data types correct? If in doubt, consider using String.After the data is populated, you can still change the data types but it is

    difficult. In some cases, change in data type is not possible due to staledata which causes the conversion to fail. In String datatype providedattributes are defined as String. In this case, TIBCO MDM skips thechecks to see if the data is the appropriate data type. In such cases, usevalidation rules to validate the data.

    Do you really need effective dates for repository and relationships?Effective dates impact performance and introduce complexity in rules,

    use this feature sparingly.

    Can you present any perspectives in a simplified view of the datamodel?

    Are there a large amount of specialized objects that result in smalltables, each with little additional information? If so, combine them intorepository.

    Does the repository have a large number of attributes? If so, considersplitting it.

    Design Principle Checklist

    Repositories |19

    Identifying Related Entities and Attributes in a Repository

  • 8/11/2019 Tib Cim BestPractices

    39/114

    TIBCO MDM Best Practices Guide

    Identifying Related Entities and Attributes in a Repository

    TIBCO MDM already has defined entities to manage. Follow these steps toidentify all related entities and attributes:

    1. Normalize the resulting model.

    2. Associate the subentities with entities through relationships or foreign keylookups.

    3. Separate the entities from the list that store data coming from external sources.For example, if you are getting addresses from external systems to store inTIBCO MDM, the address may be mapped to the repository ADDRESS andthe data acquired from the external system is a data source DS_ADDRESS.

    4. Denormalize the tables with access patterns in mind. For example, you canhave a Customer entity where a customer has a phone number stored inPhone entity. However, if one of the phone numbers is the main phone that isalways accessed along with the customer and is logically considered part ofthe customer details, you may want to store this phone number as an attributein the Customer entity itself.

    5. Group attributes logically and assign positions to the attributes within groupso that they are sequenced in a logical order.

    Using the TIBCO MDM Relationship Table in Repositories

    The TIBCO MDM relationship table is a generic association table that stores thefollowing types of associations and relationships:

    Relationships between records, defined in the repository model Association of repository with output maps and input maps

    Association between input maps for multirepository import and betweenoutput maps for multirepository export.

    Association between attributes and attribute groups.

    Hierarchy of classification codes and association with records.

    Different types of relationships are identified by different relationship types. Forexample, a separate table is used for storing the associated data for eachrelationship associated with a repository that also has any relationship attributes.

    More than one relationship of the same type is not possible between any tworecords. To create such relationships first create an intermediate association object.

    20 | Chapter 3 Design Considerations

    Sparse Repositories

  • 8/11/2019 Tib Cim BestPractices

    40/114

    TIBCO MDM Best Practices Guide

    p p

    Sparse repositories have many columns that do not apply to all the records andmay be null for most. Such null columns are efficiently handled by databases.

    TIBCO MDM does not allow inheritance. This means that if the model requiresyou to model subobjects that vary slightly, model them in the same repository anduse a record type to identify different types of objects. This is calleddenormalization of the data model.

    Repositories have a limit of 1024 attributes. However, with category-specificattributes, you can define unlimited attributes as category-specific. You can usethis method to exceed 1024 attributes in a repository.

    Record Relationships |21

    Record Relationships

  • 8/11/2019 Tib Cim BestPractices

    41/114

    TIBCO MDM Best Practices Guide

    p

    Using Record relationships in TIBCO MDM you can bundle together and retrievecollections of related records. When a parent record is queried, TIBCO MDM mustevaluate all of the related records and potentially retrieve these and any relatedsubrecords (if configured to do so). Relationships in TIBCO MDM can be apowerful tool. However, misused relationships can negatively impactperformance.

    Use relationships only when they are required to obtain bundles of data. Someexamples include the following:

    Using the relationship between a rail line table and the track table you canquery all of the tracks that make up a line.

    Using the relationship between CarModel and CarParts you can identifywhich car Models use which car parts. (You can use reverse relationships inTIBCO MDM, so an extra validation check is to see if the reverse would alsomake sense.)

    Identifying Record Relationships during the Design Phase

    Identify the relationships early in the design phase because relationships affectthe whole solution. The later you define or remove relationships the larger theimpact it has on the design.

    TIBCO MDM supports the concept of a many to many relationship. In BusinessStudio you can document different multiplicities, but these need to be enforced by

    using rulebases to travel up and down the relationship tree counting instances.

    Managing the Cardinality of Record Relationships

    TIBCO MDM manages all relationships as peer to peer, many-to-many. Therefore,you need not define cardinality. However, it is better to define cardinality in therepository model for documentation. If cardinality has to be enforced, use the

    rulebase.

    If the cardinality is expected to be more than 500, you encounter performanceissues. For example, if a Car comprises over 500 parts, you should group the parts(door parts, cabin parts, suspension parts). This reduces the amount of 'crawling'over relationships that TIBCO MDM needs to complete. Larger cardinality resultsin performance degradation for all channels, especially on the UI.

    22 | Chapter 3 Design Considerations

    Use the following strategies to keep cardinality manageable:

  • 8/11/2019 Tib Cim BestPractices

    42/114

    TIBCO MDM Best Practices Guide

    Create an intermediate group object. For example, if a customer has morethan 500 accounts, create an account group object to bunch accounts such

    that each group has no more than 100 accounts. Configure TIBCO MDM to exclude relationships from parent to child or

    reverse if the navigation is always in one direction.

    Define the relationships as a softlink. The relationships between records areexplicitly maintained if defined as a softlink, and are not searched asversion-specific.

  • 8/11/2019 Tib Cim BestPractices

    43/114

    24 | Chapter 3 Design Considerations

    Parameter Description

  • 8/11/2019 Tib Cim BestPractices

    44/114

    TIBCO MDM Best Practices Guide

    tibco.optimization.recordbundle.excluderelationship Specifies whichrelationships you can

    ignore for navigationthrough bundling. The listcan include relationshipsdefined for either direction(forward or backward). Itis typically used to enforceone way navigation.

    com.tibco.cim.optimization.recordview.skipcustomvalidation

    Specifies that customvalidation class specifiedfor a record can bebypassed for viewing. Thedefault value is true,unless you want tooverride the validationclass with some custom

    code.

    com.tibco.cim.ui.optimization.recordsearch.relationship.

    depth

    Defines the depth of thehierarchy available forConfiguration of the searchpanel. This parameterdetermines the depth ofsearch within the

    hierarchy.

    com.tibco.cim.optimization.recordsearch.relationship.dep

    th

    Defines the depth of thehierarchy for search. Itapplies to web services.

    Softlinks |25

    Softlinks

  • 8/11/2019 Tib Cim BestPractices

    45/114

    TIBCO MDM Best Practices Guide

    Consider using a softlink if two records are related and referred to together but

    are not updated together. Softlinked records are obtained whenever required andhave the following attributes:

    You cannot propagate data down to softlinked records.

    Querying softlinked records using the SOAP GetRecord service does notreturn any soft linked records.

    Softlinked records are not validated when the root record changes.

    Despite these limitations, softlinks are an effective way to relate records togetherin a fast, efficient manner.

    26 | Chapter 3 Design Considerations

    Effective Dates

  • 8/11/2019 Tib Cim BestPractices

    46/114

    TIBCO MDM Best Practices Guide

    Future effective dates in TIBCO MDM are a means to complete and confirm

    records that become active at a specified date in the future. This is useful forexpected changes such as new product releases, changes to employment details,and price changes.

    When using future effective dates, keep the following best practices in mind:

    Always try to use effective dates in a linear fashion between record versions.Ensure that the later version of a record has the later effective date than theearlier versions. If this is not the case, the earlier versions (for example,version 5 with a later effective date than version 6) can overwrite the goldencopy, which can lead to data inconsistencies. To avoid this, use rulebases andapproval cycles to confirm the dates being used are correct and that earlierdates are not used.

    Effective dates in repositories and records have an impact on both memoryand performance in TIBCO MDM.

    Versions are only identifiers and do not imply ordering. A version 6 maybecome the golden copy before version 3.

    Data Source Identification and Design |27

    Data Source Identification and Design

  • 8/11/2019 Tib Cim BestPractices

    47/114

    TIBCO MDM Best Practices Guide

    Developers spend a great deal of effort to ensure that the data from other systems

    is mapped correctly to TIBCO MDM. You can import such external data usingdata source.

    Most data sources have already been identified for use in TIBCO MDM and newones are built to fill in gaps or present the existing information better. Thefollowing best practices should help design data sources to gain maximumbenefit:

    Whenever possible identify which data sources present the most accuratecollection of data for any repositories and use it to populate your primary keyfields and any other data fields.

    Use the same data source for any tables that store similar information. Forexample, if you have a data source that provides all customer ID information,use this for all tables (such as Business and Normal customers) where the ID isrequired. Splitting it over two or more data sources gives rise toinconsistencies and degrades the quality of the data within TIBCO MDM.

    You can join more than one data source to merge data into a single repository.You can then map different data source data to different parts of the repositoryin just one action.

    Do not transform the data while mapping data source to input map usinginput map expressions, which is slow and has limited functionality. Insteaduse rulebase during import to transform the data.

    If a lot of data transformation and lookups are required, prepare the databefore importing it into TIBCO MDM. While TIBCO MDM is able to completelookups and change data, it may be computationally expensive and timeconsuming. For example, a simple data lookup where an ID is converted intoa text value is acceptable within TIBCO MDM. However, if it has to look up avalue and then execute a collection of rules based on this value, which thenchanges other attributes, TIBCO recommends performing this externally.TIBCO MDM executes these rules every time a record (in hundreds or

    thousands) is presented to it. There are a variety of ways to achieve this. Forexample, you can use the following:

    TIBCO Clarity for data discovery and data transformation.

    ActiveMatrix BusinessWorks (or similar) to access the data required fromthe source system. Process the data internally to produce an end result thatadheres to the required business rules.

    Other ETL tools such as Kettle.

    28 | Chapter 3 Design Considerations

    Naming Conventions

  • 8/11/2019 Tib Cim BestPractices

    48/114

    TIBCO MDM Best Practices Guide

    TIBCO MDM provides a large number of resources, including data repositories,

    data sources, synchronization profiles, and synchronization formats. TIBCOrecommends using a naming convention for each type of object. The following arethe recommended suffixes for each type of object:

    Repositories: None

    Back end Systems: BS

    Data sources: DS

    Input Maps: IM

    Output Maps: OP

    Classifications: CS

    Synchronisation Formats: SF

    Synchronisation Profiles: SP

    Subsets: SB

    TIBCO recommends providing a descriptive name. The name of data sources, forexample, should reflect where the data source is getting its data and from whattype of data it contains. Studio projects can be assigned a prefix based on theprojects containing enterprise. For example, PR1 for a project from enterprise 1and PR2 for a project from enterprise 2.

    Ensure that all repositories are given a table name instead of using generated

    table names. Specifying table names makes the names consistent across differentenvironments (development, test, production). Using generated table names canlead to portability issues. The table name you specify must be unique in thedatabase schema. The naming convention for table names is to prefix it with aproject acronym. For example, a customer table name can be E2_CUSTOMERwhereE2 is the project name.

    By following these it should be possible to give unique names to each resource in

    TIBCO MDM that reflects its type, function, and the enterprise to which itbelongs.

    User-Defined Table and Column Names |29

    User-Defined Table and Column Names

  • 8/11/2019 Tib Cim BestPractices

    49/114

    TIBCO MDM Best Practices Guide

    TIBCO MDM enables user-defined names for database entities such as tables and

    columns. TIBCO MDM automatically generates names with internal conventionsif no table or column names are provided. These automatically-generated namescan be cryptic or generic. Automatically-generated names are likely to change ifthe table is ported from one repository to another. Metadata associated withautomatically-generated names can also change. In most cases, TIBCOrecommends specifying the database tables and columns.Automatically-generated names are useful in development environments, whereusers do not want to name tables and columns and do not want to exposedatabase details.

    User-defined tables and columns make it easier for external tools like TIBCOSpotfire to access the database. User-defined names are also more easilyunderstood by SQL programmers.

    User-defined table names must be unique within the same database instance. Youcannot assign the same table name to more than one repository even if they aredefined in different enterprises as long as these enterprises are deployed in thesame TIBCO MDM instance. You cannot import metadata into another enterprisewithin the same instance because attempts to create a duplicate table.

    30 | Chapter 3 Design Considerations

  • 8/11/2019 Tib Cim BestPractices

    50/114

    TIBCO MDM Best Practices Guide

    |31

    Chapter 4 Installation and Configuration

  • 8/11/2019 Tib Cim BestPractices

    51/114

    TIBCO MDM Best Practices Guide

    This chapter explains the best practices for installation and configuration.

    Topics

    Installation Choices, page 32

    JMS Management, page 40

    Caches, page 41

    Security, page 43

    Analytics, page 45 Synchronization, page 46

    Rulebases, page 47

    32 | Chapter 4 Installation and Configuration

    Installation Choices

  • 8/11/2019 Tib Cim BestPractices

    52/114

    TIBCO MDM Best Practices Guide

    This section discusses the decisions you must make when installing TIBCO

    MDM.

    Single Node Installations

    Single-node installations provide the simplest installation and permit quick starts.For most development purposes single-node installations are acceptable and thebest choice. For single-node installations, all the required software is installed on

    one machine, port numbers are unchanged, and TIBCO MDM is started in seedermode with no external server.

    If you are going to perform a single-node installation, consider using theembedded PostgresSQL database so you can use the simplified installer withoutseparate database installs.

    The default setup works well for small datasets (for example, under 50K). Thedefault setup also works for larger datasets if you import or export data in chunks

    of 50K. For larger datasets, database tuning may be required.

    User testing (such as User Acceptance Testing) generally requires a separateenvironment.

    Highly Available or Fault Tolerant (HAFT) Installations

    TIBCO recommends using highly-available or fault-tolerant (HAFT) installations

    in any production or preproduction environment. To create a HAFT installation,configure several ActiveSpaces nodes across your production and nonproductionenvironments to support failover. As of TIBCO MDM 8.3.1 release version, youcan also create the spaces externally and configure them as needed.

    You need not set up the application servers into clustered mode to ensure they arehighly available. TIBCO MDM nodes use a load balancer to distribute the loadbetween multiple TIBCO MDM nodes. In most cases, using a software load

    balancer such as a webserver is sufficient.Ensure that all TIBCO MDM instances use the same cache configuration file.

    Configuring TIBCO MDM Instances as Seeders in HAFT Installations

    If you configure TIBCO MDM instances as seeders, each instance connects to thesame metaspace and forms a cluster. Seeders can continue operating even aftertheir connection to external ActiveSpaces nodes is lost. In addition, seedersreduce network traffic.

    Installation Choices |33

    Configuring Subnets in HAFT Installations

    Typically, production and preproduction boxes are installed on similar hardwareh k ( b ) h f f

  • 8/11/2019 Tib Cim BestPractices

    53/114

    TIBCO MDM Best Practices Guide

    in the same network space (subnet). This type of setup can cause a configurationerror to easily confuse the cache and messaging setups between theseenvironments. To avoid such confusion, ensure that the:

    Configured ActiveSpaces nodes do not read from each others metaspaces byusing separate metaspaces and modifying listen and discovery URLs for eachenvironment. The suggested naming convention for metaspace names isenv_MDMwhere is a three to five character acronym for theenvironment.

    You can partition the JMS setup between environments by using different portnumbers or JMS server machines.

    Sizing Considerations in HAFT Installations

    When sizing your environments, set the CPU maximum loading to 75% for anysingle TIBCO MDM node when one or more of the other nodes fail. CPU usage ismuch lower in normal operation, but in this type of sizing the application can

    perform without degradation in case of failure. Contact TIBCO support forassistance in setting up your environment.

    Set up a web server or load balancer to equally distribute the load among allTIBCO MDM instances. Ensure that sticky sessions are configured. Sticky sessionsmean that once a session is started on one of the TIBCO MDM instances allsubsequent requests for that session will be sent to same TIBCO MDM instance.

    Size the cache to keep all the master data in memory. If the required memory is

    greater than 16 GB, consider using an external cache server (and switching TIBCOMDM to use leech mode). External cache servers maintain cached data even whenTIBCO MDM is restarted, to avoid reloading.

    Use the disk sizing spread sheet provided by TIBCO Support to estimate the diskspace required, as the space requirement depends on your repository definitions.

    Configuring EMS in HAFT Installations

    When setting up highly-available or fault-tolerant (HAFT) EMS servers forTIBCO MDM, use database-backed queue storage (against a DB cluster). Thisalleviates any issues with SAN boxes and file-based replication. Note that adatabase-backed EMS storage can negatively impact performance. Consult theEMS documentation to understand the benefits and drawbacks of using EMS.TIBCO recommends that you set the expiry on Change Notification Messagequeue to a small number, for example one to two minutes.

    34 | Chapter 4 Installation and Configuration

    Security Considerations

    The following information lists some important security considerations to use:

  • 8/11/2019 Tib Cim BestPractices

    54/114

    TIBCO MDM Best Practices Guide

    Use SSL configurations between TIBCO MDM and the EMS cluster to

    improve security if the EMS servers are in different geographical and networklocations.

    Use authentication to secure the EMS connections.

    Create a list of allowed servers to protect communication between Patternsand TIBCO MDM when you start Patterns engines,

    Set up an authentication realm to secure the JMX connection.

    Use SSL for browser to TIBCO MDM server connections.

    Logging

    Set logging to DEBUG for development and test environments and to INFO orERROR for production environments.

    If access to the TIBCO MDM machine is restricted for developers:

    Move the log files to separate directories and drives or mounts so developerscan read the contents.

    Delegate an TIBCO MDM user as the Support Engineer to login to TIBCOMDM to get logs and run diagnostic queries.

    Set up the TIBCO MDM instance to access JMX remotely.

    ActiveSpaces and TIBCO MDM

    TIBCO MDM uses ActiveSpaces, an in-memory grid, to minimize the reading thedatabase and reducing the end-to-end response time. Configuring ActiveSpacesto provide the best performance is an iterative process. Use the followingguidelines to help configure ActiveSpaces for your own needs.

    Seeder and Leech Modes

    Although TIBCO MDM is configured in the Seeder mode, it is not always theoptimal choice. You can change the modes using the TIBCO MDM Configurator.You must restart all the TIBCO MDM instances after making such changes.

    The following information describes and compares Seeder and Leech modes:

    Seeder: In Seeder mode, TIBCO MDM uses the CacheConfig.xmlfile tocreate its own embedded cache node on the same machine that TIBCO MDM

    is running. This setup is advantageous because the allocated memory is

    Installation Choices |35

    running on the same machine as TIBCO MDM and therefore has substantialperformance gain. However, this increases the memory requirements on thehost machine considerably.

  • 8/11/2019 Tib Cim BestPractices

    55/114

    TIBCO MDM Best Practices Guide

    y

    Leech: TIBCO MDM in leech mode does not create an embedded cache andrelies on external cache servers. This setup means that you can spread out thecache over several machines. If TIBCO MDM cannot access any cache nodes itfails and does not function correctly.

    If TIBCO MDM instance is a Seeder, the memory used by the TIBCO MDMinstance is also the same as the cache configuration. This memory is in addition tothe JVM heap assigned.

    Virtualized Environments and ActiveSpaces

    TIBCO does not recommend virtualized environments for ActiveSpaces and anyoperation on a virtual machine that stops or re-initializes the network makes thecache non-functional. For example, if you plan to take a snapshot, you should firstshut down the caches.

    Sizing Considerations for ActiveSpaces

    TIBCO Support has a collection of resources for accurately estimating the spacerequired for your solution. TIBCO MDM provides a Cache Calculationspreadsheet to use in your calculations. For more information on documentation,refer to TIBCO MDM System Administration.

    As in all memory-based applications (especially long running ones), ActiveSpacesis susceptible to memory fragmentation similar to the main memory

    fragmentation. Symptoms include increased CPU utilization, slower responsetimes, and higher page reads.

    TIBCO recommends scheduling a restart to clean and rebuild the cache. Also,never allocate more than 80% of physical memory to ActiveSpaces. For the cacheto utilize the memory efficiently, all instances of cache must use the sameCacheConfig.xml.

    Configuring ActiveSpaces

    TIBCO MDM ships the following three configurations, any of which are a goodstarting point for different environments:

    Config/CacheConfig.xml

    CacheConfig.dev.xml

    CacheConfig.large.xml)

    36 | Chapter 4 Installation and Configuration

    All the TIBCO MDM nodes must use identical cache configuration file and allseeders must have identical memory allocations. You can accomplish this byusing the same CacheConfig.xmlfor each TIBCO MDM instance. When an

  • 8/11/2019 Tib Cim BestPractices

    56/114

    TIBCO MDM Best Practices Guide

    external cache server is added, it must support the memory specified in this

    configuration file.Review the following two example CacheConfig.xmlfiles provided with TIBCOMDM:

    CacheConfig.dev

    and

    CacheConfig.large

    For more information about your configuration, refer to TIBCO MDMSystemAdministration.

    CacheConfig.dev

    and

    CacheConfig.large

    Setting the replication count to greater than 0 configures ActiveSpaces to makecopies of data across different ActiveSpaces nodes, but it requires more memory.CacheConfig.large.xmlhas preconfigured caches which must be replicated.

    Java Versions

    Currently, TIBCO MDM requires the Java versions listed below. Consult thereadme shipped with your installation of TIBCO MDM for the most up-to-datesoftware requirements.

    JBoss Application Server

    JRE 7

    Sun JVM

    Weblogic Application Server

    JRE 6

    Sun JVM or JRrockit JVM

    WebSphere Application Server

    JRE 6

    IBM JVM

    For HP platforms, use HP JVMs.

    Installation Choices |37

    TIBCO MDM is not certified with Open JDK. However, if you use Open Java andencounter TIBCO MDM problems that require support, download and point tothe Oracle release (JAVA_HOME). You can then verify that the issue is reproducibleb f i TIBCO

  • 8/11/2019 Tib Cim BestPractices

    57/114

    TIBCO MDM Best Practices Guide

    before contacting TIBCO support.

    Optimizing CPU Utilization

    Due to the Inbound-Outbound nature of TIBCO MDM, you cannot achieve morethan 45% CPU utilization. A large number of cores and CPUs produce a largenumber of threads, which result in a high throughput. The CPU utilizationincreases if the Inbound-Outbound is performing well including the database,networks, and file system performance. To increase the CPU usage, you can:

    Increase thread counts for workflow queue, HTTP, web services, AsyncCallQueue, and Active login. As you increase the threads, you need to allocatemore memory to JVM. A reasonable estimate is 300 MB per workflow or asyncqueue listener (whichever has a higher number of listeners) or 200 MB perweb service thread. Increasing the thread count without increasing the JVMheap, may result in Out of Memory errors. If your bundles are of average size(20-40 records per bundles), the memory per thread is 250 MB and 150 MB

    respectively.

    Start more TIBCO MDM instances on the same machine and assign each nodeidentical memory and threads to maintain a well balanced load.

    38 | Chapter 4 Installation and Configuration

    Database Management

  • 8/11/2019 Tib Cim BestPractices

    58/114

    TIBCO MDM Best Practices Guide

    This section discusses the best practices for database management.

    Table Spaces

    Generally large tables should be kept in separate table spaces but newertechnologies may make this practice redundant. Oracle Automatic StorageManagement (ASM), for example, does not require storing large tables in separatetablespaces. Nevertheless, if you keep a large table in its own separate tablespace,

    the database administrator can manage the tables more efficiently.

    Database Performance

    Database performance changes as data is added or deleted. When more than 10%of data has changed or been added, a database may require DBA attention. TheDBA should review the following:

    Set up a job to collect optimization statistics regularly. Set up a job to generate Automatic Database Diagnostic Monitor (ADDM),

    Automatic Workload Repository (AWR), or similar reports at regularintervals.

    Review the report for recommendations and adjust database parametersaccordingly. For example, reports may indicate changes to memory allocatedto a database instance. If an ADDM report is regularly checked and acted

    upon, no database performance issues can occur.

    Regularly purge data using the purge program. (See Scheduling DatabasePurge, on page 10.)

    If there are many deletes (due to purge), indexes and tables may becomefragmented and after reviewing the statistics report you may have todefragment the indexes regularly.

    If a database report shows that inserts or deletes are running slow, it mayindicate that:

    Disks are slow or access paths ar