JIRA

Installation

  • Install necessary packages:
    apt-get install sun-java6-jre tomcat6 libmysql-java libcommons-modeler-java
  • Download and unpack JIRA into temporary directory:
    # wget -nv http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-enterprise-4.1.1.tar.gz
    # tar -xzf atlassian-jira-enterprise-4.1.1.tar.gz
  • Setup the database type and local JIRA directory location:

    entityengine.xml

    diff -du -ruN edit-webapp.orig/WEB-INF/classes/entityengine.xml edit-webapp/WEB-INF/classes/entityengine.xml
    --- edit-webapp.orig/WEB-INF/classes/entityengine.xml   2010-04-19 11:17:45.000000000 +0200
    +++ edit-webapp/WEB-INF/classes/entityengine.xml        2010-05-21 00:57:39.791404832 +0200
    @@ -95,8 +95,7 @@
    
             PLEASE DO NOT set the use-foreign-key* values to "true" as JIRA does not currently support this.
          -->
    -    <datasource name="defaultDS" field-type-name="hsql"
    -      schema-name="PUBLIC"
    +    <datasource name="defaultDS" field-type-name="mysql"
           helper-class="org.ofbiz.core.entity.GenericHelperDAO"
           check-on-start="true"
           use-foreign-keys="false"
    diff -du -ruN edit-webapp.orig/WEB-INF/classes/jira-application.properties edit-webapp/WEB-INF/classes/jira-application.properties
    --- edit-webapp.orig/WEB-INF/classes/jira-application.properties        2010-04-19 11:17:45.000000000 +0200
    +++ edit-webapp/WEB-INF/classes/jira-application.properties     2010-05-21 00:57:25.727404697 +0200
    @@ -17,7 +17,7 @@
     #
     # You can also use Unix like paths which Java/JIRA can handle. eg c:/jira/home
    
    -jira.home =
    +jira.home = /usr/local/jira
    
    
     #-----------------------------------------------------------------------------------------------------------------------
  • Build a package: cd atlassian-jira-enterprise-4.1.1 && ./build.sh && mkdir -p /usr/local/jira && mv dist-tomcat/tomcat-6/atlassian-jira-4.1.1.war /usr/local/jira && cd /usr/local/jira
  • Create context descriptor /usr/local/jira/jira.xml:

    jira.xml

    <!--
    A sample configuration file for Tomcat 6
    Customize the docBase attribute, drop in your $CATALINA_HOME/conf/Catalina/localhost/jira.xml
    Note the JOTM dependencies; you'll need to copy various jars to Tomcat's common/lib/ directory.
    -->
    <Context path="/jira" docBase="/usr/local/jira/atlassian-jira-3.13.4.war" debug="0">
     
        <!-- NOTE: If you use a database other than hsqldb:
        * delete the minEvictableIdleTimeMillis and timeBetweenEvictionRunsMillis attributes
        * change the database type in atlassian-jira/WEB-INF/classes/entityengine.xml
        -->
        <!--
            Read here about connection validation:
            http://confluence.atlassian.com/display/JIRA/Surviving+Connection+Closures
        -->
        <Resource name="jdbc/JiraDS"
            auth="Container"
            type="javax.sql.DataSource"
            username="jira"
            password="***"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost/jira_db?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8"
            maxActive="20"
            validationQuery="select 1"
        />
     
        <Resource name="UserTransaction"
            auth="Container"
            type="javax.transaction.UserTransaction"
            factory="org.objectweb.jotm.UserTransactionFactory"
            jotm.timeout="60"
        />
        <Manager pathname=""/>
     
    </Context>
  • Download the addon library package and unpack it to /usr/local/jira/lib directory:
    # wget -nv http://confluence.atlassian.com/download/attachments/200709089/jira-jars-tomcat6.zip
    # unzip -v jira-jars-tomcat6.zip -d /usr/local/jira
    # mv /usr/local/jira/jira-jars-tomcat6 /usr/local/jira/lib
    # ls -1 /usr/local/jira/lib
    carol-1.5.2.jar
    carol-properties.jar
    commons-logging-1.0.4.jar
    hsqldb-1.8.0.5.jar
    jonas_timer-1.4.3.jar
    jotm-1.4.3.jar
    jotm-iiop_stubs-1.4.3.jar
    jotm-jrmp_stubs-1.4.3.jar
    jta-1.0.1.jar
    log4j-1.2.15.jar
    objectweb-datasource-1.4.3.jar
    ots-jts_1.0.jar
    xapool-1.3.1.jar
  • Tune file permissions:
    # cd /usr/local/jira
    # chown tomcat6.www -R .
    # chmod a-w,o-rwx -R .
    # chmod 750 .
    
    # mkdir /var/backups/jira
    # chown tomcat6.www /var/backups/jira
    # chmod 750 /var/backups/jira
  • Configure tomcat startup JIRA application descriptor and JIRA libraries (exclude commons-logging-1.0.4.jar and log4j-1.2.15.jar as they should be already included into the package):
    # cd /etc/tomcat6/Catalina/localhost
    # ln -s /usr/local/jira/jira.xml
    # cd /usr/share/tomcat6/lib
    # ln -s ../../../java/mysql-connector-java.jar
    # rm commons-logging-1.0.4.jar log4j-1.2.15.jar
  • Configure tomcat server:

    tomcat6

    --- /etc/default/tomcat6.orig    2007-09-26 00:00:00.000000000 +0200
    +++ /etc/default/tomcat6    2009-06-05 14:51:45.593168235 +0200
    @@ -7,6 +7,7 @@
     # the Sun JDK, various J2SE 1.4 versions, and the free runtimes
     # java-gcj-compat-dev and kaffe are tried.
     #JAVA_HOME=/usr/lib/jvm/java-6-sun
    +JAVA_HOME=/usr/lib/jvm/java-6-sun/jre
    
     # Directory for per-instance configuration files and webapps. It contain the
     # directories conf, logs, webapps, work and temp. See RUNNING.txt for details.
    @@ -14,7 +15,11 @@
     #CATALINA_BASE=/var/lib/tomcat6
    
     # Arguments to pass to the Java virtual machine (JVM).
    -#JAVA_OPTS="-Djava.awt.headless=true -Xmx128M"
    +JAVA_OPTS="-Djava.awt.headless=true -Xmx512M -XX:MaxPermSize=128m"
    +
    +# Read more here about this:
    +# http://confluence.atlassian.com/display/JIRA/Installing+JIRA+on+Tomcat+5.5#InstallingJIRAonTomcat5.5-memleak
    +JAVA_OPTS="$JAVA_OPTS -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true"
    
     # Java compiler to use for translating JavaServer Pages (JSPs). You can use all
     # compilers that are accepted by Ant's build.compiler property.
    @@ -25,4 +30,4 @@
     # the consequences!
     # NOTE: java-gcj-compat-dev currently doesn't support a security
     # manager.
    -#TOMCAT6_SECURITY=yes
    +TOMCAT6_SECURITY=no
  • Start tomcat /etc/init.d/tomcat start and check logs in /usr/share/tomcat6/logs/catalina.*.log

