Hi, James,
I already replied by e-mail, but maybe it will be useful to other people, so I place the answer here too.
Initialize call indeed was made immediately after loading the course as it defined by standard. I'm sure of that - if course did not receive proper answer from SCORM API on Initialize request, then there will be no other SCORM activity at all (i.e. no Commit too). If we see Commit, then there was Initialize and it was successful. Probable reason of such message:
- if you are using LMS (not course) to terminate current SCORM API session (and session was indeed terminated) - course knows nothing about it. There's no standard way to inform the course that LMS SCORM API has terminated session. Moreover, SCORM standard contains special Terminate call from course to LMS SCORM API - to terminate current session by course, and only this way.
- course (frame or window) got unload call from LMS parent frame or window - and there is the predefined sequence of actions on unload event - course does final Commit (to be sure that all data are saved to LMS) and then (if there's no errors) - Terminate. But it seems that SCORM API session is already terminated by LMS (moreover, it even seems to be restarted, because otherwise by standard there should be another error - Commit after Terminate, and we see that course tries to commit data to new session)
So the solution seems to be in correct sequence: first you need to unload the course, second - to terminate API (actually there will be no need to terminate it, because Terminate call will be the last call from course before full unload anyway).
Hi, James,
I already replied by e-mail, but maybe it will be useful to other people, so I place the answer here too.
Initialize call indeed was made immediately after loading the course as it defined by standard. I'm sure of that - if course did not receive proper answer from SCORM API on Initialize request, then there will be no other SCORM activity at all (i.e. no Commit too). If we see Commit, then there was Initialize and it was successful. Probable reason of such message:
- if you are using LMS (not course) to terminate current SCORM API session (and session was indeed terminated) - course knows nothing about it. There's no standard way to inform the course that LMS SCORM API has terminated session. Moreover, SCORM standard contains special Terminate call from course to LMS SCORM API - to terminate current session by course, and only this way.
- course (frame or window) got unload call from LMS parent frame or window - and there is the predefined sequence of actions on unload event - course does final Commit (to be sure that all data are saved to LMS) and then (if there's no errors) - Terminate. But it seems that SCORM API session is already terminated by LMS (moreover, it even seems to be restarted, because otherwise by standard there should be another error - Commit after Terminate, and we see that course tries to commit data to new session)
So the solution seems to be in correct sequence: first you need to unload the course, second - to terminate API (actually there will be no need to terminate it, because Terminate call will be the last call from course before full unload anyway).