- Avoid creating large exams involving many/complex questions and presented all at once.
- 50 questions is already a lot of questions.
- Consider breaking them into smaller exams taken in sequence instead.
- Large exams also create much more server load when submitting the final exam, which can lead to failures due to application overload when groups of users submit at the same time, so when taking large in-classroom exams, please stagger the submissions.
- Avoid randomized display order for exams using question-by-question display.
- When using random selection of questions from pools, keep the overall exam especially short.
- Give the exam one question at a time. This ensures that the user’s java session is continuously updated, and the likelihood of a user not hitting the system to persist his/her session is reduced.
- Turn off the “force completion” option. This allows the user to persist his/her answers. In case of any issues with the session timing out, the user will be able to re-enter the exam from the last point he/she saved, allowing them to submit the exam with minimal data loss. In addition, the Save button will also function the same as the solution above, allowing the java session to persist for a longer period of time.
- Do not use randomized tests. While this is most likely an unusable workaround, the reason randomization is a problem is that each version of the exam in a randomized test is created in java memory only. Therefore, during a randomized test if the java session for the user dies, the attempt will not persist anywhere and will be completely unrecoverable. Removing randomization will use a version of the test from the database, so the user would get the same test with the same order the next time he/she took the test.
Finally, I would recommend tests not having more than 50 to 100 questions maximum , especially when multiple large tests are being attempted at the same time. In these cases you need to display one question at a time, turn off the force completion option and also avoid using the randomize feature. These are the best practices for reducing the charge.