Datastage job using MQ plugin fails with error: "ds_loadlibrary: error in dlopen"
After installing fixpack1, a job using MQ plugin stage fails with error:
ds_loadlibrary: error in dlopen
The job ran ok prior to fix pack 1.
Resolving the problem
The DataStage MQ Plugin stage can be setup to use either the MQ Client libraries or the MQ Server libraries, but not both. The error "ds_loadlibrary" error in dlopen" typically occurs for one of 2 reasons:
- The library path does not include the directory for the correct MQ library files, or those files are inaccessible due to permissions.
- DataStage was setup to use MQ client libraries but the failing job is using MQ Server libraries, or vice versa.
To resolve the first issue, look at the job log for the failing job to see the value of both the library path (LIBPATH on AIX, LD_LIBRARY_PATH on Linux and Solaris, SHLIB_PATH on HP-UX) and also the PATH.
Ensure that the library path includes the main mq library directory (i.e. /usr/mqm/lib64 or /usr/mqm/lib). If you have both, confirm if you are using a 32 or 64-bit version of DataStage and then include in library path the directory with MQ libaries that match the bitness of DataStage.
If a change to the library path is needed, then you will need to edit the dsenv script in the DSEngine directory, for example:
After modifying that script you will need to stop and restart the DataStage engine for the change to take effect.
Also ensure that the permissions on the files in your MQ library directories. The MQ library files should have public read and execute permission. If not, your unix administrator will need to update the file permissions.
For the second issue, when Information Server DataStage was first installed, the MQ Series plugin stage was setup to connect either using the MQ Client libraries, or the MQ Server libraries (if your MQ Server is on the same machine as the DataStage engine, you can use either setup, but if your MQ server is a remote machine, then DataStage needs to connect via the MQ Client libraries).
When installing a fix pack, it is possible that the the wrong set of MQ plugin libraries were installed. If that occurs, any jobs previously built to use the other MQ library type may fail either due to missing library files.
To confirm which type of MQ libraries the MQ Series plugin stage will attempt to use, login to the DataStage Designer application for the failing project.. Then in the Repository View, open the Stage Types folder and navigate to:
\Stage Types\Server\Real Time\WebSphere MQ
Right click on this stage and select Properties. In the DLL Name field, you should see one of 2 library names: mqs.so or mqsco.so
mqs.so is the MQ plug-in library MQ Server mode connections.
mqsco.so is the MQ plug-in library for MQ Client mode connections.
Next look in the DataStage directory that should contain the above libraries:
In that directory, do you see either mqs.so or mqsco.so (whichever one matches the library name in the DLL Name field of the stage type properties you viewed above)? If not, then you need to confirm which type of MQ connection your site plans to use, or has used in past, and then use the following instructions to uninstall the current MQ plugin library set, and then reinstall the correct MQ plugin libraries (client or server).
To remove/uninstall the incorrect plugin library, use the following document:
And then to install the correct plugin library, use the following document: