Blackboard Vista

You are currently browsing the archive for the Blackboard Vista category.

Two vendors.

Both think the problem must be the other’s fault. Because you know… Their product is perfect. They never have design issues. Ever. So it must be someone else’s fault.

Problem 1:

Upon loading the zip package into the CE/Vista SCORM module, the end user saw:

The SCORM package is not compliant with SCORM Ver 1.2 Conformance Requirements. All supporting schemas must be at the root of the package; the following schemas were not found at the root: [adlcp_rootv1p2.xsd, imscp_rootv1p1p2.xsd, imsmd_rootv1p2p1.xsd] As a result, the package may not perform as desired. Are you sure you want to continue?

I actually feel bad for not immediately recognizing this meant these XSD files needed to be in the zip file.  Blackboard ought to feel bad for having the response this means the imsmanifest.xml in the file was written for a more current version of SCORM than the rather ancient 1.2. I could understand that response if specific items in the file are only relevant in the current version. I don’t understand that response when the same file which works with Vista 3 (created about the same time as SCORM 1.2) works and Vista 8 doesn’t. Sounds more like something changed in Vista 8 to make it more strict.

Fixing the missing XSDs files resulted in a new error:

The SCORM package could not be imported because it does not comply with one or more specifications within the package. The following error was produced: **Parsing Error** Line: 7 Message: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element ‘lom’. Please inform the SCORM vendor and try again once the problem has been resolved.

Is it wrong to be excited about an error? Dropping the problematic items from the imsmanifest.xml file produces new errors. After five iterations, I don’t seem to be making much progress.

Problem 2:

This SCORM module simply passes to an HTML file with JavaScript some variables to send the user off to the QuestionMark site. It should not this big of a deal.

Somehow Vista 8 is calling the file where it doesn’t exist for the QuestionMark SCORM module but not other modules.

QuestionMark addres:

/webct/scorm/viewer/perceptionSCO.htm?call=scorm&
session=9999999999999999&
href=https://ondemand.questionmark.com/delivery/session.php&
lang=-&customerid=mcg

Known good SCORM module address:

/webct/RelativeResourceManager/999999999999/filename.html

The number after RelativeResourceManager typically can be found under “View File Information” in the file manager. The file name after the number is the name of a file in the zip. Copying the address for the known good let me view it. At this point it seemed logical I could just build the address to the QuestionMark zip manually and see it as a designer (maybe not as a student). Unfortunately, this gives me system exception errors.

Last Solutions:

In trying to solve two problems with one stone, I took the imsmanifest.xml for the known good SCORM module and just changed the href= for resource and file to use the perceptionSCO.html file name for QuestionMark. Still failed to find the file.

BUUUUUUUUUUUUUUUT…

I removed all the variables after the perceptionSCO.htm. Now Vista finds the file. It gives me errors about not having the values in those variables, but it found it.

This is stupid.

Apparently designers are embedding video from external sources in our Vista 8 environment. Internet Explorer complains when elements of a secure page reference non-secure elements. In this case, CE/Vista has the secure page. The embedded video is a non-secure element. At best the IE complaint is to prompt the user to pick whether to view the non-secure element. At worst, it just refuses to show the page and shows “Navigation cancelled”.

The possibilities are:

  1. Browser: Use a different one which doesn’t complain.
  2. Settings: When it comes to security settings, I’m hesitant to recommend thousands of users change them without being extremely sure doing so is safe. Seems to me having it ignore the issue exposes users to danger. Rumor is also Windows Updates can revert the settings back to defaults.
  3. Content: Change how the content is delivered to avoid the issue.

The content is being put inside HTML files rather than using the Web Link tool to open a new window with the video. Even using a Web Link tool to show the content inside the same window causes the IE complaint.

All three will cause a ton of work to address the issues. In my opinion wrangling designers ought to require the least amount of work of the three. Though I guess that would depend on the popularity of IE and neediness of the users.

