JIRA
Install
Admin
Use
Search JIRA documentation:

Installing JIRA on BEA WebLogic

PDF
PDF

These instructions will help you install JIRA on WebLogic 8.1 Service Pack 2 and above.

Compatibility notes:

  • JIRA will not run on WebLogic 8.1 without Service Pack 2, due to WebLogic bugs (specifically CR112484). JIRA will not run on WebLogic 6.1 as it has filter issues and is not J2EE 1.3 compliant.
  • Some users have experienced license-related problems due to a bug in JDK 1.4.2_08 (1.4.2_05 is known to work).
  • According to one user Weblogic 9 ships with a broken JDK (possibly the same bug mentioned above), so use 9.1 or 9.2 instead.

To avoid performance problems, be sure to read the weblogic.xml modifications section.

1. Unpack JIRA

Download and unzip the JIRA WAR (Webapp ARchive) distribution. A new directory containing JIRA will be created, hereafter referred to as $JIRA_HOME.

2. Install Weblogic

  1. Install WebLogic on your machine (unless already installed). The WebLogic installation directory will be hereafter referred to as $WEBLOGIC_INSTALL.
  2. Create a domain named atlassian using the Domain Configuration Wizard.
  3. Create a server for this domain named jira.
  4. Create an admin user for this domain (name = weblogic, password = weblogic).

3. Configure the WebLogic datasource

3.1. Download the JDBC driver

WebLogic ships with several database drivers. If your database driver is already installed, go to section 3.2. If your database driver is not already installed, follow these steps:

  1. Create directory "$WEBLOGIC_INSTALL\user_projects\lib"
  2. Download a JDBC driver for your database (see the list of databases supported by JIRA). Copy the JDBC driver jar file to the $WEBLOGIC_INSTALL\user_projects\lib directory.
  3. Add the path to the JDBC driver jar file to the WebLogic classpath, by editing "$WEBLOGIC_INSTALL\user_projects\atlassian\startWebLogic.cmd" (the following example is for the HSQL database):

    set SERVER_NAME=jira
    set WLS_USER=weblogic
    set WLS_PW=weblogic
    set CLASSPATH=%CLASSPATH%;$WEBLOGIC_INSTALL\user_projects\lib\hsqldb-1.7.1.jar
    

3.2. Create a connection pool

The following steps apply to the WebLogic 8.1 administration console:

  1. Open the WebLogic Server Console
  2. Navigate to JIRA – Services – JDBC – Connection Pools
  3. Click the “Configure a new JDBC Connection Pool...” link
  4. Select your “Database Type” from available types, or choose “Other” to configure a database type that is not listed.
  5. Select your “Database Driver” from available options. (To install a new driver, refer to section 3.1.)
  6. Enter the “Name” for this connection pool, e.g. “Jira Connection Pool”.
  7. Enter the rest of the connection properties, which are specific to your database.
  8. Click the "Test" button to verify the database connection.
  9. Click through the wizard to finish the configuration of the connection pool.

3.3. Configure the datasource

The following steps apply to the WebLogic 8.1 administration console:

  1. Open the WebLogic Server Console
  2. Navigate to JIRA – Services – JDBC – Data Sources
  3. Click “Configure a new JDBC Data Source...” link
  4. Enter the “Name” for this data source. For example “Jira Data Source”
  5. Enter the “JNDI Name”. Type “JiraDS”, which is the default used for JIRA. This name will be referred to as jndi-name from the entityengine.xml configuration file that you will configure in step 4.2.
  6. Choose the “Pool Name” that you created in step 3.2.6.
  7. Click through the wizard to finish the configuration of the data source.

4. Configure JIRA

