Thread "What exactly does "Reload Control Structures" do?"
Tabs
-
Timon Amstutz | amstutz | 22. Apr 2018, 20:45
Re: What exactly does "Reload Control Structures" do?Hi Stefan,
If you browse through ILIAS check out the query part of the url (everything behind the ?) displayed in the adress field of your browser. If you are not accessing the page by using a goto link, you will find on many pages a parameter named cmdNode. On this exact page you are currently looking while reading my answer (if not using the goto link) the param is "cmdNode=90:se". 90:se is the short version (the cmd node) for the cmd Class (ilobjforumgui, se) and the base Class (ilRepositoryGUI, 90). the control class, which does the whole routing (among other things) in ILIAS, is using this information for a quick lookup on which classes the current command needs to be passed through for the correct rbac (permisson checks) commands to be executed and also for the UI to be rendered correctly by those classes.You find this the information neccessary for those command nodes to be created also in the respective GUI classes, on the very top in the comment @ilCtrl_Calls. Now we are at the core of your question: Reload Control Structure in it's essence reads all those comments and stores their short version of it into the database, along with information of the parents of each node and further details which might cause unnecassary time during runtime. By running ILIAS the code will not access the information in the comment in the file of the source, but in the DB. After updates (sometimes, e.g., if new GUI classes have been added) reload db structure will be executed. This is why, only goto links are static, all others (that list the cmdNode param) might change due to this reload. Note that this might be improved if funding available (see https://www.ilias.de/docu/goto.php?target=wiki_1357_URLs_without_cmd_nodes).
So it really depends on your problem... What is it? If it is, node xy does not exist, it might help. Note that if any error in any ilCtrl_calls or ilCtrl_isCalledBy comment (also in plugings) occurs, the reload will fail and the error needs to be fixed, before you can use ILIAS again. Also note, that if you have issues with one of the plugins, you might force the plugin to relaod only the nodes of the plugin by incrementing the plugins minor version.
Does this answer help?