ActiTime 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 customer task or project. The client billing information is partially determined from this software tool. Employees who are using this software tool register their time information through a web interface because the ActiTime application is a web based tool. As Flanders' Drive had the need to introduce a new IT infrastructure, several software applications had to be migrated to the new infrastructure. ActiTime was one of them. Several problems appeared in the migration process. I had to solve the problem of how to extract the current user data from the ActiTime database. ActiTime uses java servlets through a web based application. Since the internet information service (IIS) of windows server 2008 doesn't support java servlets, a different web server had to be chosen. This web server must support the use of java servlets. The developers of the ActiTime application recommend the use of an apache tomcat server. Since tomcat is a product of apache, a few problems had to be solved to get this server work with windows server 2008. One major problem is that the apache tomcat server can disrupt other services of windows, installed on the new servers. So I had to determine which server could best be used to install the apache tomcat server and get ActiTime to work. When the apache tomcat server was installed correctly a rear problem came up. Tomcat constantly closed his own service so that the tomcat server went permanently down.
Flanders' Drive is the Flemish competence pool for the vehicle industry. The company was founded in 1996. When Flanders' drive moved to Lommel in 2004, they decided to buy an IT infrastructure that met the requirements at the new office in Lommel. At the end of the year 2008 Flanders' Drive decided to renew their IT infrastructure. To renew an IT infrastructure it is important to correctly transfer all the components of the old infrastructure to the new one. The whole transfer of the IT infrastructure and the implementation of new components can be found in my other work "Analyse van een nieuwe IT infrastructuur". When an infrastructure has to be migrated, some software with his specific user data has to be transferred too. This papers handles the migration process of one of these software applications. This software application is a time tracking software tool called ActiTime.
Migration of ActiTime
Flowchart of migration way
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, a way to extract the specific user data from the database had to be found. It is important to migrate this user data cause when there is no migration of the user data, all the time tracking information that was entered before would be lost. The automatic setup allows the administrator to specify which database would be used for the collection of the user data. The ActiTime application can run with two database programs: mysql and Microsoft access. When ActiTime was installed for the first time Flanders' Drive chose the mysql option. So to extract the data from the old application, a proper way to extract this data must be found. The name of the database could be derived from the ActiTime support files. The database was called 'ActiTime'. The exportation from the user data is a sort of backup that you make. To back up the database the mysqldump command could be used:
mysqldump -u <username> -p<password> ActiTime > ActiTime_data.sql
A short explanation of 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. In the windows command prompt window you have to navigate to the right directory of where the database is stored. Now simply execute the command explained above and a database backup of the ActiTime application is made and saved in the 'data.sql' file.
Setting up a test environment
The installation files of the ActiTime application can be found on the website of ActiTime. In this situation we chose to download the custom installation pack. The reason that we chose to download the custom installation pack is that in this packet customizations in the application can be made. One of the customizations is the java application. With the custom package you can 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 because this web server supports java servlets, the installation of this web server is very straightforward. 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. It is best to use the same database structure when a migration of a database scheme and data is taken place. My test environment was set up with virtual machines that could be accessed through Microsoft Virtual PC. My test environment consisted of a windows server 2000 machine with an active directory installed to and two windows server 2008 machines. I refer to "Analyse van een nieuwe IT infrastructuur" for details on setting up the test environment.
ActiTime installation on a test machine
To install the ActiTime application you just have to place the installation files in the web-application folder of the apache tomcat server. The web-application folder is the place where the files needed for a website are stored and can be viewed by anyone who accesses a specific website stored on our apache tomcat server. On our test machine, the ActiTime application files are unzipped to the following directory: tomcat 6.0/webapps/ActiTime/. The application however isn't ready to use yet. To prepare the application to run correctly, a few variables need to be set. These variables are needed to specify which database to use, where the database is located on the hard disk, and the username and password information to retrieve access to the data in the database. To specify these variables for 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 can start. To insert data into a database, a text file which contains SQL commands can 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 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. This was an unexpected behavior of the Tomcat server application. With this negative behavior of the Tomcat application the ActiTime application was unable to start. A search to a solution for this negative behavior could start.
Why the tomcat application went down
To solve the problem, some different steps to determine what the exact problem was where used. Some actions that were tried but did not lead to a solution 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 after each step. After some search 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. The tomcat application could find the right dll and started successfully and the ActiTime application worked properly.
What is Hyper-V?
Hyper-V is a role of the Microsoft windows server 2008 product. With this role, virtual machines can be created and managed. A virtual machine is a simulated computer inside an existing operating system. Virtual machines are computers who are running on a simulated set of hardware inside an existing operating system. This operating system runs on its own set of physical hardware. The next figures illustrates the situation of a normal computer and a virtualized computer using hyper-v.
Figure: normal computer
Figure: virtualized computer
Installation of the Hyper-V terminal
Installation of the Hyper-V terminal on the windows server 2008 product is very straightforward. The installation of the hyper-V terminal can be found in the roles section of the windows server 2008 product. 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. The specifications are not fully listed in this paper. For the full specifications I refer to "Analyse van een nieuwe IT infrastructuur". 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). With the virtual network adapter it is possible to register our virtual machine in the business network. With the use of a virtual network adapter our virtual machine act as a real machine that is connected to the business network.
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 on, the machine turned itself off after a while with an unknown reason. After some search was done a possible solution for this behavior could be found. The explanation of the problem could be found by 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 machine. 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. Since this directory is scanned by trend micro, the vhd (virtual hard disk) file is also scanned. When the vhd file is scanned, hyper-V prevents us to create or start new virtual machines. Hyper-V stops all the virtual machines that are created which are scanned through the trend micro real time scan application. It even let our virtual machines disappear from the virtual machines list. We found one solution to the problem, till now it is the only solution available but this solution is logic and works great. The solution is to add the directory of the virtual machines that are created to an exclude list of the trend micro real time scan application. You can now say that now there is no virus protection on our virtual machine, but there is a workaround. 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.
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 its own like a real computer 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 contain:
Microsoft Exchange server
Microsoft Office Sharepoint Server
Citrix management console
So the choice for a virtual machine was the best option because buying a new server would cost the company a lot of money to simply run the ActiTime application. There are a lot of virtualization solutions. A few programs that accomplish the task to create and manage virtual machines are: vmware, xen, virtual box, Hyper-Vâ€¦ . Xen and virtual box are both open source programs and vmware is a program you have to pay for. There is not much of a difference between the different virtualizations software packets. However that there is not much difference between the applications we preferred to chose for Microsoft hyper-v. We chose the hyper-v solution because the ease of use and because hyper-v is already concluded in the Microsoft windows server product. Just add the role of the hyper-v application and a virtual machine program is up and running.
In this paper we treated a way to migrate an application. Because a lot of application are to be moved to a new server like we explained in the short situation scheme. The steps described in this paper are not the same for every application that has to be migrated. This paper treats a few problems that could possibly come up during the migration process. It is not likely that for other applications the same problems come up. With a short explanation what time tracking contains the migration of a software tool for time tracking is treated in this paper. The process of migrating an application and its user data is in most cases not very difficult and very straightforward. When however something goes wrong in the migration process it is mostly a strong search to determine the exact problem and to find a solution for it. In the migration process described in this paper we found a problem with the apache tomcat server. The problem could be fixed by placing a missing dll of the java virtual machine in the right directory of the tomcat server. A selection of a possible server to move the application to had to be made. After the selection process we came to the conclusion to set up a virtual machine through hyper-v cause there was no server available to run the time tracking application. After we set up a virtual machine through hyper-v a rear problem occurred. The created virtual machines couldn't start and began to disappear in the hyper-v management console. This problem occurred because there was a conflict with the trend micro real time scan application. The conflict could be solved by excluding the virtual machine directory from the real time scan list. In the next figure you can find a short summary of the way followed to come to a working migrations of the ActiTime application.
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.