Blackboard Vista

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

Last week I posted on how to verify the cookie domain on nodes not just looking in the Ear file on the admin node. That same concept has another cool use: Verifying which VSTs the nodes actually have.

Typically one-off updates from Blackboard has us run the updateWebctEar to replace classes in the war file. In a nutshell it…

  1. opens the ear
  2. opens the war
  3. updates the class at the path
  4. regenerates the war
  5. regenerates the ear

Simple enough by hand, but very convenient in a script. I was glad when Bb gave us this functionality.

cd $WL_DOMAIN
./webct.sh updateWebctEar __some_class.class webct.war/WEB-INF/path/to/class

Verifying that this is in the Ear file is rather easy, but it takes a while manually. Also, one of the steps is to open the ear then search the webct.war. Well, the managed nodes cache the Ear so it kind of saves a step to look there. We run 14 clusters and worry about inconsistencies between various development clusters and between development and production. Plus, as this is a sanity check, why not check all of them? (Also, we use dsh, so checking all 140 production nodes with one command and not having to login to each saves the most time.)

The command…

  1. changes directories to a location in the cache area,
  2. confirms the location
  3. uses the Java ARchive (JAR) tool to list (-t) verbosely (-v) the webct.war file (-f)

All put together…

cd$WL_DOMAIN/servers/node_name_regex/tmp/_WL_user/webct/
&& pwd && $JAVA_INSTALL/bin/jar -tvf */webct.war WEB-INF/path/to/class/__some_class.class

The output looks something like below. The time stamp appears to be when the server administrator added the file to the

118864 Fri Jul 23 11:25:42 EDT 2010 WEB-INF/path/to/class/__some_class.class

I’m thinking this could also be useful to scan for what updates the nodes have in the War just after we’ve installed it.


Related posts

One of the common complaints instructors have about CE/Vista is the Tracking reports don’t have recent enough data. They are shown this for selecting the date range.

Select a Date Range for the Report

Select a Date Range for the Report

Including here the most recent time the tracking was processed (which the application already displays to the server administrator in background jobs) would help the instructor know whether the data is as recent as 4:00 am or 1:00pm.

Maybe when Tracking will run again ought to be displayed to the instructor so he or she knows it will run within the hour or the next morning. That might cut down on instructors running it again and again expecting it to magically show data which won’t be available until many hours later.

Administrators some times have to pick the best operational time to run Tracking. We have direct login checks running several times per hour. When Tracking is run every hour and these checks run at the same time, the time these direct login checks took spiked. Users also complained about poor performance. So we have these run in the wee hours of the morning when users are not generally on the system.


Related posts

There was an interesting question the other day about a student claiming CE/Vista lost the draft a student wrote. The administrator, Michael Scalero, wanted to know how we “administrators recover or assist users in gaining access to the content that the students (or instructors) have saved”. Part of my response was,

Besides, CE/Vista isn’t designed for administrators to assist users. Administrator roles are just to manage availability, access, and settings. It just happens that by having the ability to enroll our account(s) we can go into a section and see what the users see in many cases.

This got me thinking…. There is no official support role at the section context in CE/Vista. At best administrators can place users they control into the section to replicate the issue which can only act like other normal users. The normal roles are designer, instructor, student, auditor, and teaching assistant. Because a support role was never created, there are not any built-in useful tools for diagnosing and addressing problems the users may encounter. Instead all that work happens by those with access to the database. A couple years ago Georgia Tech gave a presentation on the support panel they created for T-Square which was designed for helping them overcome common issues in Sakai.

In CE/Vista,administrators have to rely on self-reporting (usually unreliable) or taking over accounts to see what legitimately they should be able to know to help solve problems. For example:

A student reports he could not see a section in the class list. An administrator’s verification is to check the enrollment in either the section or user views, but there is very little confidence this means anything. The student could have hidden the class, the start-end time could have briefly blipped, etc.

Step one of problem solving is identifying the problem. When there are dozens of potential problems without any way of narrowing down the field, administrators will rightly desire more access to the system’s nooks and crannies to see what is really happening. Because it doesn’t exist in the web pages served, they look at the data stored on the web and database servers to better understand. (Really, though something like Coradiant might help here by going back to see the HTML the server delivered to the student.)

