cmi.suspend_data size

Feb 27, 2013

Hi:

We have a cmi.suspend_data issue related to Storyline.

In comparison, Studio 09 output the suspend data in a compact format.

example: page completions would be 1,1,1,0,0,0,0,0,0 if the user completed 3 pages.

Storyline outputs a very verbose record and we find it is "cloging the arteries" of our LMS and users are crashing when they finalize the course.

Is there a method we can use to output cmi.suspend_data in the compact format?

I need a timely answer as the users are currently ergistered and have commenced the courses.

Best Regards,

Dennis Hall

11 Replies
Phil Mayor

Large course will still send a lot of information.  If you are using variables, questions and interactions obviously more information needs to be sent.  Slides set to resume saved state will need that information sent.  This is really a design consideration the Scorm limits have always been there and if you cannot hack around this you need to design within these limits.

Dennis Hall

Thanks for the input Phil and Peter:

I undertstand the issue. The situation I have is that the LMS is SCORM1.3 2nd. Edition which limits suspend data to 4000 bytes, while SCORM1.3 3rd and 4th. Edition limit the suspend data to 64000 bytes. I also know that SCORM cmi.suspend_data limits jumped to 64000 bytes at 1.3 3rd. Edition.

My course does not contain anything other than standard questions (created in the QM interface as well as Freeform) and contains Branches populating 4 Variables. The course is 188 pages and contains Restricted navigation.

I have tested it on a SCORM1.3 4th. edition LMS and it works fine, however, the LMS my organization uses is only SCORM1.3 2nd edition.

So... You are telling me there is no Articulate solution other than to break up my course into individual SCO's?

Another solution will be to change out the organizations LMS (my preference anyhow).

Knowing I have no advanced interactions or navigation, next week I'll test a SCORM1.2 publish to verify the cmi data output format and update this thread after. Prior to my doing this, can anyone verify if the cmi.suspend_data output will change to the oder format?

Best Regards,

Dennis Hall

Dennis Hall

Hi All:

I'm still trying to find ways to reduce my cmi.suspend_data and found something interesting, as follows:

I've seperated my course modules so I have only the final exam module with 3 non-scored questions and 28 scored questions in a 46 slide course.

