Error message: Unknown exception while trying to fill database cache...

Dear all,

I am new to Tango Controls, currently I am evaluating it on a Ubuntu 22.04.1 LTS.
It was installed according to these instructions. Testing the installation with the TangoTest server works without any problems, I can also read e.g. the device attributes in Jive.
But when I try to run my own device server I generated using Pogo in C++, I get an error message:
$./myDevice test1
Unknown exception while trying to fill database cache…
Ready to accept request
I can also not see its attributes in jive, while the device itself seems connected.

Any ideas what's going wrong?
What could be the best ways to debug this?

Thanks and regards,
Hi Christoph,

My first advice would be to run your device server instance with option "-v5" to see the DEBUG log messages coming from your device server and from the Tango C++ library.

The Unknown exception while trying to fill database cache… is suspicious.
You might have a problem in your setup with the SQL stored procedures which are used at Device Server startup.

Do you know which version of MariaDB or MySQL you are using?

These stored procedures are optional but really speed up the device servers startup sequence but they should not prevent your device server to startup correctly.
The "Ready to accept request" message is a good sign that your device server initialized correctly.

When you say you don't see your attributes with jive, what tool from jive are you using to try to see your attributes?:
1. Right click on device node –> Test device –> Attributes tab (you should see all your attributes listed in this tab)
2. Right click on device node –> Monitor device

If you used Monitor device, this will start the atkpanel application which displays by default only the attributes having the operator display level.
If your attributes are defined with Pogo with the "Expert Only" Display level option ticked, you need to go into the Preferences menu from atkpanel and select "Expert View" to be able to visualize the attributes having the display level defined to "Expert Only".

Hoping this helps,
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 fast & detailed response!
I found it out now: I registered the Device server the wrong way using the Jive Server Wizard.
My device name (myDevice/test1) was not allowed. Since it must have three fields, I changed it to train/md/1 and now it works.

Regarding the missing attributes, I simply by accident started an old version of my device server where I not yet had added attributes but at first thought they miss because of the problem above.

Thanks and regards,
Register or login to create to post a reply.