IBM InfoSphere Master Data Management Server v10.1.0.0.30 Readme


Abstract

Readme documentation for IBM® InfoSphere™ Master Data Management Server for Weblogic® and IBM WebSphere® Application Server for Version 10.1.0.0.30 including installation-related instructions, prerequisites and co-requisites, and list of fixes.

Readme file for: IBM® InfoSphere™ Master Data Management Server for WebSphere® Application Server
Product/Component Release: 10.1.0
Update Name:10.1.0.0.30
Fix ID: MDM_10.1.0.0.30_ifix_WAS

Contents

Download location
Prerequisites and co-requisites
Installation information:
   Prior to installation
   Installing
   Important Changes
Contacting IBM Software support
List of fixes
Copyright and trademark information

Download location

Download fixes from Fix Central (select Information Management -> InfoSphere MDM Server -> 10.1.0 -> AIX)
http://www-933.ibm.com/support/fixcentral/

Below is a list of products/components names, platforms, and file names that apply to this ReadMe file.

Product/Component Name:

Platform:

File Name:

InfoSphere MDM Server 10.1.0.0.30

WebSphere Application Server

MDM1010030_WAS.jar


Prerequisites and co-requisites

This is a roll-up fix that contains all the fixes from 10.1.0.0.1 to 10.1.0.0.29. It can be installed directly on top of MDM 10.1.0, or any hot fix from 10.1.0.0.1 to 10.1.0.0.29


Installation information:

Prior to installation

Client customizations or extensions may impact the update process. Please consider the impact of custom configurations and extensions before proceeding with the update of this hot fix to your environments.

Installing

To install, replace or merge the assets (such as jars, properties files, XSDs, etc.) in your environment with the assets included in this hot fix, execute the provided scripts (if provided) and redeploy. Remember to make a backup of the original environment before applying the hot fix in the event that there is cause to roll back the hot fix. For more details on how to deploy a hot fix, please refer to the document 'DeployFix_Guidelines.pdf'.


UIs installation (iFix10.1.0.0.16):

**************************
The fix uses the "Double Submit Cookies" technique mentioned in the XSRF Prevention Cheat Sheet. When the server gets a POST request from the client, it will check to see if the request contains a
csrfToken parameter (which is the session ID). If it matches with the server's value, it will continue with the request. Otherwise, it redirect to the specified page in the filter. With this fix, the UI need to add a new hidden field within all the form tags to include the csrfToken in its request. The fix also solved Product UI Session Identifier Not Updated issue.

 

Steps to apply fix (For non-customized UI):

 

1. Go to WAS Admin Console, then go to Servers -> Server Types -> WebSphere application servers, Stop UI instances. (BAUI, DSUI & PUI)

 

2. Go to Applications -> Application Types -> WebSphere enterprise applications, Export original UI .ear files.

 

3. Open propertiesUI.jar in the new UI .ear file, change default UI setting by copying mdmUIConfiguration.properties from the original propertiesUI.jar and replacing the new mdmUIConfiguration.properties. (Additional step for PUI: change default PUI setting by copying webservices.properties from the original propertiesUI.jar and replacing the new webservices.properties.)

 

4. Go to Applications -> Application Types -> WebSphere enterprise applications, Update with new UI .ear file. (For PUI update only: Check Deploy Web services option on the Install New Application page)

 

5. Go to System administration -> Save changes to master repository, check Synchronize changes with Nodes and Save.

 

6. Go to Servers -> Server Types -> WebSphere application servers, Start UI instances.

 

 

Steps to apply fix (For customized UI):

 