Problems

BaseModelMBean creation fails due to missed logging.properties

You need to disable the security manager in TOMCAT6_SECURITY=no in /etc/default/tomcat6 or tweak /etc/tomcat6/catalina.policy. This post is about the same issue.

Auto export service does not clean old backups, which are accumulated with no limit

The instruction about how to disable ExportService is here. However it is not possible to configure backup expiration period. This should be done via external means.

JIRA main page displays The Gadget Dashboard bundled plugin is not available and main page is not rendered correctly

The full message is:
ERROR
The Gadget Dashboard bundled plugin is not available. Please contact an administrator to ensure the Gadget Dashboard plugin is enabled!

Also the administration console says:

There was a problem loading the module descriptor: null.<br/>Unable to enable web fragment

Another sympthom is the following message in log:

Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    at com.atlassian.templaterenderer.velocity.CompositeClassLoader.<clinit>(CompositeClassLoader.java:19)
    at com.atlassian.templaterenderer.velocity.one.six.internal.VelocityTemplateRendererImpl.<init>(VelocityTemplateRendererImpl.java:58)

The problem is in log4j version: the one which is bundled with Tomcat Server is too old. You need to upgrade it:
# cd /usr/share/tomcat6/lib
# ls -l log4j*
lrwxrwxrwx 1 root root   24 Oct  7  2009 log4j-1.2.jar -> ../../java/log4j-1.2.jar
# rm log4j-1.2.jar
# ln -s /usr/local/jira/lib/log4j-1.2.15.jar

The problem is also discussed here (log dump was found here).

software/jira.txt · Last modified: 2011/11/27 13:35 by dmitry
 
 
Recent changes RSS feed Driven by DokuWiki