The CE/Vista error “Unable to locate the page you requested” is supposed to be a more user friendly error than the HTTP 404 Page Not Found. Okay, sure between the two, more users would understand the CE/Vista one than the generic HTTP one. The only suggestion for dealing with these is to contact the server administrator via a mailto link.

Say what? We had over 22,000 active sections last term? We have 40 institutions and dozens of professional designers and thousands of faculty designing their own classes. Cryptic emails about being frustrated with Vista means I have to contact the sender, find out what institution, class, problem happened and send that to an institution person who has to figure out which designer to direct it. I’m too far removed to be useful for these requests.

Solutions:

  1. CE/Vista ought to keep a broken link report. It would record to a log in the Designer Tools reporting which addresses resulted in errors and a list of the referrers, how many times requests came from each referrer. This gives designers something they can use to address the problems. Maybe give the designers the ability to reset the log on a page when they think they have fixed it. Give them an icon in the class list to see when there are unhandled cases.
  2. Assuming the above is too hard, this mailto link should be a form recording the learning context involved, referring page, browser, user, and file which failed the request. The message could go to the mail tool for the designers.

Supported

(This is an post I wrote back in November but didn’t publish…. Until now. Have fun!)

Mitigated speech gets a lot of use by people trying not to offend. All too often, people who have been hurt because of mitigated speech question what isn’t being told as though the omission or gaps are intentionally deceptive.

What are or are not supported browsers came up again. The trick here is the mitigated speech used with the levels of support. I assume the intent is clarity.

  • Certified – supported with complete testing done.
  • Compatible – supported with some testing done.
  • Provisional – supported with some testing done before official release.

Certified is taken as supported by all parties. Compatible and Provisional are interpreted as not supported because the complete testing has yet to be done. I think Blackboard’s intent was to mark them as supported but qualify how customers might encounter issues due to not fully testing. This means Blackboard is interested in learning about the problems encountered in order to address them.

At least that is my interpolation. Mmmmmm the Kool-Aid is good.

A couple issues I encountered yesterday loading XML files on Blackboard Vista 8.

siapi output says:

error invoking method in adapter, message is: cvc-complex-type.2.3: Element ‘extension’ cannot have character [children], because the type’s content type is element-only.

Means the wrong type between luminis and ims was used. I created a files.properties file which sets the import type based on the name of the file. For the luminis type, the persons records are in persons1.xml. For the ims type, the persons records are in ims_users1.xml.


webct.log says:

Message is : Authorization denied

User trying to import the file must be an institution administrator. I probably created the import user but did not enroll it as an admin. What I get for moving too fast.


xmllint

This Linux tool is my new best friend. We get thousands of XML files from our clients for loading user, class, and enrollment information. Some of these clients customize our software or write their own software for generating the XML.

This means we frequently get oddities in the files which cause problems. Thankfully I am not the person who has to verify these files are good. I just get to answer the questions that person has about why a particular file failed to load.

The CE/Vista import process will stop if its validator finds invalid XML. Unfortunately, the error “An exception occurred while obtaining error messages.  See webct.log” doesn’t sound like invalid XML.

Usage is pretty simple:

xmllint –valid /path/to/file.xml | head

  1. If the file is valid, then the whole file is in the output.
  2. If there are warnings, then they precede the whole file.
  3. If there are errors, then only the errors are displayed.

I use head here because our files can be up to 15MB, so this prevents the whole file from going on the screen for the first two situations.

I discovered this in researching how to handle the first situation below. It came up again today. So this has been useful to catch errors in the client supplied files where the file failed to load.

1: parser error : XML declaration allowed only at the start of the document
 <?xml version=”1.0″ encoding=”UTF-8″?>

162: parser error : EntityRef: expecting ‘;’
<long>College of Engineering &amp&#059; CIS</long>

(Bolded the errors.) The number before the colon is the line number. The carat it uses to indicate where on the line an error occurred isn’t accurate, so I ignore it.

