Try Free

Custom Installation Package for Windows

  1. Copy actiTIME files onto your machine

    Extract installation package (a .zip file) into the 'webapps' folder of your Tomcat installation directory. 'actitime' subdirectory will appear.

    Note that if you extract the archive into the '<tomcat home>\webapps', you will only need to restart Tomcat server to make the actiTIME installation available. Otherwise you will have to configure Tomcat to make it able to run actiTIME in another directory.

  2. Enter the 'actitime' subdirectory
  3. Create a MySQL user account

    Skip this step if you are planning to use actiTIME with a MS Access database.

    The account shall have all privileges on the database that will be created later during the installation. The default name of this database is 'actitime'. You can choose any other name, but then you have to specify this name as a parameter for the installation script.

  4. Allow actiTIME to create stored functions in its database

    Skip this step if you are planning to use actiTIME with a MS Access database.

    To do that, run the following query in MySQL under the 'root' user account or under any other user account with SUPER privilege:

    SET GLOBAL log_bin_trust_function_creators = 1;

    If necessary, you can revert this configuration change to the original value after having created and set up the database.

  5. Set up database parameters

    Database parameters are set up using scripts provided in the installation package.

    If you want actiTIME on Windows to work with MS Access database, launch one of the following scripts without parameters:

    • setup_access_vista.vbs if you are using Windows Vista
    • setup_access_win7.vbs if you are using Windows 7, 8, 8.1 or 10
    • setup_access.vbs otherwise

    If you want actiTIME to work with a MySQL database server, launch one of the following scripts.

    • setup_mysql_vista.vbs if you are using Windows Vista
    • setup_mysql_win7.vbs if you are using Windows 7, 8, 8.1 or 10
    • setup_mysql.vbs otherwise

    These scripts have the same launch format:

    (script name).vbs [/mysqlpath <MYSQLPATH>][/username <USERNAME>] [/password <PASSWORD>][/host <HOST>] [/port <PORT>] [/dbname <DBNAME>]

    where

    <MYSQLPATH> is the path to the MySQL executables (a directory where the 'mysql.exe' and 'mysqldump.exe' files are placed). If the path is not specified, installation script will ask for it when running.

    <USERNAME> is the MySQL user name under which actiTIME will create and use the database. If not specified, setup script will ask for it when running.

    <PASSWORD> is the password of user <USERNAME>. If not specified, setup script will ask for it when running.

    <HOST> is the host name of the server where MySQL server is running. If not specified, the local host will be assumed. It is required if actiTIME uses a remote MySQL database.

    <PORT> is the port on which MySQL server is running. If not specified, the default MySQL port will be used.

    <DBNAME> is the name of the database to be created. If not specified, 'actitime' will be used as the database name.

    If the script finds the previous version of the actiTIME database, it will back up the database to the actiTIME.mysql4.sql.backup_[current date] file.

  6. Revert the permission to create stored functions to the previous value (if necessary):

    To do that, run the following query in MySQL under the 'root' user account or under any other user with SUPER privilege:

    SET GLOBAL log_bin_trust_function_creators = 0;

    If necessary, you can revert this configuration change to the original value after having created and set up the database.

  7. Configure Tomcat application server

    Make necessary activities to the Tomcat application server if you want to run actiTIME in non-default configuration (different port, virtual host etc.).

    If you want to run Tomcat with "-security" option on Windows or Unix, you will need to add special permissions to the $CATALINA_HOME/conf/catalina.policy file (or $CATALINA_HOME/conf/tomcat.policy depending on the Tomcat version). The set of permissions depends on Tomcat version and its configuration.

    To do that, run the following query in MySQL under the 'root' user account or under any other user with SUPER privilege:

    Tomcat 7.0.x:

    grant codeBase "file:<PATH>/actitime/-" { // Access to Tomcat libraries permission java.io.FilePermission "${catalina.home}${file.separator}lib${file.separator}-", "read"; // Access to Tomcat logs (necessary to allow Tomcat to rotate its logs) permission java.io.FilePermission "${catalina.home}${file.separator}logs", "read"; permission java.io.FilePermission "${catalina.home}${file.separator}logs${file.separator}-", "write"; // Database access permissions // put permissions specific to the type of // used database here (see below) // actiTIME requires permissions to access an SMTP server to send email notifications. // Please replace <SMTP_HOST> below with name or IP address of your SMTP server. // It must be equal to the one specified in actiTIME General Settings. permission java.net.SocketPermission "<SMTP_HOST>:25", "connect,resolve"; // Access to system properties permission java.util.PropertyPermission "org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read"; permission java.util.PropertyPermission "org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER", "read"; permission java.util.PropertyPermission "catalina.home", "read"; permission java.util.PropertyPermission "file.encoding", "read"; permission java.util.PropertyPermission "java.runtime.version", "read"; permission java.util.PropertyPermission "org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "read"; permission java.util.PropertyPermission "guava.concurrent.generate_cancellation_cause", "read"; // Network and Runtime permissions permission java.net.NetPermission "specifyStreamHandler"; permission java.lang.RuntimePermission "getClassLoader"; permission java.lang.RuntimePermission "accessDeclaredMembers"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.session"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.connector"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.core"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.util"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina"; permission java.lang.RuntimePermission "accessClassInPackage.javax.servlet"; permission java.lang.RuntimePermission "accessClassInPackage.sun.util.logging.resources"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.buf"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.coyote"; permission java.lang.RuntimePermission "accessClassInPackage.sun.security.provider"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.jdbc.pool"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.jdbc.pool.jmx"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.jdbc.pool.interceptor"; permission java.lang.RuntimePermission "accessClassInPackage.sun.reflect.generics.reflectiveObjects"; permission java.lang.RuntimePermission "setContextClassLoader"; //MBean management permission javax.management.MBeanServerPermission "createMBeanServer"; permission javax.management.MBeanPermission "com.actimind.common.jmxmanagement.mxbeans.*", "registerMBean"; permission javax.management.MBeanTrustPermission "register"; // Optional permissions that would increase actiTIME performance permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; permission java.lang.RuntimePermission "defineClassInPackage.org.apache.jasper.runtime"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina"; permission java.lang.RuntimePermission "defineClassInPackage.java.lang"; permission java.lang.RuntimePermission "defineClassInPackage.java.util"; };

    Tomcat 8.0.x:

    grant codeBase "file:<PATH>/actitime/-" { // Access to Tomcat libraries permission java.io.FilePermission "${catalina.home}${file.separator}lib${file.separator}-", "read"; // Access to rt.jar permission java.io.FilePermission "${java.home}${file.separator}lib${file.separator}rt.jar", "read"; // Access to Tomcat logs (necessary to allow Tomcat to rotate its logs) permission java.io.FilePermission "${catalina.home}${file.separator}logs", "read"; permission java.io.FilePermission "${catalina.home}${file.separator}logs${file.separator}-", "write"; // Database access permissions // put permissions specific to the type of // used database here (see below) // actiTIME requires permissions to access an SMTP server to send email notifications. // Please replace below with name or IP address of your SMTP server. // It must be equal to the one specified in actiTIME General Settings. permission java.net.SocketPermission ":25", "connect,resolve"; // Access to system properties permission java.util.PropertyPermission "file.encoding", "read"; permission java.util.PropertyPermission "java.runtime.version", "read"; permission java.util.PropertyPermission "catalina.home", "read"; permission java.util.PropertyPermission "org.apache.tomcat.jdbc.pool.onlyAttemptCurrentClassLoader", "read"; permission java.util.PropertyPermission "org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER", "read"; permission java.util.PropertyPermission "guava.concurrent.generate_cancellation_cause", "read"; // Network and Runtime permissions permission java.net.NetPermission "specifyStreamHandler"; permission java.lang.RuntimePermission "getClassLoader"; permission java.lang.RuntimePermission "accessDeclaredMembers"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.session"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.webresources.http"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.connector"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.core"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.util"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina"; permission java.lang.RuntimePermission "accessClassInPackage.sun.util.logging.resources"; permission java.lang.RuntimePermission "accessClassInPackage.sun.security.provider"; permission java.lang.RuntimePermission "accessClassInPackage.javax.servlet"; permission java.lang.RuntimePermission "accessClassInPackage.sun.misc"; permission java.lang.RuntimePermission "accessClassInPackage.sun.reflect.generics.reflectiveObjects"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.jdbc.pool"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.jdbc.pool.jmx"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.jdbc.pool.interceptor"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.buf"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.coyote"; permission java.lang.RuntimePermission "setContextClassLoader"; // MBean management permission javax.management.MBeanServerPermission "createMBeanServer"; permission javax.management.MBeanPermission "com.actimind.common.jmxmanagement.mxbeans.*", "registerMBean"; permission javax.management.MBeanTrustPermission "register"; // Optional permissions that would increase actiTIME performance permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; permission java.lang.RuntimePermission "defineClassInPackage.org.apache.jasper.runtime"; permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina"; permission java.lang.RuntimePermission "defineClassInPackage.java.lang"; permission java.lang.RuntimePermission "defineClassInPackage.java.util"; };

    where

    <PATH> is the path to the actiTIME directory or '${catalina.home}/webapps' if actiTIME is installed to webapps directory.

    <SMTP_HOST> is the host name or IP of the SMTP server.

    If you use MySQL database, then add the following permission to the first block of permissions:

    permission java.net.SocketPermission "<HOST>:<PORT>", "connect,resolve";

    where

    <HOST> is the host name or IP of the server where MySQL server is running.

    <PORT> is the port on which MySQL server is running (MySQL uses port 3306 by default).

    If you use MS Access database, add the following permission to first block of permissions:

    permission java.lang.RuntimePermission "loadLibrary.<ACCESS_DRIVER_PATH>";

    where

    <ACCESS_DRIVER_PATH> - shall be replaced with the value of the 'IzmDllPath' parameter taken from the '${catalina.home}/webapps/actitime/WEB-INF/classes/com/actimind/actitime/AT.properties' file.

  8. Access actiTIME

    Restart Tomcat and check if actiTIME is available.

    Now you can access actiTIME via web browser http://<IP address or server name>:8080/actitime if Tomcat is configured by default and actiTIME is installed into the '<tomcat home>\webapps' directory).

    Login with username 'admin' and password 'manager'.

    If actiTIME is not available, please check Troubleshooting section for possible error causes

    actiTIME will ask you to copy your license key during the first start. If you don’t have license key and want to continue using the free basic 5-user version, click on the 'Run with Free License' button.

    After having successfully installed actiTIME, configure mail server parameters to make actiTIME notifications work properly.

Installing actiTIME Under IIS

Normally IIS can not execute Java Servlets and Java Server Pages (JSPs) actiTIME is based on. However, it's possible to configure IIS so that it redirects HTTP requests to configured URLs to Tomcat Web server. This way IIS can serve clients of a Java-based web application.

To enable this interoperability between IIS and Tomcat Web Server, an additional component - 'JK ISAPI Redirector plug-in for IIS' should be installed on the same machine with IIS. Then IIS and Tomcat Web Server should be configured to work through this component.

This document contains step-by-step instructions on how to install JK ISAPI Redirector plug-in for IIS and configure IIS and Tomcat Web server properly. IIS and Tomcat Web Server should be installed before performing the steps below.

  1. Installing actiTIME under Apache Tomcat Web Server

    The first step is the usual installation of actiTIME under Apache Tomcat Web Server.

  2. Configuring Tomcat Web Server

    Go to the "[Tomcat Installation Directory]\conf\" and check that the following XML element exists and is not commented in the server.xml file:

    <Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

    The above example shows how to configure Tomcat to listen for HTTP requests redirected from IIS on port 8009. If this port is already in use on the machine where actiTIME is being installed, you can change it.

    If you have changed the server.xml file on this step, restart Tomcat Web Server.

  3. Downloading and Configuring JK ISAPI Redirector plug-in for IIS

    You can download the ISAPI Redirector plug-in installer from the following location:

    https://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/ jk-1.2.15/isapi_redirect.msi

    Run the installer by executing the downloaded file and follow the installation wizard steps. By default the files are installed into the "C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector" directory (hereafter referred to as [JK Redirector Dir]).

    You will need to modify two files in the "[JK Redirector Dir]/conf" folder:

    • uriworkermap.properties that tells IIS what requests shall be redirected to Tomcat
    • workers.properties.minimal that tells IIS where Tomcat is running (IP address and port).

    Make the following modifications to the files:

    uriworkermap.properties

    • comment out all the mappings (by adding the '#' character at the beginning of each line) except '/jkmanager=jkstatus'
    • add the following mapping "/actitime/*=wlb"

    Now the file will look like this:

    # uriworkermap.properties - IIS # # This file provides sample mappings for example wlb # worker defined in workermap.properties.minimal # The general syntax for this file is: # [URL]=[Worker name] #/admin/*=wlb #/manager/*=wlb #/jsp-examples/*=wlb #/servlets-examples/*=wlb /actitime/*=wlb # Optionally filter out all .jpeg files inside that context # For no mapping the url has to start with exclamation (!) #!/servlets-examples/*.jpeg=wlb # # Mount jkstatus to /jkmanager # For production servers you will need to # secure the access to the /jkmanager url # /jkmanager=jkstatus

    The actiTIME mapping (e.g. '/actitime/*') must be the same as the context path of actiTIME under Tomcat. In the example above the mapping '/actitime/*' means that actiTIME is available at 'http://my.server.com/actitime/' under Tomcat Web Server.

    workers.properties.minimal

    In this file, modify the 'worker.ajp13w.host' property. This property should be set to the host name or the IP address of the machine where Tomcat (with actiTIME) is running. If Tomcat is running on the same machine as IIS, you can leave this property set to localhost. If you have specified host name other than localhost, please make sure the IIS machine can correctly resolve it to the appropriate IP address.

    Also, if you have modified the port for the Tomcat AJP Connector on step 2, you will need to modify the 'worker.ajp13w.port' property as well.

    An example of the file is given below for the following configuration:

    • Tomcat and IIS servers are running on the same machine;
    • default port (8009) is used for AJP connections.

    # workers.properties.minimal - # # This file provides minimal jk configuration properties needed to # connect to Tomcat. # # The workers that jk should create and work with # # # Defining a worker named ajp13w and of type ajp13 # Note that the name and the type do not have to match. # worker.ajp13w.type=ajp13 worker.ajp13w.host=localhost worker.ajp13w.port=8009 # # Defining a load balancer # worker.wlb.type=lb worker.wlb.balance_workers=ajp13w # # Define status worker # worker.jkstatus.type=status

  4. Configuring IIS
    1. Open Windows Control Panel
    2. Open Administrative Tools
    3. Open Internet Information Services Manager.

      You will see a window similar to the one shown below (note: The 'jakarta' virtual directory under the "Default Web Site" folder was created by the isapi_redirect.msi installer):

      iis_man
    4. Create a virtual directory for actiTIME in IIS.
      • Right-click on the default Web site and select "Virtual Directory" from the "New" menu.
        new_vd
    5. Press Next and set the alias value to the context name (without slashes) that is set for actiTIME in Tomcat. In our example this context name is 'actitime':
      vd_alias
    6. On the next screen browse to the directory containing your 'isapi_redirect.dll' file (in our case it is located in the '[JK Redirector Dir]\bin' folder) and press Next.
      vd_path
    7. Make sure that the following permissions are set: read, run, and execute.
      vd_permissions
    8. Continue through the Virtual Directory Wizard and then press Finish.
  5. Add the ISAPI Redirector to the default Web site: right-click on the default Web site and select the Properties item.
    dvs_properties
  6. In the opened window select the 'ISAPI Filters' tab.

    If the "jakarta" filter is already created, press Ok and skip steps 7 and 8. Otherwise, press Add and proceed with the next steps.

  7. Enter a filter name and browse to the location of the 'isapi_redirect.dll' file. The following screen-shot shows the values that should be entered:
    filter_properties
  8. Press OK in the 'Add/Edit Filter Properties' dialog, then press OK in the 'Default Web Site Properties' window (after that you are back to the Internet Information Services dialog).
  9. Right-click on the 'Web Service Extension' Folder and select 'Add a new Web service extension:' item:
    new_web_extention
  10. Enter the following line into the 'Extension name' field in the opened window: Jakarta Isapi Redirector.
  11. Press 'Add...' near the 'Required files' field and browse to the 'isapi_redirect.dll' file
    dll_to_extention
  12. Press OK until you are back to the 'Web Service Extension' folder.
  13. Select the "Jakarta Isapi Redirector" on the right panel and press Allow:
    allow_extention
  14. Right-click on the 'Local computer' folder (on the left panel) and select 'Save Configuration to Disk' from the 'All Tasks' menu:
    save
  15. The IIS configuration is complete now. Restart IIS to put the changes into effect.
  16. After IIS is restarted, you can log in into actiTIME.

    (the actiTIME URL will look like this: http://my.iis.server/actitime/).

Configuring actiTIME Notifications

After you have successfully logged in to actiTIME, go to Settings → General Settings and scroll down to the end of the page. You will find the Email Settings section. Specify here your mail server parameters in order to make actiTIME email notifications work.

Please enter correct values in the following mandatory fields:

  • Outgoing mail server (SMTP) - name or address of your mail server.
  • Port - mail server port (usually 25)
  • URL of your actiTIME installation - address you used to log in to actiTIME on the previous step (ex. http://<IP address or computer name>:8080/actitime). This address is required to enable links from email messages back to actiTIME
  • "From" address for email messages – address from which the notifications will be sent
  • Error Processing - email address of your system or network administrator who will be notified if actiTIME detects issues when sending email messages.

If you don't know what are the correct values, please consult your System or Network Administrator.

To configure actiTIME and get started with it, refer to the User Guide.