While trying to execute ReportAgent manually in debug mode or while trying to immediately send a snapshot of the CA PIM database and any local PMDBs to the queue/snapshots queue on the Distribution Server, at times the following error message appears:
ReportAgent: error while loading shared libraries: libxerces-c.so.28: cannot open shared object file: No such file or directory
Operating System all supported Redhat Linux builds.
PIM R12.5 and higher.
The cause for the problem is that the operating system is not able to find the proper location of this shared object file.
1. Executing 'ldd' against ReportAgent would provide the output of the shared object files / libraries that are loaded, and find as well as any missing shared object files / libraries. For example on a Redhat Linux machine the output would be similar to the output as below.
# ldd ReportAgent
linux-gate.so.1 => (0xffffe000)
libxerces-c.so.28 => not found
libcrypt.so.1 => /lib/libcrypt.so.1 (0x00d47000)
libpam.so.0 => /lib/libpam.so.0 (0xf7fd3000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf7fb9000)
libdl.so.2 => /lib/libdl.so.2 (0xf7fb3000)
libnsl.so.1 => /lib/libnsl.so.1 (0xf7f9a000)
libresolv.so.2 => /lib/libresolv.so.2 (0x001a1000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x004f6000)
libm.so.6 => /lib/libm.so.6 (0xf7f71000)
libc.so.6 => /lib/libc.so.6 (0x00beb000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00de9000)
libaudit.so.0 => /lib/libaudit.so.0 (0xf7f57000)
2. The LD_LIBRARY_PATH needs to be set manually pointing to the location where the 'libxerces-c.so.28' file exists. This setting would be valid for the current session only. In case a new connection is established, the LD_LIBRARY_PATH would have to be set again.
3. The other way to set the PATH to the shared object file at the Operating System level, follow the below steps
- Go to the /etc/ld.so.conf.d directory
- Create a new .conf file, for example 'ControlMinder.conf'
- Add the location of the 'libxerces-c.so.28' file in this file. For example as under
- Save and exit
- Next, execute 'ldconfig', if there are no error messages then the OS has updated the location of the shared object file successfully.
Now, executing 'ReportAgent' would not produce the error message and the above procedure in step 3 would be valid for all the users executing the ReportAgent
#ReportAgent -report snapshot
INFO: AC installed directory: /opt/CA/AccessControl
CA Access Control Reporting Agent.
Successfully sent report of seosdb. (id = 1406895034)