In order to save property usage I re/created MoviePro and JukeBot to use the same set of Thumbnail properties.
Installed MoviePro and everythig is kosher. Installed JukeBot with the new common TC Thumb1Cover etc properties as MoviePro.
Now HouseBot errors at startup with
Trace Section 'ask Block' generated an assertion, File <C:\HB\Development\ServerFrame\TaskBlock.cpp> Line:<151>
Unable to find property, Device ID =[39] Property ID = [774]
Yuck
Decided to investigate and sure enough device 39 [MoviePro] points to a series of Properties 774 to 8xx which were the initially installed common TC (Thumbcover) properties in the DeviceProperty Table. However those property numbers no longer exist in the the Property table.
It appears that when I installed JukeBot after MoviePro, because this also has registration code that would set up the same TC properties rather than ignoring the registration for properties that already exist, HouseBot deleted the old properties with the same name and recreated them with new Property numbers leaving MoviePro 'HIGH AND DRY' pointing to property numbers that no longer exist.
ERGO! the start-up errors --
Reusing Properties - not?
You can reuse the same Properties between two Devices. It's done often with the existing Devices in the system.
Was the Property ID [774] not in the Properties table, or was it not mapped to the Device in the DevicePropertyMap table?
If you delete a Device, HouseBot will remove the reference to the Properties in the DevicePropertyMap table, but it never deletes Properties from the Properties table. Therefore, it should not have effected the other Device setup. You should also not be able to delete a Device if it is referenced in a Task, so I'm not sure how you got to the original error.
Were you doing any configuration imports, or did you get this with normal usage?
Was the Property ID [774] not in the Properties table, or was it not mapped to the Device in the DevicePropertyMap table?
If you delete a Device, HouseBot will remove the reference to the Properties in the DevicePropertyMap table, but it never deletes Properties from the Properties table. Therefore, it should not have effected the other Device setup. You should also not be able to delete a Device if it is referenced in a Task, so I'm not sure how you got to the original error.
Were you doing any configuration imports, or did you get this with normal usage?
Scott
-
- Advanced Member
- Posts: 206
- Joined: Tue Oct 07, 2003 10:01 am
- Location: Columbus, OH
- Contact:
This was a semi-normal install
I had previously cleared the old properties from the properties table and did not touch the currently used 700 series TC properties so I believe it happened during what should have been a normal install. I have tracked down where the problem currently is and corrected the records in the HB database. This is getting scary --- I am beinging to understand the HB db
The properties were not in the property table -- it appeared that when the second plugin created the same properties, the original group was deleted and the new group created with new property numbers but the Device Property table did not change for the 1st plugin so it was still pointing to the properties under the old property numbers. The really strange part is the theme for the 1st plugin was updated to point to the new property numbers.
In summary
Installed MoviePro TC properties get ids 773 --- 803
MoviePro DeviceProperty Table points to 773 through 803
MoviePro Sample Theme TC references point to 773 - 803
Installed JukeBot with its common TC properties
TC properties 773 ---- 803 diappear
TC properties are now ids 1023 --1063
MoviePro TC Device Properties point to 773 -- 803
JukeBot TC Device Properties point to 1023 --- 1063
MoviePro Sample Theme TC references point to p_id 1023 -- 1063
JukeBot SampleTheme TC references point to p_id 1023 -- 1063
All other properties are correct only the common properties caused a problem.
THEORY: May be wrong but it looked like this
When I re-installed the plugin the system re-creates the properties with new property numbers and then looks for the device that matches the plugin and updates the DeviceProperty table to point the device to the new Property IDs.
When I installed JukeBot after MoviePro, it found the common TC properties and re-created them under the new property IDs.
It then went looking for the JukeBot device to update in DeviceProperties or since this was a new device instance did not check to see if there was another device that used the same properties and therefore the MoviePro PropertyDevice table as well as the TaskList table were not updated with the new property ID's
The properties were not in the property table -- it appeared that when the second plugin created the same properties, the original group was deleted and the new group created with new property numbers but the Device Property table did not change for the 1st plugin so it was still pointing to the properties under the old property numbers. The really strange part is the theme for the 1st plugin was updated to point to the new property numbers.
In summary
Installed MoviePro TC properties get ids 773 --- 803
MoviePro DeviceProperty Table points to 773 through 803
MoviePro Sample Theme TC references point to 773 - 803
Installed JukeBot with its common TC properties
TC properties 773 ---- 803 diappear
TC properties are now ids 1023 --1063
MoviePro TC Device Properties point to 773 -- 803
JukeBot TC Device Properties point to 1023 --- 1063
MoviePro Sample Theme TC references point to p_id 1023 -- 1063
JukeBot SampleTheme TC references point to p_id 1023 -- 1063
All other properties are correct only the common properties caused a problem.
THEORY: May be wrong but it looked like this
When I re-installed the plugin the system re-creates the properties with new property numbers and then looks for the device that matches the plugin and updates the DeviceProperty table to point the device to the new Property IDs.
When I installed JukeBot after MoviePro, it found the common TC properties and re-created them under the new property IDs.
It then went looking for the JukeBot device to update in DeviceProperties or since this was a new device instance did not check to see if there was another device that used the same properties and therefore the MoviePro PropertyDevice table as well as the TaskList table were not updated with the new property ID's