“With great power comes responsibility.” Administrators are already very powerful and can do really scary things. The ability to act as any user? Would need to be kept in a log so employees who abuse this power can be terminated quickly and easily. Even the ability to see anything other users can see could be horrible if poorly implemented.

A former boss had a difficult time with a faculty member who often accused this boss of reading the faculty’s email. The evidence was emails the faculty member didn’t remember reading had been marked as read. The huge assumptions were: 1) the faculty member would remember having read it, 2) the only people capable are this boss and the faculty member, and 3) there were not automated rules to mark the email as read. All this because someone mentioned to the faculty member the people in IT would be able to read email. Imagine the ire if faculty thought administrators could do things as them in the learning management system….


Related posts

The highest revision of Oracle database supported by Blackboard for CE/Vista is 10g. Wondering if other Bb clients have noticed Oracle 10g leaves Premier Support on July 31, 2010. The first year of Extended SUpport fees are waived, so July 31, 2011 we’ll have to start paying extra money to Oracle unless Blackboard starts supporting 11g. (I’m guessing Blackboard isn’t going to discount what we have to pay to Oracle from the licensing costs. )

Maybe if enough clients complain, then Blackboard will start moving in the direction of supporting 11g? I’ve heard rumors of people already running 11g.


Related posts

Note we don’t usually run single installs. Previous work with clustered installs didn’t present this issue that I know.

First run of Blackboard CE/Vista 8 Service Pack 3 Hoftfix 1 installer on a single install gave me:

Installation error. Cannot install Java as target directory already exists – /path/to/node/jdk150_13

The installer hung because it went to do a mkdir and the directory was there. It should have abandoned installing Java and moved on to the next task. Instead, it gave me an incomplete install.

No biggie. I moved the existing Java directory out of the way and moved the backup copy of the installation directory back in place. Ran the installer again. This time it failed on a new error:

Installation error. java.util. zip.ZipException: No such file or directory

Turns out the files it needed to do this JDK install were not provided in the package. Luckily everything was in the SP3 installer (why it had been there in the first place). Copied those files into where the installer had sought them. Did the same backout again. Ran the installer again.

Installation completed successfully.

Amy thinks other clients reported this same issue only affected single installs when this hotfix was released and people started using it. We didn’t pay much attention because we don’t normally do single installs.

BTW: There’s not enough difference between  COMPLETE and INCOMPLETE to catch the attention of a person while the installer output is throwing 20 lines a second to the screen. FAILED would be better.


Related posts

Sorry, this was originally supposed to be published a few weeks ago. I’m just getting around to posting it. – Ezra

Tests after applet patch in development reported chat failures. Chat uses an applet, so I was concerned and investigated the problem. The usual culprits were not affected.

  1. setEnv.sh had WEBCT_CONFIG_OPTIONS set to start chat on correct nodes.
  2. customconfig/ChatServer-config.xml had SSL key in correct location.
  3. SSL key was the correct key.
  4. SocketServer logs were not rolling every minute.

So chat looked correctly setup on our end.

On the web server nodes where chat runs, I changed directory into the logs directory. Now that I looked in SocketServer logs for a web node running chat, I noticed some lines had “user” in them. I guessed the value after user was the id in the person table for the user who experienced the error. It was easy enough to look for that id in the database and confirm my guess.

This first grep of SocketServer log isolates the sixth item between colons teases which is that person id. The second grep reports the whole line including the time stamp.

grep “[0-9]-user” SocketServer.??????????.log | awk -F\: ‘{print $6}’ | sort | uniq
grep “[0-9]-user” SocketServer.??????????.log

With the results of the first grep just above, replace the numbers in bold with a comma delimited list.In the database I looked for these ids with this SQL. Substitute your own id numbers in bold. They turned out to be the id numbers for users experiencing the problems. I recognized the accounts as people who had been testing.

select lc.name, p.webct_id, p.id from person p, learning_context lc
where p.learning_context_id = lc.id and p.id in (99999,999999)
order by lc.name, p.webct_id
/
Since I was researching just on one environment and a development one at that, I was curious
about the two kinds of errors:
  1. Connection reset
  2. Session aborted by remote peer.