My hope is to get this integrated into our processes to validate these files before they are loaded and save ourselves headaches the next morning.

For exactly two months now I have been working on a re-opened issue (on Oct 7, 2009) where sessions appear to die in Blackboard Vista 8.0.2 hf1.

The first time this came up, Blackboard support wanted us to overhaul the session management. BIG-IP documents saying attempting this new method was a horrible idea caused us never to get on board. We agreed to conduct dupe.pl tests which showed there wasn’t a problem with session spray, which the solution was designed to resolve. Stonewalled, we closed the ticket when the institution reporting it didn’t have any cases to provide us.

So our client with the issue asked us to resume work on it. The key information they provided me was their users hit the /webct/logonDisplay.dowebct. Since they use Single-Sign On (SSO) from a portal, no users should ever hit this page. From investigating these cases, I was able to find a number of cases of users hitting /webct/displayAssessment.dowebct or /webct/displayAssessmentIntro.dowebct with the guest user.

See, the guest user exists at the domain learning context. Users appear as guest before they login or as the logout. They should not appear as guest when taking a quiz.

So I provided this information to Blackboard with the web server logs. They wanted more cases, so I provided more. More clients reported the issue, so I had plenty of sources. Plus it pointed to this problem affecting at least 4 if not all clusters.

Next, our TSM left, so we were provide a new person unused to us. It took just the first note to make a huge mistake. “Provide us all the logs from all the nodes.” At 5GB of logs times 14 nodes in a cluster, 70GB of information for an event which took up maybe 10KB seems like overkill. So… No. I like to think of my self as proficient at system administration, which means I can gather whatever logs you desire.

Now we come to the second mistake. Please refrain from asking me questions already explained in the ticket. Sure, the ticket has a large amount of information. However, if I can remember what is in the ticket, then so can the people working it.

Unfortunately I had to answer a question about replicating this with: it was based on my log trolling not actual cases of students complaining. My mistake was not going to the clients to find a description of the problem. Therefore, Blackboard wanted a WebEx so I could explain the same one sentence repetitively. *headesk* We agreed on me getting a case where a user could explain the problem.

As luck would have it, I got just a case a few days later. So I captured the web server log information and sent it along with the user description. My laziness resulted in me not trimming the log set down to the period of the error. Therefore, this log set showed a user1 login, user2 login, then user1 login again. Blackboard responded this might be a case of sporadic shifting users. Hello! I guess these folks are not used to seeing the SSO login to be able to know the session shifted to another user because… it… logged… in?

By pulling the entries from the f5 log showing the client IP address, Blackboard now wants us to implement a configuration change to the f5 to reflect the browser’s IP in our web server log. Getting such a change isn’t easy for us. Don’t say this is the only way to get client IPs when I… have… sent… you… client IPs. We’ve been at this impasse for 3 weeks. So I get to have another WebEx where I explain the same thing I’ve already written. *headesk*

Maybe it is finally time to ask the people if they are at all familiar with the known issue which sounds like the issue?

VST-3898: When taking an assessment the session is not kept alive. The student’s session times out forcing the student to restart the assessment or makes them unable to complete the assessment.

We plan to implement the upgrade which resolves this issue next week. So, I am hoping this does resolve it. Also, I am tempted to just close this ticket. Should the institutions find they are still having problems in January when the students have had a few quizzes fail, then I might have forgotten how utterly completely useless Blackboard has been on this issue.

All I ask is:

  1. Know the information in the ticket so I don’t have to copy and paste from the same ticket.
  2. Don’t ask for all the logs. Tell me what logs you want to view.
  3. Don’t tell me something is the only way when I’ve already shown you another way. I’m not an idiot.
  4. Don’t ask me if the f5 log has the cookie when the entries I’ve already sent you don’t have it.

