In InfoSphere Master Data Management 22.214.171.124 and subsequent 11.6.0.x releases, the Probabilistic Matching Engine (PME) standalone installation does not correctly extract the MAD native library. You can manually extract the MAD native library to work around this issue.
You will encounter this issue when you run any of the PME standalone Java APIs, such as calling compare on an instance of the MatchingService.
The result will display the following error, stating that you are missing the MAD native library:
INFO: Trying to load native library 'MAD'... Exception in thread "main" java.lang.NoClassDefFoundError: com.ibm.mdm.mds.pme.jni.MatchingServiceJni (initialization failure) at java.lang.J9VMInternals.initializationAlreadyFailed(J9VMInternals.java:96) at com.ibm.mdm.mds.pme.core.jni.MatchingServiceNative.createEnv(MatchingServiceNative.java:77) at com.ibm.mdm.mds.pme.core.jni.Env.<init>(Env.java:46) at com.ibm.mdm.mds.pme.core.BaseMatchingServiceInitFactory.getEnvironment(BaseMatchingServiceInitFactory.java:73) at com.ibm.mdm.mds.pme.core.MatchingServiceImpl.init(MatchingServiceImpl.java:140) at com.ibm.mdm.mds.pme.core.MatchingServiceFactoryImpl.newMatchingService(MatchingServiceFactoryImpl.java:76) at com.ibm.mdm.mds.pme.core.MatchingServiceFactoryImpl.newInstance(MatchingServiceFactoryImpl.java:43) at ComparePMEExample.main(ComparePMEExample.java:29) Caused by: java.lang.UnsatisfiedLinkError: MAD (Not found in java.library.path)
Resolving The Problem
To resolve this issue, complete the following steps afterIIBM Installation Manager completes extraction of the PME installation:
- Create a folder named native under the PME installation directory, parallel to existing to the folders lib, was, db, and bulkutils.
- Create a temporary folder (referred to here as <temp_folder>). This will be your temporary working folder.
- Copy and extract com.ibm.mdm.mds.jni.jar from the lib folder to your temporary folder.
This will create following folders within your temporary folder: aix64, linux64, plinux64, win64_amd64, zlinux64. Each folder will have MAD library file in it.
- Copy the appropriate MAD library into the native folder that you created in step 1:
- If your operating system is AIX, copy libMAD.so from <temp_folder>/aix64
- If your operating system is Linux (RHEL), copy libMAD.so from <temp_folder>/linux64
- If your operating system is pLinux, copy libMAD.so from <temp_folder>/plinux64
- If your operating system is zLinux, copy libMAD.so from <temp_folder>/zlinux64
- If your operating system is Microsoft Windows, copy mad.dll from <temp_folder>/ win64_amd64
Was this topic helpful?
27 April 2022