It looked like in production still had some of the same errors. The one session I profiled appeared to show the errors in chat start about 2 hours after the last action by the user in the webserver.log. This is the time the TCP profile cuts off the chat.

The cause of these more frequently on development in chat turned out to chat having a 5 minute profile instead of the correct 2 hour one. Now everything is consistently having this problem when users let their sessions expire.

Hopefully they are just leaving their windows open on personal computers and not public spaces.


Related posts

My favorite quotes:

  1. “[Blackboard is] a one-stop shop where students can come and get absolutely any access to me, any access to the teaching assistants.” — Philip Wirtz
  2. “[Open source] classroom management systems [like Sakai and Moodle] are becoming increasingly popular because they allow schools to adapt the software to meet their needs.”
  3. “Even though Blackboard continues to grow through acquisitions, Klopfer says the company could face competition from Google in the collegiate market.”

It would have been good to have more points of view such as from schools using open source products. At least they were not completely ignored.

The Google angle seems more of a stretch. There is no reason why the existing Google Apps for Education or other similar cloud tools could not not be used for the purpose of interacting with students. Reasons for why not to do so depend on distrust of the cloud.


Related posts

We run ten web sites running Vista 8.0.3 hf1 where the installs are 99% automated by internally developed scripts. In discussing removing some old monitoring, we discovered one of them has on average 20 times more of the BEA-101017 error than the others. So I went looking for what is causing so many of these errors.

About 9270 of the 9613 in the yet to be rolled logs for BEA-101017 all had to do with “Invalid resource properties – specify path or object id but not both-https://site.view.usg.edu/webct/RelativeResourceManager”. Suspected these exception errors should show in the web server log with the 500 HTTP code for “Server Error”. A simple way to identify them:

grep RelativeResourceManager webserver.log | grep -w 500

Armed with the content=9999999999 value, I used grep to locate which web pages called this URL.

grep -B 10 9999999999 webserver.log | head -50

This pointed me to looking in the HTML for custom web pages. I found CSS using the offending URL as a repeating background for the headers on a navigation bar. There is a blue background color. This image displays a vertical gradient for the same blue. Essentially a fancier version which no one noticed has not worked in the past 7 months. The failure isn’t because of the CSS. This just tells the browser to call the image so if putting the URL in the address bar doesn’t work then I wouldn’t expect the browser to call it from the HTML.

What makes this worse is the image file exists in System Files where it ought to reside for this to work. Also, the URL used appears to make a difference in this case but not others. Other images used on the page work and reside in the same folder in Vista as the failing URL.

Fails: https://site.view.usg.edu/webct/RelativeResourceManager?content=99999999999
Works: https://site.view.usg.edu/webct/urw/lc999999.tp999/RelativeResourceManager?contentID=99999999999

Even worse? Both fail on the test cluster using the content id for that file in that system.

SOLVED:

Overlooked the bad variable “content=”. It should be “contentID=”. Vista doesn’t respond with something like, Content is not a valid variable for the RelativeResourceManager.

    P.S. I like grep’s -w flag as it requires spaces around the word. When looking for a number in a web server log, there is a big difference between 500 and 2132500232234. Both would show up for just “grep 500″.


    Related posts

    Someone mentioned working on an issue where an instructor in Safari saw the error “Broken pipe” when uploading a PDF file to our CE/Vista 8.0.3 HF1 site. Of course, the issue couldn’t be replicated and light on the details. I asked for the details anyway to track down the failure intending to open a ticket with Blackboard on another bug. No such luck. The error was simple:

    [File] cannot be saved because its name contains illegal characters

    The file name follows this pattern: abcde”fg hijkm”.pdf

    Removing the double quotes ought to sort out that issue. Simple. We’ve known for a long time CE/Vista doesn’t handle certain special characters very well. You know, remove data from fields which would cause an error before attempting to save it. Or even alert the user why something failed. “Sorry this file cannot be uploaded. Check this list for likely reasons.”

    The client provided in the ticket this upsetting approach from research she found online.

    Being that you are on a cluster, there is potential that it’s the load balancer, could be it’s not handling sessions properly and tossing sessions back and forth between nodes. — Blackboard Support File Management and Issues – Blackboard Vista Student Troubleshooting

    I’m glad this one was something far more simple.


    Related posts

    « Older entries