HDB++ installation

Hi Jyotin Ranpura,
After completing install HDB++ packages and create the MYSQL HDB++ database and configuration of HDB++ configuration manager and HDB++ Event Subscriber in jive
When I RUN HDB++ configuration manager and HDB++ Event Subscriber in command terminal
It shows following result
/hdb++/hdbpp-cm/bin$ ./hdb++cm-srv 01
./hdb++cm-srv: error while loading shared libraries : libhdb++.so.6: cannot open shared object file: No such file or directory
Hi Rachid,

The error says that hdb++cm is dependent on libhdb++.so.6 library but it couldn't find this file. It seems that this file is in a different folder than the folder it is searching for.

A quick fix for the issue is to export below environment variable through terminal:
export LD_LIBRARY_PATH=<<path where the libhdb++.so.6 library is available>>

For example,
export LD_LIBRARY_PATH=/home/ncra/hdb++/libhdbpp/lib:$LD_LIBRARY_PATH

Then, proceed to run the Configuration Manager as have specified in your post.

In order to resolve this issue permanently, I would recommend following solution.

1. Create a customLibs.cnf file using the following command:
sudo gedit /etc/ld.so.conf.d/customLibs.conf

2. Add the paths to the Tango and HDB++ libraries depending on your setup as below:
/home/ncra/tango-9.2.2/lib
/home/ncra/hdb++/libhdbpp/lib
/home/ncra/hdb++/libhdbpp-mysql/lib

3. After executing following command, check if your Tango and HDB++ Libraries are populated.
sudo ldconfig -v

I think this should resolve the issue you are facing. If it is not resolved, please do let us know and we will look further into it.

Kind regards,
Jyotin
Edited 6 years ago
Hi Jyotin Ranpura,
Thank you so much
After following these steps,when i ran the commande /hdb++/hdbpp-cm/bin$ ./hdb++cm-srv 01
i've got HdbClient: Error loading symbol getDBFactory from library libhdb++.so
Hi Rachid,

Your problem is due to the value of libname configuration parameter in LibConfiguration device or class property.
It looks like it is set to libhdb++.so in your case.
It should be set to one of the following values instead:
  • libhdb++mysql.so if you intend to use HDB++ with the MySQL backend
  • libhdbmysql.so if you intend to use HDB++ with the MySQL Legacy backend
  • libhdb++cassandra.so if you intend to use HDB++ with the Cassandra backend

This library specified in LibConfiguration->libname is loaded dynamically by hdb++-cm-srv device server.
You will need to have your LD_LIBRARY_PATH environment variable correctly set (including the directory where the library you intend to use is located) to have the hdb++-cm-srv working as expected.

The following picture might help you to understand better:



libhdb++mysql and libhdb++cassandra are just implementations of the classes defined in libhdb++ library.
The user can decide which implementation to use by specifying this LibConfiguration -> libname device property config parameter.

The device server will load dynamically (using dlopen()) during the device server initialization the library configured by the user.

Hoping this helps,
Reynald
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
Hi Reynald,
Thanks , For the value of libname in server and class I use libname=libhdb++.so (see the attachments)
Hi Rachid,

Thank you for sharing the screenshots.

Reynald has nicely explained the reason behind the error (HdbClient: Error loading symbol getDBFactory from library libhdb++.so) you are facing while starting HDB++ Configuration Manager.

Please take a note that you need to replace libname=libhdb++.so to libname=libhdb++mysql.so (if you are using MySQL) for both HDB++ Configuration Manager and HDB++ Event Subscriber devices and then try starting them.

Let us know if are facing any issues going forward.

Kind regards,
Jyotin
Hi Jyotin Ranpura,
Thank You For Your Help, the DS hdb++cm-srv works fine
but for DS hdb++es-srv , when i ran the commande /hdb++/hdbpp-es/bin$ ./hdb++es-srv 01
nothing is displayed (see the attachments).
Hi Rachid,

The issue seems to be with the improper configuration of the HDB++ Event Subscriber Class and Device properties. You can see the exact error by running below command on terminal:
./hdb++es-srv 01 -v5

"-v5" argument sets the logging level of the device to DEBUG. By doing this, DEBUG level logs will be printed on your terminal.

I would recommend deleting all the Class properties and Device properties from Jive and keep only that is mandatory as listed below:
  • HDB++ Configuration Manager Device properties - LibConfiguration and ArchiverList
  • HDB++ Event Subscriber Device property - LibConfiguration
For reference, please find the Jive screenshots attached to this post.

Kind regards,
Jyotin
Edited 6 years ago
Hi Jyotin Ranpura
it works good. thank you very match.
 
Register or login to create to post a reply.