1. Adjust the SessionFilter.java (CommonUIUtilities/src/com.ibm.mdm.ui.filter and CommonUIModel/src/com.ibm.mdm.ui.filter packages) by adding the following section of code after the closing of the "if(httpSession == null)" section of code (since the CSRF check will only be done when there is a valid session) in the "doFilter" method:

 

                                    // Check to see if the csrfToken in session is up-to-date

                                    String sessionId = httpSession.getId();

                                    String idInSession = (String)httpSession.getAttribute("csrfToken");

                                    if( idInSession == null || idInSession.compareTo(sessionId) != 0){

                                                httpSession.setAttribute("csrfToken",sessionId);

                                                logger.info("Updated csrfToken in session");

                                    }

                                    //Check CSRF Token

                                    String requestMethodType = httpRequest.getMethod();

                                    if(requestMethodType.compareToIgnoreCase("POST")==0 &&

                                                            !(url.endsWith("j_security_check")) &&

                                                            !(url.endsWith("ibm_security_logout")) ){

                                                logger.info("Handling a POST request");

                                                // is a POST Request, need to check csrfToken

                                               

                                                Enumeration<String> namesEnum = httpRequest.getParameterNames();

                                                boolean isTokenMatched = false;

                                                while(namesEnum.hasMoreElements()){

                                                            String paramName = namesEnum.nextElement();

                                                            if(paramName.endsWith("csrfToken")){

                                                                        String csrfToken = httpRequest.getParameter(paramName);

                                                                        if(csrfToken.compareTo(sessionId) == 0){

                                                                                    isTokenMatched = true;

                                                                                    break;

                                                                        }

                                                            }

                                                }

                                                if(!isTokenMatched ){

                                                            logger.error("CSRF Token not found");

                                                            httpResponse.sendRedirect(httpRequest.getContextPath() + "/faces/login.jsp");

                                                            return;

                                                }

                                                logger.info("CSRF Token matches session ID");

                                    }

                                   

2. Apply the following code in all .jsp pages where there is a "</h:form>" tag (can just do a search for the tag):

            <h:inputHidden id="csrfToken" value="#{csrfToken}"></h:inputHidden>

 