About every 10 minutes (weather I'm active or idle in the course), storyline dumps the complete course of cmi.suspend_data for the whole course.

As an example: I am on slide 30 of 46 (which is question 16 or 28) and doing nothing for 10 minutes when suddenly Storyline pushes a cmi.suspend_data dump for the whole course (including all the slides I have not yet entered).

I have attached my annotated - captured suspend data for your software developers to review.

This is building up my cmi suspend_data thousands of bytes larger than it needs to be.

Additional Note:

I have tested this exact scenario where I reviewed my quiz, and where I did not review my quiz.

In the case where I reviewed my quiz, the suspend data was too large to correctly store in the LMS.

In the case where I did not review my quiz, the suspend data stored without issue in the LMS.

This tells me that a 28 question quiz with about 60% of the questions made via Convert to Freeform outputs massive amounts of cmi.suspend_data and that Storyline repushes the suspend data every 10 minutes nomatter if the user is actively doing anything or not.

Is this normal for Storyline?

How can I eleviate this from happening?

Best Regards,

Dennis Hall

Gerry Wasiluk

The posting every 10 minutes is something many of us wanted in the early days of Presenter and asked for. 

I like to call it a "keep alive."  Some LMS's have inactivity timers that will time out the user after a period on inactivity and if the user is not proceeding through the course (say, they have to leave for a while), the LMS will log them off.  Or, if the content is on a server external to the LMS, the LMS may think the learner is inactive and log them off.  So the learner keeps going through the content and finish but the LMS may not record the results because the LMS has logged them off.

You can manually adjust how long this keep alive interval is.  Go to the LMS.js file in the output and look for this:

setInterval("ForceCommit()", 600000);

60000 = 10 minutes.  Adjust 60000 to what you want.

Gerry Wasiluk

You're welcome, Justin! 

Actually, as a pleasant aside, in the post to the LMS, Storyline actually does something similar to Presenter.  Here's part of a sample post in a SCORM 2004 course.

%3C?xml%20version=%221.0%22%20encoding=%22UTF-16%22%20?%3E%3Ccommand%3E%3Cn%3Ep%3C/n%3E%3Cv%3E1484_11%3C/v%3E%3Ctest%3Efalse%3C/test%3E%3Ca%3ETesting_Interactions_SCO%3C/a%3E%3Cb%3E%3Cc%3Eadl%3Cc%3Enav%3Ce%3Erequest%3Cv%3E_none_%3C/v%3E%3C/e%3E%3Cc%3Erequest_valid%3C/c%3E%3C/c%3E%3C/c%3E%3Cc%3Ecmi%3Ce%3Ecompletion_status%3Cv%3Ecompleted%3C/v%3E%3C/e%3E%3Ce%3Eexit%3Cv%3E%3C/v%3E%3C/e%3E%3Ce%3Elocation%3Cv%3E%3C/v%3E%3C/e%3E%3Ce%3Eprogress_measure%3Cv%3E%3C/v%3E%3C/e%3E%3Ce%3Esession_time%3Cv%3EPT31.22S%3C/v%3E%3C/e%3E%3Ce%3Esuccess_status%3Cv%3Epassed%3C/v%3E%3C/e%3E%3Ce%3Esuspend_data%3Cv%3Eviewed=1,2,3,4,5,6%7Clastviewedslide=6%7C1#1##,7,3,3,3,3,11#0#e1d58b19-f0a7-43b3-b153-3aba8479cc76=218~2169215216217121111~3222~256111100101010101010101010100100100100110100110110110100101321023023000224310006passed~2366a5e9e4f-8f63-4e0f-

Take this though a p1484_11falseTesting_Interactions_SCOadlnavrequest_none_request_validcmicompletion_statuscompletedexitlocationprogress_measuresession_timePT31.22Ssuccess_statuspassedsuspend_dataviewed=1,2,3,4,5,6|lastviewedslide=6|1#1##,7,3,3,3,3,11#0#e1d58b19-f0a7-43b3-b153-3aba8479cc76=218~2169215216217121111~3222~256111100101010101010101010100100100100110100110110110100101321023023000224310006passed~2366a5e9e4f-8f63-4e0f-">URL decoder and you get this:

p1484_11falseTesting_Interactions_SCOadlnavrequest_none_request_validcmicompletion_statuscompletedexitlocationprogress_measuresession_timePT31.22Ssuccess_statuspassed>suspend_dataviewed=1,2,3,4,5,6|lastviewedslide=6|1#1##,7,3,3,3,3,11#0#e1d58b19-f0a7-43b3-b153-3aba8479cc76=218~2169215216217121111~3222~256111100101010101010101010100100100100110100110110110100101321023023000224310006passed~2366a5e9e4f-8f63-4e0f-

This learner viewed the first 6 slides and last exited viewing slide 6.

I was missing that in Storyline but was surprised last week to see it still was there, at least with SCORM 2004. 

Of course you may need to query the LMS db with something like SQL to see this but we always found this data helpful when someone called and said they had completed a course (especially one with completion by # of slides viewed) and the LMS did not record that.  Too many times we found they had not viewed all the slides.

Dennis Hall

Hi All:

This issue is resolved.

The problem was that I had a corrupted slide in my my first scene of 5.

I had found it unusual that my SCORM project would output a ton of cmi data at the very beginning (i.e. I had not even finished loading the first slide). You can see this in my previously attached traces.

After deleting and rebuilding slides, then importing my story into a new file, it was all cleaned up, the traces looked as they should, and my product was able to send the completion status to the LMS.

Dennis Hall

This discussion is closed. You can start a new discussion or contact Articulate Support.