Modify the transaction factory tag in the entityengine.xml file, located in the edit-webapp\WEB-INF\classes directory.

  1. Locate the section:

    <transaction-factory class="org.ofbiz.core.entity.transaction.JNDIFactory">
        user-transaction-jndi jndi-server-name="default" jndi-name="java:comp/env/UserTransaction"/>
        <transaction-manager-jndi jndi-server-name="default" jndi-name="java:comp/env/UserTransaction"/>
    </transaction-factory>

    and change this to:

    <transaction-factory class="org.ofbiz.core.entity.transaction.JNDIFactory">
        <user-transaction-jndi jndi-server-name="default" jndi-name="java:comp/UserTransaction"/>
        <transaction-manager-jndi jndi-server-name="default" jndi-name="java:comp/UserTransaction"/>
    </transaction-factory>
  2. Now configure the JNDI path where JIRA will expect to find a database connection factory. This is done by editing the <datasource> tag at the bottom of entityengine.xml. For example, using mssql, your <datasource> entry would be:

    <datasource name="defaultDS" field-type-name="mssql"
        helper-class="org.ofbiz.core.entity.GenericHelperDAO"
        check-on-start="true" use-foreign-keys="false"
        use-foreign-key-indices="false" check-fks-on-start="false"
        check-fk-indices-on-start="false" add-missing-on-start="true">
        <jndi-jdbc jndi-server-name="default" jndi-name="JiraDS"/>
    </datasource>
            

    The jndi-name (JiraDS in the example above) must be the same as defined in step 3.3.5.

See the Entity Engine documentation for full details.

5. Configure WebLogic

Weblogic supports some additional webapp configuration parameters in the weblogic.xml file. This file should be created in the edit-webapp/WEB-INF/ directory of the JIRA distribution. Here is a typical example for Weblogic 8.1:

<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
          "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
  <weblogic-web-app>

    <jsp-descriptor>

      <jsp-param>
        <param-name>pageCheckSeconds</param-name>
        <param-value>-1</param-value>
      </jsp-param>

      <jsp-param>
        <param-name>precompile</param-name>
        <param-value>false</param-value>
      </jsp-param>

      <jsp-param>
        <param-name>workingDir</param-name>
        <param-value>./jsp_precompile_dir/jira</param-value>
      </jsp-param>

    </jsp-descriptor>

    <container-descriptor>
      <servlet-reload-check-secs>-1</servlet-reload-check-secs>
    </container-descriptor>

    <context-root>jira</context-root>

  </weblogic-web-app>

The full weblogic.xml syntax is described in BEA's documentation. Here we describe some important parameters you should consider setting.

Disabling JSP reload checks

JIRA's performance is considerably affected by Weblogic's tendency to scan JSPs for changes on every page load. This can be disabled by setting pageCheckSeconds to -1.

Disabling servlet reload checks

Similar to the JSP reload checks, Weblogic will scan servlets for modifications every second (by default), hurting performance. This can be prevented by setting the servlet-reload-check-secs element to -1.

Avoiding JSP recompiles on redeploy

If you Weblogic instance is often restarted, performance can be improved by explicitly setting a directory to save compile JSPs to (the workingDir parameter), and setting precompile to 'false'.

6. Generate Weblogic WAR file

Edit build.xml and customise the bea.home or wl.home properties. Then run build.sh weblogic.war (Unix) or build.bat weblogic.war (Windows) to generate a WAR file in dist-weblogic/

Note
A Windows compatibiity issue is currently being tracked at JRA-11675.

7. Deploy JIRA to WebLogic server

The following steps apply to the WebLogic 8.1 administration console:

  1. Open the WebLogic Server Console
  2. Navigate to jira – Deployments – Web Application Modules
  3. Click the link “Deploy a new Web Application Module...”
  4. Locate and select the JIRA WAR file
  5. Enter the “Name” for this web application module, for example “Atlassian JIRA”
  6. Click though the wizard to finish the deployment of JIRA web application.

User-contributed notes

Have experiences to share with Weblogic and JIRA? We welcome your thoughts. Please see the user-contributed Weblogic notes.