3. Adjust the web.xml (ProductWeb/WebContent/WEB-INF) by changing the SessionFilter url-pattern from /faces/* to /*. (Apply to PUI only)

            <filter-mapping>

                        <filter-name>SessionFilter</filter-name>

                        <url-pattern>/*</url-pattern>

            </filter-mapping>

 

4. Restart server and republish.
**************************

Important Changes



Contacting IBM Software support

IBM Software Support provides assistance with product defects.

Before you submit your problem to IBM Software Support, ensure that your company has an active IBM software maintenance contract, and that you are authorized to submit problems to IBM. The type of software maintenance contract that you need depends on the type of product you have.

Product support can be obtained through the following methods.

On the Web

Go to http://www.ibm.com/software/data/masterdata/customer/
and click Support on the left side of the page.

By Telephone

If you are in North America, call 1-800-IBM-SERV (1-800-426-7378)

If you are outside of North America, check the Web page http://www.ibm.com/planetwide/ for contact information for your area.


List of fixes

 

Incident/PMR

 

Description

1

PMR# 16755,227,000

Scripts and data in <MDM_INSTALL_HOME>/Upgrade/MDM/Level-II are missed for upgrading from an existing InfoSphere MDM Server 9.0.2 database to 10.1.0. If you are upgrading MDM Server 9.0.2 database to 10.1.0, please see more detail in MDM Server information center(http://pic.dhe.ibm.com/infocenter/mdm/v10r1/index.jsp). Otherwise, this iFix can be skipped.

2

PMR 46997,999,616

Fixed code to enable PartyAddress duplicate validation for PartyAddress data extension.

3

PMR 70874,227,000

Fixed code to set IdPk/PrimaryKey for EObjEntityPrivPref properly.

4

Defect#31022

Fixed code to generate pluggable SQL correctly for inline table extensions which inherit primary key from base entities.

5

PMR 48288,999,616

Enhance code so it allow to read instance.name from applicaton server (e.g WAS) to prevent from the "duplication primary keys" error.

6

PMR 49328,999,616

Fix code so that if the existing contractPartyRoleIdentifier record on DB expire, the mdm logic should not consider as duplicate.

7

Defect 32477

Fixed code to solve NullPointerException while running XML composite transaction with multiple updateCategoryRelationship sub transactions.

8

Defect 32472

Fixed code to handle ProductRelationshipEndDate properly in ProductRelationshipBObj while running add/update transactions.

9

PMR00890,130,702

Fixed code to resolve addProductPartyRole random failure issue when running with BatchProcessor concurrently.

10 PMR00891,130,702 Added new metadata in table BUSINESSTXREQRESP to make availableResultsCount returned when searching party with IdentificationNum and IdentificationType and pagination enabled.

11

PMR29722,012,649

Fixed code to resolve a SQL Error caused by missing CONTACT table in SQL FROM clause when searching party with PartyFilter of ACTIVE and returnPartyIDsOnlyFlag of true.

12

N/A

Fixed a security vulnerability in MDM Server HTML documentation generated by the Javadoc tool. Please refer to this documentation link for more information regarding the security vulnerability: http://www-01.ibm.com/support/docview.wss?uid=swg21641206.

13

PMR 48766,697,760 When client create a contract inline extension by using MDM v10.1 workbench tool, the generated code in EObjXContractExtDataImpl.java would generate duplicate LAST_REVIEW_DT column in the insert-sql code.

14

PMR 86896,004,000 Fixed code to display webservice response properly with nested extension structure.

15

PMR 81204,122,000 Fixed code to solve NullPointerException while loading asidefinition data in concurrent.

16

PMR 53149,999,616 Fixed code to solve NoSuchMethodException in addPartyContactMethod transaction after configure normalization with PhoneNumber extension.

17

PMR 80053,012,649 Enhanced "unhandledData" logic in PhoneNumberInfoServerConverter.

18

PMR53641,697,760 Fixed code to make StatusConverter pluggable.

19

PMR 56649,057,649 Pluggable SQL not using QS standardized firstname and phone on custom search when using phone no , first and last name as search criteria, this result in returning incorrect search result.

20

PMR13119,L6Q,000 Fixed code to solve NullPointerException while running addPartyContactMethod method with english_lang_id "9".

21

PMR 38307,999,616 Fixed code to optimize deletePartyAddress method in TCRMPartyAddressComponent.

22

PMR01986,130,702 Fixed code to process party relationship roles in transaction collapseMultipleParties.

23

PMR45930,228,631 Fixed code to handle Batch Processor output message id properly for restart option.
24 PMR24149,004,000 In previous releases, SearchPersonProbabilistic and SearchOrganizationProbabilistic will return the same error message 'No record found' when there are no search results found or when the search criteria provided are too common for the search to be executed.
In the iFix, if the provided search criteria are too common, the search transactions will now return the error message, 'The search criteria supplied did not result in search buckets'. When this error message is encountered, the requester should provide additional search criteria, especially those corresponding to the bucketing strategy defined for the matching algorithms in MDM Workbench

25

PMR80360,012,649 With standardization enabled, adding certain last names contains space or hyphen like "Ho Ward" or "Ho-Ward" are not able to be found with a standard search with GivenNameOne and LastName provided in the search request.
26 PMR22448,379,000 addAddress transaction does not validate mandatory input as documented in the transaction reference guide. an addAddress transaction will succeed when ZipPostalCode is not provided and ProvinceStateValue is provided instead of ProvinceStateType in the request.

27

PMR83410,211,788 Fixed code not to return empty tag of last nullable extension attribute in Web Services.
28 PMR26787,211,788 Address search SQL for duplicate address throws SQL -104 error when CityName is not present. New extension point is needed at SearchAddressValidationRule to allow customizing Address search SQL.
29 PMR80451,012,649 As a result of inaccurate search sql in TCRMSearchSQL class, the searchOrganization service only returns the organizations which have a name with a usage type equal to the first value configured in /IBM/Party/Search/ReturnValue/organizationNameUsageType

30

PMR66633,999,616 Fixed code to resolve getTransactionLog pagination issue with SQLException of ORA-00923 on Oracle database.

31

PMR 88106,057,649 Fix code to resolve NULL pointer exception when do the search by name with using pluggable SQL.

32

PMR15307,057,649 This is the additional fix of 10.1.0.0.5 since it can't read the MDM_INSTANCE_NAME variable from some WAS environment.. The fix again is used to retrieve varaible of MDM_INSTANCE_NAME from applicaton server (e.g WAS) in order to prevent from the "duplication primary keys" error

33

PMR27400,211,788 Removed DWLExtension element from TCRMInteractionBObjType and TCRMInteractionRelationshipBObjType in MDMCommon.xsd to avoid both TCRMExtension and DWLExtension returned in responses.
34 PMR03433,130,702

The addPartyRelationshipRole transaction does not check existence of party relationship. As a consequence, an invalid entry is created in ENTITYROLE refering a non-existent Party Relationship ID. Add validation to check if a party relationship exist or not. Return error message if it's inactive or not exist.

35 PMR81236,012,649

The Nyssiss phonetic key generator creates keys with an incorrect maximum length as defined in TCRM.properties when the generated key length is larger then the specified maximum length. This was fixed in the class Nyssiss to trim the generated key to the correct maximum length.

36 PMR03559,130,702

When transactions of data addition with subtypes are invoked simultaneously with multiple threads after a server restart, some of these transactions may fail due to NullPointerException. Once the server becomes stable, the NullPointerException won't happen again until the server is restarted.

37 PMR04149,130,702

When there are a large number of records in MDM code tables, the MDM runtime may exhaust the available memory. With this fix, the code table caching mechanism is enhanced to load and cache only the required records of each code table, instead of loading and caching all records. This fix would also enhance the runtime performance as a result of more memory being available for the services.

38 PMR81362,012,649

Supplying a literal 'NULL' string for an attribute of any business object extension may produce incomplete resposne xml. This problem is only applicable to webservice calls.

39 PMR77707,999,649

Fixed code not to send empty TAIL messages to JMS destination when a transaction TAIL is disabled.

40 PMR87763,057,649

Fixed code to resovle DWLDuplicateKeyException when persisting TAIL.

41 PMR91075,019,866

Fixed code to make Servcie Activity Monitor thread-safe to avoid logging duplciate rows in transactiondata.log and add a new MDMIDFacroty to avoid duplicate transaction id..

42 PMR03680,130,702 Fixed code to avoid NullPointerException when running addParty Transaction over SOAP.
43PMR02857,49R,000Fixed code to enable deletePartyWithHistory to execute successfully even though the history records are not populated in BIL
44PMR15017,130,702Log an additional error message 'MPI_MxmRunSearch: MPI_MemNextSect() failed when processing member(<memrecn>).' to indicate the source member when itegrity error happens.

Copyright and trademark information

http://www.ibm.com/legal/copytrade.shtml

Notices

INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you.

This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice.

Microsoft, Windows, and Windows Server are trademarks of Microsoft Corporation in the United States, other countries, or both.

Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

Other company, product, or service names may be trademarks or service marks of others.

THIRD-PARTY LICENSE TERMS AND CONDITIONS, NOTICES AND INFORMATION

The license agreement for this product refers you to this file for details concerning terms and conditions applicable to third party software code included in this product, and for certain notices and other information IBM must provide to you under its license to certain software code. The relevant terms and conditions, notices and other information are provided or referenced below. Please note that any non-English version of the licenses below is unofficial and is provided to you for your convenience only. The English version of the licenses below, provided as part of the English version of this file, is the official version.

Notwithstanding the terms and conditions of any other agreement you may have with IBM or any of its related or affiliated entities (collectively "IBM"), the third party software code identified below are "Excluded Components" and are subject to the following terms and conditions:

 


© Copyright IBM Corporation 2010. All Rights Reserved.