Importing "Course Test Manager" files

Course Test Manager is an "End of Lifetime" software package from Course Technology. It is no longer being actively developed by Course Technology. It has been replaced by a new test manager called ExamView. However, there has never been a migration path to allow this format to be exported from CTM test banks to any other common test format. This is why this module has been written.

In order to import questions from CTM, you must have CTM installed on a Windows machine, and have access to the MS Access data files on that machine. Two data files are required in order to access the data files:

- System.mda - This file is in the top directory of your CTM installation, and is referred to in MS access parlance as the "System Database".
- ctm.mdb - this is the database that contains the test bank questions. There is one of these databases for each course installed in CTM. It is located in a directory one level bellow your CTM installation directory.

The import process is somewhat different based on whether you're running moodle on Windows or Linux. Regardless of what platform moodle is running on, you must have a Windows system (Windows 2000 or Windows XP) on the same network as your moodle system in order to host the Access database while importing test banks.

The process is somewhat easier on a Windows-based moodle system. All you need to do to use the CTM import class is:

1. upload the system.mda system database to moodle using the file manager. It doesn't matter what course you upload the system.mda file to. Moodle will find it regardless.
2. Crete your quiz and go into the "import questions from file" process. Upload your chosen ctm.mdb database as the file to import. If you did this correctly, you will see another screen that allows you to choose the sub-category of questions to import from the database. The reason this step is here is that CTM test banks often contain a large number of categorized questions, based on the chapters of the book or sections of the course.

The process on a Linux-based moodle system includes a third-party software component called the ODBC Socket Server. In order to import CTM databases on Linux, you must first download and install this small network program on the Windows system that hosts your CTM databases. Do not follow the installation steps outlined in the ODBC Socket Server Installation. They're more complicated than they need to be! Instead, follow these steps to install this program on your Windows system:

1. Go to the windows system and unzip the install file you downloaded from this site on the system.
2. Copy the binary ODBCSocketServer.exe to a permanent location, such as your system directory (probably C:\WINNT\ or C:\Windows) or your Program Files directory.
3. Install the ODBC Socket Server as a Service on the system with this command:
   <path you copied the file to in the step above>ODBCSocketServer.exe /Service
   You may do this by typing this command from Start->Run... dialog, or from a command prompt.
4. Open the Service Manager by either going to Start->Settings->Control Panels->Administrative Tools->Services or by right-clicking on My Computer, choosing Manage, then choosing Services and Applications->Services from the right panel. You may also access the Service manager by typing services.msc in the Start->Run... dialog
5. In the Service manager, right-click the ODBC Socket Server item and choose the Start item. It's status should change to "started" when you do this. Note that you may stop and/or disable this service completely after you've completed the import process.
6. Make sure that the system.mda and ctm.mdb access data files are on the machine, and that the MS Access ODBC driver is present. It is installed in a standard Windows installation. You can determine if it installed by opening the "Data Sources" item in "Administrative Tools" and referring to the "Drivers" tab. You're going to have to determine where CTM is installed and locate the system.mda file and the ctm.mdb database or databases you're interested in importing data from. Make note of the full local paths to these files as well as the IP address or hostname of the Windows server. You're going to need this information for the import process.
7. Now you may import the testbank or testbanks into moodle. Crete your quiz and go into the "import questions from file" process. NOW HERE'S WHERE THINGS ARE DIFFERENT FOR LINUX - YOU MUST SPECIFY A DUMMY FILE IN THE UPLOAD FIELD TO GET THE IMPORT PROCESS STARTED. THIS FILE WILL NOT BE PROCESSED, IT'S JUST A PLACEHOLDER FOR THE IMPORT FORM. YOU WILL GET A PLACE TO SPECIFY THE WINDOWS SERVER INFORMATION NEXT. Next, you will get a screen where you can type in the hostname for the Windows ODBC Socket Server machine as well as the paths to the system and testbank databases. Type in the information you wrote down from the previous step here and click "Connect to Server". If everything was set up correctly, you'll get another form to allow you to choose the sub-category of questions to import from the database. The reason this step is here is that CTM test banks often contain a large number of categorized questions, based on the chapters of the book or sections of the course. IF YOU GET TO THIS STEP WITHOUT ERROR MESSAGES, YOU HAVE SET UP THE SOCKET SERVER CORRECTLY AND YOU'RE ABOUT TO IMPORT QUESTIONS TO MOODLE!

If you received error messages during this process, you may find this technical information useful. The ODBC Socket server uses port 9628 to open a socket and trade and XML query for an XML result table of the query results. The import class parses that XML and use it just like I use a local query to do the importing.