Migration Of A Time Tracking Software Application Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

In the early days, time tracking was used to simply determine the payroll of an employee. The amount of time that was spent on a task could be converted to a reasonable payment for an employee. More useful time spent on a company task translated itself into a higher payment. Now, time tracking has evolved to a great and handful tool to derivate several things. With time tracking you can actually see how much time is spent on a project or how an employee divides its time onto several tasks. Time tracking can determine customer billing information by calculating how much time was spent on a customer project. Flanders' DRIVE uses a free software tool found on the internet, ActiTime, to track time of several employees. The ActiTime application is a free application to register time dedicated to specific tasks[1]. Flanders' DRIVE decided to introduce a new IT infrastructure to meet its business requirements. As with the migration from the old infrastructure to the new one, ActiTime also had to be migrated. A few problems came up in the migration process. I solved the problems step by step and came to a good working migration of the ActiTime software tool.


Time tracking software is an important tool to track time of employees. Flanders' DRIVE is using this software tool to create a view on how much time is spent on a client task or project. This software tool is used to determine the client billing of a project. A few employees register their time information in the application through a web based interface. ActiTime is a web based application. As Flanders' DRIVE had the need to introduce a new IT infrastructure, several software tools had to be migrated to the new infrastructure. ActiTime was one of them. In the migration process, several problems came up that I had to solve. I had to solve the problem of how I could extract the user data from the ActiTime database. ActiTime is a web based application who uses java servlets. While the internet information service (IIS) of windows server 2008 doesn't support java servlets, I had to set up a different web server which could support the use of java servlets. ActiTime recommended the use of the tomcat server which is also available for download on the ActiTime website. Since tomcat is a product of apache I've had a few problems to get this server work with windows server 2008. While the apache tomcat server could disrupt other services of windows, installed on the new servers, I had to determine which server could best be used to install the apache tomcat server and get ActiTime to work.

Migration of ActiTime

Analysis of currently used version of ActiTime and data backup

Flanders' DRIVE was using the ActiTime 1.5 version, installed with an automatic setup. In order to collect the data from the old version I had to find out a way to gather the data to insert it in the new application. The automatic setup allows choosing the database that is installed. Flanders' DRIVE had the opportunity to choose between a Microsoft access database and a mysql database. When they first installed the ActiTime application they chose the mysql option. So to extract the data from the old application, I had to search for mysql commands and I had to find out the name of the database. The name of the database could be derived from the ActiTime support files. The database was called 'ActiTime'. So to extract the data, actually a backup method, the following method was found. To back up the database the mysqldump[2] command could be used:

mysqldump -u <username> -p<password> ActiTime > ActiTime_data.sql

A short explanation what to fill in:

<username>: fill out the username that is used to set up the mysql database.

<password>: fill out the password used for the user who created the database ActiTime. Note that there is no space between p and <password>!

The parameter after '>' is free to choose. The database backup is stored in the file specified after the '>' symbol.

This command can be executed with the windows command prompt. Navigate to the right location where the database is stored and execute the command specified above.

Gathering installation files and set up test environment

The installation files of the ActiTime application could be found on the website of ActiTime. In this situation we chose to download the custom installation pack. This because in the custom installation pack you can make some customizations in the application, choose which java application to install and which web server to use. For the web server the Apache Tomcat Server version 6.0.20 could best be used, the installation of this web server is very straight forwarded[3]. For the java application, a java runtime engine 6 machine was chosen. ActiTime also needs a database to store all the user data. There are 2 options to use, you can choose between MS Access 3.0 or later and MySQL 4.1.17+, 5.0.x+ or 5.1.x+. In this situation the MySQL server 5.1 machine was the best option because the ActiTime application on the old server used a MySQL database as well. To migrate the user database it is best to use the same database structure. My test environment was set up with virtual machines that could be accessed through VMware. My test environment consisted of a windows server 2000 machine with an active directory installed on it and two windows server 2008 machines. I would like to refer to my other work [MASTERPROEF] to set up my test environment.

ActiTime installation on test machine

Installation of the ActiTime application is not very difficult.

The installation package has to be unzipped into the right web-application folder of the apache tomcat server. This is the place where the web files are stored and can be viewed by anyone who accesses ActiTime through web browser. After the unzipping process the ActiTime application files are on the right place (Tomcat 6.0/webapps/ActiTime/). The application however isn't ready to use yet. To prepare the application to run correctly, a few variables must be set to specify which database to use, where the database is located on the hard disk, and the username and password to retrieve access to the data on the database. To specify these variables to the application, a visual basic script is included in the web folder (setup_mysql.vbs). The variables are set and the migration of the old database data to the new database on the new server could start. To insert data into a database a text file which contains SQL commands could be send to the database. The following command could be used to send the sql file to the database:

mysql -u <username> -p<password> -P <port number> ActiTime < ActiTime_data.sql

A short explanation what to fill in:

<username> & <password>: see previous section

<port number>: The port number that is used to access the SQL database

The variable before the '<' sign specifies wich database is used

The variable after the '<' sign specifies the database file, in our case this is the file I've created in the previous section.

To execute this command, the windows command prompt is used.

Now the last step to do is restart the tomcat server. When the tomcat server was reset the ActiTime application could be used. All tests turned out positive and the installation of the application in the business network could start.

ActiTime installation on the business network

