UIM data queues (QoS, alarms, etc) are stored on the filesystem in the form of .sds files, underneath the /hub/q/ folder on a UIM hub.
At times, if these queues become backed up and data processing is delayed, it may be necessary (usually at the recommendation of CA Support) to move these files aside in order to allow new data to process.
In such cases, there may be a need to re-insert the data held in those .sds files into the system in order to have it inserted correctly into the database, once the initial problem causing the queue to back up has been resolved.
A utility known as "qtool" is available to read data from .sds files and inject them to the UIM Message Bus so they will be re-processed.
Unzip the qtool.zip and locate the appropriate version of qtool for your operating system/platform. You must use the qtool for the same platform that the .sds files came from; in other words, if you took the .sds files from a Linux system you must use the Linux version of qtool, and if you took the files from a Windows system you must use the Windows version of qtool.
Place qtool on any hub in your environment - the primary hub is fine, but any secondary hub will do.
*NOTE* - make sure that if you use a secondary hub, the hub already has queues set up to post messages to the primary hub.
FOR LINUX ONLY:
Run the following command to make sure the libraries are installed correctly:
> ldd ./qtool
The output should be something like this (the paths may differ):
linux-vdso.so.1 => (0x00007ffc447dc000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003bfe200000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003bfda00000)
libldapsdk.so.0 => /lib64/libldapsdk.so.0 (0x00007f8b68bf4000)
libldapssl.so.0 => /lib64/libldapssl.so.0 (0x00007f8b689b2000)
libldapx.so.0 => /lib64/libldapx.so.0 (0x00007f8b688a3000)
libc.so.6 => /lib64/libc.so.6 (0x0000003bfde00000)
You may see a "not found" error on some of those libraries - the ones with "ldap" in their name. If this is the case, you can find those files in the /opt/uim/hub directory, and copy them to /lib64. Then run the ldd command again to verify the output no longer contains any "not found" errors.
Make sure to also run "chmod +x" on the qtool binary to render it executable.
FOR ALL PLATFORMS:
Next, place the .sds files you want to inject and the qtool binary in the same folder together, somewhere on the hub.
*keep a backup copy of the .sds files if you can. If something goes wrong, qtool will sometimes mark files as "already posted" and if you want to re-post the data for any reason you'll need the original copy.*
The syntax to inject a single file is as follows:
qtool -f #####.sds -s -a -x -p -d 1
Where ##### is the filename of the .sds file, e.g. "12345.sds" or "q_data_engine.sds".
There is a .docx file included in the zip which has additional options and details about these options, but the above command line is sufficient for 99% of use cases.