Following is an email thread with Vladimir in March 2016 regarding Execution_Contexts table (using V6 of AwareIM):
Hi Vladimir,
Re: execution_contexts table
I think there may be a bug in how the execution_contexts table operates. My gut feeling is that it is not emptied out properly.
There are a couple of threads on the forum related to this table that indicate the growth of this table can bring AwareIM to a screeching halt. We experienced that over the weekend. My compressed MySql backups grew from 24,000 kb to 188,000 kb in 3 days during the weekend when there was little if any human activity on our system. Prior to that weekend, the compressed backups had been very consistent in size for months.
During the weekend, the execution_contexts table had grown substantially:
180 records at 10 pm on March 11th
3,744 records at noon on March 14th
I went back to backups for the last couple of months and verified that the execution_contexts table never had more than 180 records until it grew like crazy over the weekend.
While I am still trying get under the hood to determine what process(es) are referenced in the additional 3,500 records that were added to execution_contexts over the weekend, I can tell you that the ones that were in the execution_contexts prior to it's growth do not make sense to me (I've listed the process names at the end of this email). I did read on a forum post that having "allow users to cancel the process" unchecked will make it more likely that the process will be in this table.
Questions for you:
1) Is there a reason that AwareIM can not automatically remove processes from this table once the user logs out?
2) Can you help me understand why "allows users to cancel the process" being unchecked puts items in this table?
Thanks!
Tom
Listing of process names in the execution_contexts table:
Student_Milestone_LogStep_2
A_Parent_VP_1_Startup
StudentAdd_One1
A_Parent_VP_3_Add_Student_if_none
A_Parent_VP_1_Startup
StudentAdd_One1
A_Parent_VP_3_Add_Student_if_none
A_Parent_VP_1_Startup
StudentAdd_One1
A_Parent_VP_3_Add_Student_if_none
A_Parent_VP_1_Startup
StudentAdd_One1
A_Parent_VP_3_Add_Student_if_none
A_Parent_VP_1_Startup
StudentAdd_One1
A_Parent_VP_3_Add_Student_if_none
A_Parent_VP_1_Startup
StudentAdd_One1
A_Parent_VP_3_Add_Student_if_none
A_Parent_VP_1_Startup
StudentAdd_One1
A_Parent_VP_3_Add_Student_if_none
A_Parent_VP_1_Startup
StudentAdd_One1
A_Parent_VP_3_Add_Student_if_none
A_Parent_VP_1_Startup
StudentAdd_One1
A_Parent_VP_3_Add_Student_if_none
Game_Edit_1b_VIEW_GAME
Game_Edit_1a_From_Assignment
Game_Edit_1_From_Assignment_LINK_mobile
Game_Edit_1_From_Assignment_LINK_mobile
Game_Edit_1a_From_Assignment
Game_Edit_1b_VIEW_GAME
Game_Edit_1a_From_Assignment
Game_Edit_1_From_Assignment_LINK_mobile
Game_Edit_1b_VIEW_GAME
Game_Edit_1a_From_Assignment
Game_Edit_1_From_Assignment_LINK_mobile
Game_Edit_1b_VIEW_GAME
Game_Edit_1a_From_Assignment
Game_Edit_1_From_Assignment_LINK_mobile
Game_Edit_1b_VIEW_GAME
Game_Edit_1b_EDIT_GAME
Game_Edit_1_From_Assignment_NO_LINK
Game_Edit_1a_From_Assignment
Game_Edit_1a_From_Assignment
Game_Edit_1b_EDIT_GAME
Game_Edit_1_From_Assignment_NO_LINK
Game_Edit_1a_From_Assignment
Game_Edit_1b_EDIT_GAME
Game_Edit_1_From_Assignment_NO_LINK
Game_Edit_1a_From_Assignment
Game_Edit_1_From_Assignment_NO_LINK
Game_Edit_1b_EDIT_GAME
A_Parent_VP_1_Startup
A_Parent_VP_3_Add_Student_if_none
StudentAdd_One1
A_Parent_VP_1_Startup
A_Parent_VP_3_Add_Student_if_none
StudentAdd_One1
Game_Edit_1_From_Assignment_NO_LINK
Game_Edit_1b_EDIT_GAME
Game_Edit_1a_From_Assignment
Game_Edit_1a_From_Assignment
Game_Edit_1_From_Assignment_NO_LINK
Game_Edit_1b_EDIT_GAME
Game_Edit_1_From_Assignment_NO_LINK
Game_Edit_1a_From_Assignment
Game_Edit_1b_EDIT_GAME
Game_Edit_1_From_Assignment_NO_LINK
Game_Edit_1b_EDIT_GAME
Game_Edit_1a_From_Assignment
Game_Edit_1b_VIEW_GAME
Game_Edit_1a_From_Assignment
Game_Edit_1_From_Assignment_LINK
A_Parent_VP_1_Startup
A_Parent_VP_3_Add_Student_if_none
StudentAdd_One__1
Game_Edit_1b_EDIT_GAME
Game_Edit_1_From_Assignment_NO_LINK
Game_Edit_1a_From_Assignment
Game_Edit_1_From_Assignment_LINK_mobile
Game_Edit_1a_From_Assignment
Game_Edit_1b_VIEW_GAME
Game_Edit_1b_VIEW_GAME
Game_Edit_1_From_Assignment_LINK
Game_Edit_1a_From_Assignment
Game_Edit_1a_From_Assignment
Game_Edit_1b_VIEW_GAME
Game_Edit_1_From_Assignment_LINK
Game_Edit_1_From_Assignment_LINK
Game_Edit_1a_From_Assignment
Game_Edit_1b_VIEW_GAME
Game_Edit_1_From_Assignment_NO_LINK
Game_Edit_1a_From_Assignment
Game_Edit_1b_EDIT_GAME
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVATION_REMOVE
Resource_Appt_Clicked
Resource_Appt_Clicked
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked_RESERVE
Resource_Appt_Clicked
====================
Vladimir's answer:
Hi Tom,
Aware IM is supposed to automatically time-out and delete pending processes and normally it does, otherwise we would be swamped with issues. However, I have seen reports like yours where people were claiming that some of the processes were not properly deleted and the table overflowed. I still don't know how to reproduce this issue and what is causing it compared to the normal behaviour of the system.
The "allow cancel" flag has nothing to do with this. The record of the process is written into the table when a process is "suspended" - that is, when there is an action that interacts with the user (ENTER NEW, EDIT, PICK FROM etc) or when there is a batch operation FIND ... IN BATCHES OF. The process is resumed when there is a reply from the user. If the user doesn't reply the suspended process is supposed to time out and be removed.
Best Regards,
Vladimir