The next step was to implement the ActiTime application in the operational network. A simple windows xp machine was used to test the application in the network. After installation of the application and testing it turned out that the application worked well and was good accessible by the company members. Thereafter, a decision was made to install a new windows xp machine on a company server. This new windows xp machine was a virtual computer who was set up through hyper-V (standard component of the windows server 2008 product). The application was installed in the same way it was described in previous sections. While testing the application, not everything was working as expected. When the Tomcat Server was started, the Tomcat application went down immediately. The problem of the tomcat server who went down immediately had to be determined.

Determine the problem

To solve the problem, some different steps to determine what was the exact problem where used. Some actions that were tried but doesn't led to a conclusion of the problem:

Reinstallation of the ActiTime application

Reinstallation of the Apache Tomcat Server

Install a different version of the Apache Tomcat Server

Reinstallation of the java server machine

Install a different version of the java server machine

These steps where used to possibly detect the problem, however the problem still existed by each step. After some research on the internet, a possible solution to the problem was found. The solution was tried and indeed, the apache tomcat server started to work again. The problem was a combination of the apache tomcat server and the installation of the java virtual machine. The advantage of a tomcat server over a windows IIS server is that a tomcat server can run java servlets. To run these java servlets, apache has the need to access the java virtual machine that is installed on the machine. When the apache tomcat server starts, he checks where to find the java directory and he searches for a specific file "msvcr71.dll". This dll file was not placed correctly in the right directory when the java virtual machine was installed. To solve our problem I simply had to copy this dll file in the bin directory of the tomcat server[4]. The tomcat application could find the right dll and started up successfully and the ActiTime application worked properly.


What is Hyper-V?

Hyper-V is a role of the Microsoft windows server 2008 product[5]. With this role, virtual machines can be created and managed. Virtual machines are computers who are running on a simulated set of hardware inside an existing operating system. This operating system runs on his own set of physical hardware. A virtual machine is thus a simulated computer inside an existing operating system.

Installation of the Hyper-V terminal

Installation of the Hyper-V terminal on the windows server 2008 product is very straight forwarded. The installation of the hyper-V terminal could be found in the roles section of the windows server 2008 product[6]. First open server manager and click on the roles option. Click on the add roles link and an installation wizard is shown. Mark the hyper-V role and click next. Next you can specify the virtual machine specifications[7]. The specifications are not fully listed in this paper, for the full specifications I would like to refer to my other work [MASTERPROEF]. Well it is important to notion that the virtual network adapter has to be chosen by the network preferences. A network adapter is highly recommended because we want full network access for our employees to reach the server through web browser (intranet).

Conflicts between Hyper-V and Trend micro

When the new virtual machine was created and we turned the machine on, a little problem came up. When we turned the machine of, the machine turned itself off after a while with an unknown reason. After some research was done an explanation for this behavior could be explained. The explanation could be found with the Trend Micro real time scan, which is in use in the whole company. Trend Micro is configured to scan the whole hard disk of the windows server. Since the directory of the virtual hard disk (file needed for hyper-V where our virtual OS is stored) is scanned by Trend Micro's real time scanning, Hyper-V prevents us to create or start new virtual machines[8]. The proper way to protect our virtual machine is to exclude the virtual hard disk directory from the scanning list in the Trend Micro real time scan application and to install the Trend Micro real time scan on our virtual OS. With these modifications the virtual machine started to run, our ActiTime installation could be started and thereafter the virtual machine is known in the company as the ActiTime server.

Why hyper-V?

The ActiTime application contains several components such as the apache tomcat web server and the java virtual machine. These components could disrupt other processes or components installed on a windows server machine. Therefore there has to be a proper selection of the right servers we could possibly use to accomplish the role of the ActiTime application. Since there were no servers available to assign this role to, the decision was made to use a virtual machine that is running on his own and could not interrupt other services that are running on the windows server 2008 machine. The ActiTime role could not be assigned to the other windows server 2008 machines because other important roles were installed on these machines. These roles contained:

Active Directory

Microsoft Exchange server

Microsoft Office Sharepoint Server

So the choice for a virtual machine was the best option because buying a new server would cost the company a lot of many to simply run the ActiTime application.


In this paper we studied the way an application like ActiTime has to be migrated from an old server to a new server machine. We saw that it isn't very difficult to install an application and migrate its data. When something goes wrong in the whole migration process it is mostly a strong search to know what the exact problem is. In this paper we came to the conclusion that a tomcat server, needed to create a web server, was unable to start because of a missing dll file of the java virtual machine. We also had to determine what machine was best to migrate the application to. Since there where server machines who accomplished the role of important services like exchange, active directory … We decided to implement ActiTime on a virtual machine using Hyper-V, which is a role of the Microsoft windows server 2008 product. When the hyper-v virtual machine was created, we noticed that the machine was unable to start. The machine was unable to start because of a conflict with an antivirus program, trend micro. Hyper-V's real time scan application caused the problem that machines created in hyper-V aren't able to start because of a real time scan on the directory of where the hyper-V files are stored. In order to solve this problem we had to remove the hyper-V directory from the scanning list and use the hyper-V real time scan application on our OS, running on our virtual machine.


I would like to express my special thanks to Flanders' DRIVE who gave me the opportunity to work and learn on their new and old server infrastructure. I also wish to acknowledge Ward Vleegen and Jan Stroobants for their support in my research to the different applications that had to be migrated in the Flanders' DRIVE company and especially the application conducted in this paper, ActiTime. Thanks are also placed for Tom Croonenborghs who coached me through the whole process and gave help and advice to write this paper.