May 23, 2007, 8:38 am by Alex
|
Comment
Some people reported the other day that they were having problems connecting to MSGAlert – we thought to start with it might just be a firewall issue – the port it runs on might have been blocked by their firewall, but after a bit of investigation we found out what the problem really was.
We were getting errors like these appearing in out tomcat log files:
INFO: Illegal access: this web application instance has been stopped already. Could not load META-INF/services/javax.xml.parsers.DocumentBuilderFactory. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
INFO: Illegal access: this web application instance has been stopped already. Could not load com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
INFO: Illegal access: this web application instance has been stopped already. Could not load com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
For most of the afternoon we pretty pretty stumped as to the cause – mainly thinking there was a jar file missing or something – but that didn’t seem right as the same code was being used in other places and ran fine. It was also odd that it ran fine on Windows, but not on Linux, but it had (until recently) been working fine on Linux too.
The cause turned out to be that there were 2 tomcat processes running, when the server-side code is running for MSGAlert it listens on port 5225, the ‘old’ process had control of the port, but the old prcoesses servlet container wasn’t running – but this meant the port wasn’t available for the correct container to use – hence the error.
Once we’d stopped (killed) all the tomcat processes and restarted (just the one!) all started to work fine.
Thought I should post this up as we had quite a job finding any useful information on Google about the errors we were getting, even though it appears quite a lot of people come across the same issue
Fixed quite a few little bugs and other things we needed to get sorted out this week, for example transferring the Moodle MSG block so that it uses the MSG API that we’ve developed. That required a few changes to be made to how the API worked – though only additions rather than changing how it worked originally.
We also released the latest version of the MSGAlert tool (v2.1 – more info) which now includes a link to the MSG presence map. Currently this is only available for the msg.open.ac.uk server (and not msg-openlearn.open.ac.uk, but that’s coming soon). Marc has been demonstrating (amongst other things!) our MSG maps implementation as the EleGI project review meeting this week. This gives a good cohort of users from across Europe to test out the maps and find if there are other remaining bugs or things we could improve.
This morning I also started to look at embedding the maps within the Moodle MSG block, my thinking at the moment is to put a very small Goolge map with in the block (if you are logged in) and the map would centre on your location and put a marker there of you online, but then to view all the other users you would need to click on a link (or on the map) to launch the full MSG presence map. So somthing like…

In fact this is already up and working on my development server. Just not sure that the map isn’t a little too big? Another quesion I’ve got is what to do when users aren’t logged in? I want to show somthing of the map – to try and “entice” people to sign in, rather than just a text link or nothing at all. Maybe it should show a short demo video of how to use the maps – something which I ought to produce anyway? Any other suggestions gratefully received
In case you are wondering, I’m not planning on having all the users contacts displayed on the embedded block map, users will have to go to the actual MSG Presence Map page for this. The reason being that it’s potentially to heavy to have all this javascript going on in the background all the time, especially when there may be other block and content doing JavaScript ‘stuff’ too.
December 11, 2006, 2:47 pm by Alex
|
Comment
Had fun this morning figuring out how to get the context menu for MSG Alert to display the same context menu when you right or left click on it. You’d think that ought to be very easy to do (and it is when you know how) but it was totally non obvious to me – the NotifyIcon class only has click, doubleclick, mouseclick etc methods, there aren’t any methods which deal solely with left or right clicks.
I tried a variety of approaches (from the number of messages in forums etc this isn’t a new problem!!), most of which used the NotifyIcon.ContextMenu.Show() method. However when I tried this, although the menu appeared fine, a blank item appeared in the taskbar, which looked really horrible!!! In the ended I opted for the method described here. This seemed to be the only reliable way of doing it.
Whilst doing this I also ‘upgraded’ my menu from ContextMenu to a ContextMenuStrip to take advantage of being able to add icons etc etc.
December 7, 2006, 5:02 pm by Alex
|
Comment
Just about finished rewriting MSGAlert in visual c# and we’re now just testing it all out. Has been fairly painless – well, once we decided to go with c# instead of c++. So now users will see a balloon tool tip in the taskbar notification area when a new message is received and should stop some of the problems/comments we had where users didn’t find the notification of a new message to be obvious enough!
Hopefully we’ll not find very many bugs or issues and I can get on with the Google maps that I was playing with before
December 1, 2006, 3:33 pm by Alex
|
Comment
So, after a couple of weeks messing around (and to be honest – not getting very far!!!) with Visual C++ finally decided that it was probably best to go with Visual C# .NET instead. C# is much more ‘understandable’ to me, having done Java before, and hope that should make the code much easier to develop and maintain. In fact I’ve got further in couple of days with C# than I had with 2 weeks of C++, and with each I was starting at the same level, I’d not used either before.
Have even got as far (in the recoded MSG Alert program) as connecting up to the server, sending and receiving responses, so I think the ‘hard’ bits are all done, and I just need to spend some time putting it all together
October 24, 2006, 9:17 am by Alex
|
Comment
One of the things I need to get on with after the launch is to make some changes to the MSG Alert tool – the one that sits in the system tray to alert users when a new message is received – the key changes/enhancements we’d like ot make are:
- Automatically set status to ‘away’ when the screensaver is active or the user locks the machine
- Pop up alert when new message is received (like Outlook can do when new email arrives) as currently users (including me!) don’t always notice that icon has changed to the ‘message received’ icon (the red exclamation mark in the system tray isn’t alwasy enough!!)
- Create versions of MSG Alert for Mac and *nix (not sure which versions yet)
This will all be quite ‘new programming’ for me, the current MSG Alert is written in C and it’s been about 8 or 9 years since I’ve done any C programming, and I’ve never worked with the Windows API in this way. So I think I’ll have a bit of a learning curve to get up to speed to get the new functionality implemented. Also I’ve rarely used a Mac, let alone programmed applications for it… so we’ll see how it goes!
Any pointers to tutorials or source code for creating applications like this would be much appreciated!! Especially code/pointers/tips/gotchas for creating the pop up alerts like Outlook has for email.