Friday, April 5, 2013

Informatica Error Calling PMREP or PMCMD – Libraries Issue


Recently digging into the strategy and best practice of installing the OBIEE Applications, mainly the DAC and Informatica  components, I see two common issues arise more often that any others.  One has to do with the Informatica Integration Service not matching the correct locale such at UTF-8 or MS Windows Latin, etc. preventing it from starting and the other has to do with the Informatica or DAC user not able to call the core integration tools pmrep and pmcmd.  This issue is common on Linux/Unix environments but not so much on a Windows server environment.
Basically these are installation concerns but they cause a lot of newbies to waste time on really straightforward pieces of the puzzle, especially when there is a deadline and the rest of the team is waiting on the installation to be completed.  This blog will take a quick look at how to resolve the following error that you may get when attempting to access the pmrep or pmcmd line either from the command line or from the DAC call to the server:
pmrep: error while loading shared libraries: libACE.so.5.4.7: cannot open shared object file: No such file or directory
pmcmd: error while loading shared libraries: libpmasrt.so: cannot open shared object file: No such file or directory

Solution

Ensure that the Informatica Library (../server/bin/) Path variable is available in both the LD_LIBRARY_PATH and the PATH variables is really the key.   I gave a brief mention of this solution on an older Oracle Forum post and wanted to do a little more with it so here is the full solution with some loose conversation around the topic.
A few steps need to be accomplished after installing the DAC and Informatica Server.
1. Ensure that your Informatica user can correctly execute the pmrep or pmcmd from the home directory or any directory outside of the INFA_HOME/server/bin directory.  If the Informatica user cannot then chances are the DAC user will not be able to either.  Either way for the DAC or Informatica user verify or create the next two items.
2. Ensure that the the full path to the INFA_HOME/server/bin directory is placed in the PATH variable.
3. Ensure that the the full path to the INFA_HOME/server/bin directory is placed in the LD_LIBRARY_PATH variable.
Edit the bash_profile, etc. profile file for each respective user needing access to these Informatica commands and then execute each profile file as that user (if sudo’d or logged in as that user) after saving the file by executing,
. ~/.bash_profile
or similar from the command line.  If using a different user to modify the file then the next time the user in question logs in the profile file will take affect.
Re-attempt the execution of pmrep or pmcmd and you should have no more issues.
In addition, if the DAC user is having this problem, the user profile file or the dac_env.sh file may require the above profile var settings as well to correctly connect to pmrep and pmcmd.  If you edit the profile file you will need to re-execute it.  If you modify the dac_env.sh file you will need to restart the DAC server if it is/was running while you were making changes.