Corba_Exception due to polling of attribute
|
|
---|---|
Hello All I have one attribute whose name is : x/y/z/c01_gab_bbfilter_ch2 This attribute I make dynamically. I start the device server, device server runs fine. Now, I define the polling period of attribute which I made dynamically which is c01_ab_bbfilter_ch2. I have set the polling period of the above attribute as 100 ms. Now I kill(Ctrl+C) the device server and try to start it again. Here is the error found. Tango exception Severity = ERROR Error reason = API_AttrNotFound Desc : c01_gab_bbfilter_ch2 attribute not found Origin : MultiAttribute::get_attr_by_name Tango exception Severity = ERROR Error reason = API_BadConfigurationProperty Desc : Error when configuring polling for device LMC/C01/GAB, attr = c01_gab_bbfilter_ch2 Origin : Util::polling_configure Received a CORBA_Exception Exiting terminate called after throwing an instance of 'CORBA::OBJECT_NOT_EXIST' Aborted (core dumped). I was able to make attribute dynamically but after defining polling period of the attribute, when i try to start the ds again, it is not able to find the attribute and gives the above error. This was working fine till yesterday i.e. wen i define the polling period of attribute, and start the device server, it was runnnig perfect but now suddenly it started giving above error. Any suggestions ? Thanks and Regards TCS-GMRT TEAM
Regards,
TCS_GMRT |
|
|
---|---|
Hi, a dynamic attribute is exactly what is says it is i.e. dynamic as opposed to static. It has to be recreated every time you restart the device server. This should be part of the initialisation phase i.e. executed at startup. By defining a polling period on your attribute it has been memorised in the database and Tango will start polling again when you restart the device server. If the attribute does not exist it will give the error you mentioned. Check that you recreate the dynamic attribute during the initialisation phase. Andy |
|
|
---|---|
Hello Andy I recreate the attribute everytime I start the device server. Here is the scenario: The dynamic attribute is present in the database. Now I start the device server, it starts fine. I stop the device server and start it again, device server runs fine. Now i define the polling period of attribute and set it as 100 ms. I stop the device server and try to start it again, it throws the below error. Tango exception Severity = ERROR Error reason = API_AttrNotFound Desc : c01_gab_bbfilter_ch2 attribute not found Origin : MultiAttribute::get_attr_by_name Tango exception Severity = ERROR Error reason = API_BadConfigurationProperty Desc : Error when configuring polling for device LMC/C01/GAB, attr = c01_gab_bbfilter_ch2 Origin : Util::polling_configure Received a CORBA_Exception Exiting terminate called after throwing an instance of 'CORBA::OBJECT_NOT_EXIST' Aborted (core dumped). I check the table tango.property_attribute_device and here the attributes present were changed to NULL. Hence it is not able to find the attribute. BUt this happened after defining polling period of the attribute. Before defining polling period of attribute , it worked fine. Also previously, I used to define the polling period of the attribute and start the ds again, it wont throw any error. Now suddenly since last 2 days, it is misbehaving. I would be obliged by your positive response. Thanks and Regards TCS-GMRT TEAM
Regards,
TCS_GMRT |
|
|
---|---|
Sounds like your database is losing properties. Check the history of the property to see when it was deleted. Does it happen randomly or when you delete the device? Andy |
|
|
---|---|
Hello AndySounds like your database is losing properties. Check the history of the property to see when it was deleted. Does it happen randomly or when you delete the device? It has happened to start randomly. Thanks and Regards TCS-GMRT TEAM
Regards,
TCS_GMRT |
|
|
---|---|
Hi, I have tried with one test Tango class and I don't have problem (C++ Tango class using Tango 9.1). I have defined the dynamic attribute polling using Jive. Here are some questions: - In which language is your Tango class (C++, Java, Python)? - If it's C++, how do you program your dynamic attribute? Did you follow the HowTo about dynamic attribute? - How do you set the attribute polling (Using Jive or in the Tango class code)? - Which release of Tango are you using? Regards Emmanuel |
|
|
---|---|
Hello ManuIn which language is your Tango class (C++, Java, Python)? C++ If it's C++, how do you program your dynamic attribute? Did you follow the HowTo about dynamic attribute? Yes followed the method specified. How do you set the attribute polling (Using Jive or in the Tango class code)? Using Jive Which release of Tango are you using? tango-8.1.2-patched Thanks and Regards TCS-GMRT TEAM
Regards,
TCS_GMRT |
|
|
---|---|
Hello all Any suggestions for the above problem ? Thanks and Regards TCS-GMRT TEAM
Regards,
TCS_GMRT |
|
|
---|---|
Hello Manu/Andy The problem mentioned above is still there . Tango Class is in C++ and I have followed all the steps mentioned for how to make dynamic attribute. I am using tango-8.1.2 patched version and I define the attribute polling using jive. Thanks and Regards TCS-GMRT TEAM
Regards,
TCS_GMRT |
|
|
---|---|
Can you send the code? Can you start the device server with DEBUG logging switched on "-v5" on the command line and send us the output at startup when the exception is thrown. Strange because we use polled dynamic attributes here. Maybe you can run your server on the TANGO9 virtual machine and see if it still happens. Andy |