:(

Saw this on Laura Gekeler’s blog:

Tip: Keep a ‘last known good’ config.xml file on your admin node.
Your Bb Vista cluster config.xml file | laura gekeler

Very good tip! We learned this lesson a couple months into hosting Vista 8 in pre-production.

She goes on to explain this file gets overwritten any time a change in Weblogic is made. Sometimes these changes are (un)intentionally made by an administrator using the console. Sometimes Weblogic detects problematic conditions and makes the change itself. When these changes create problematic conditions, then the last known good version saved us from having to go make the changes ourselves and potentially miss something.

In our cases of problems, a single node failing to shutdown after the JMS node was shutdown caused Weblogic to rewrite who should be the JMS node. It also caused a jumbling of the user preferred server stanzas. We now monitor for these problems and page ourselves to warn us about the problem so we can address it immediately rather than let our clients discover the problem a few days later. (I also somewhat mentioned this in the Forcing Weblogic’s Config.xml post.)

The times I’ve done this I didn’t go as far as Laura. I just…

  1. Stop all the nodes in the cluster.
  2. Copy the current version from $WEBLOGIC_DOMAIN/config/config.xml to /home/<user>.
  3. Copy the last known version from /pathto/lastknownversion/config.xml to $WEBLOGIC_DOMAIN/config/.
  4. Use “touch $WEBLOGIC_DOMAIN/REFRESH” on each managed node.

I am now curious about why she wanted new server directories or a new Vista_WLSstore database table?

A few weeks ago, we had a discussion with our clients about a rash of students submitting the wrong files for assignments. These files were all Windows shortcuts to the actual document. The instructors were unable to open the file. The students were unaware of the mistake. So confusion all around makes for unhappy situations.

In my opinion this situation arises because Microsoft makes it difficult to notice a shortcut file isn’t the actual file on Windows.

  1. By default Windows XP and Vista (anyone know about Win 7?) have “Hide extensions for known file types” checked. So a student is unlikely to notice a shortcut has .lnk instead of .docx by looking at the file name. I think this situation was created to solve the issue of users renaming files to the wrong extension arbitrarily. Windows depends on the file extension for much software.
  2. Most file icons have a set appearance. Shortcut icons look like the target file only with a small white box with an arrow. Most users are likely to miss this distinction in my opinion.

Our recommendation to students is to remove the setting mentioned in #1. This ought to better help students figure out which file they are going to submit. Let’s hope, anyway.

Rather than depend on end users to accurately report the browser used, I look for the user-agent in the web server logs. (Yes, I know it can be spoofed. Power users would be trying different things to resolve their own issues not coming to us.)

Followers of this blog may recall I changed the Weblogic config.xml to record user agents to the webserver.log.

One trick I use is the double quotes in awk to identify just the user agent. This information is then sorting by name to count (uniq -c) how many of each is present. Finally, I sort again by number with the largest at the top to see which are the most common.

grep <term> webserver.log | awk -F\” ‘{print $2}’ | sort | uniq -c | sort -n -r

This is what I will use looking for a specific user. If I am looking at a wider range, such as the user age for hits on a page, then I probably will use the head command to look at the top 20.

A “feature” of this is getting the build (Firefox 3.011) rather than just the version (Firefox 3). For getting the version, I tend to use something more like this to count the found version out of the log.

grep <term> webserver.log | awk -F\” ‘{print $2}’ | grep -c ‘<version>’

I have yet to see many CE/Vista URIs with the names of web browsers. So these are the most common versions one would likely find (what to grep – name – notes):

  1. MSIE # – Microsoft Internet Explorer – I’ve seen 5 through 8 in the last few months.
  2. Firefox # – Mozilla Firefox – I’ve seen 2 through 3.5. There is enough difference between 3 and 3.5 (also 2 and 2.5) I would count them separately.
  3. Safari – Apple/WebKit – In searching for this one, I would add to the search a ‘grep -v Chrome’ or to eliminate Google Chrome user agents.
  4. Chrome # – Google Chrome – Only versions 1 and 2.

Naturally there many, many others. It surprised me to see iPhone and Android on the list.

« Older entries