Instalar Atlassian JIRA con Oracle 10g
De Wikillano
Contenido |
Nos bajamos la última versión de JIRA:
download Jira -> [1]
Yo me bajo la versión WAR/EAR, la diferencia entre esta y la standalone es que no lleva el tomcat ya instalado. La standalone es un paquete que lo lleva todo.
- La descomprimimos donde queramos en mi caso:
/opt/atlassian-jira-enterprise-3.13.2/
- Modificamos el siguiente fichero entityengine.xml (datasource)
/opt/atlassian-jira-enterprise-3.13.2/webapp/WEB-INF/classes/entityengine.xml
<datasource name="defaultDS" field-type-name="oracle10g"
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"
check-indices-on-start="true">
<jndi-jdbc jndi-server-name="default" jndi-name="java:comp/env/jdbc/JiraDS"/>
importante añadir oracle10g
eliminar la linea:
schema-name="PUBLIC"
Construir Jira
Esta parte no se si es realmente necesaria, ya que no voy a utilizar el fichero WAR que se crear cuando compilamos JIRA.
de todas maneras al construirlo nos genera el fichero jira.xml que luego pondremos en tomcat.
ejecutar en la raiz del software de jira
./build.sh
Esto nos dejará en $JIRA_HOME/dist-tomcat el WAR, aunque yo no lo voy a utilizar, ya que no quiero desplegar la aplicación cada vez. yo utilizare el directorio webapp que tenemos en /opt/atlassian-jira-enterprise-3.13.2/
Actualizar librerias de Tomcat
Necesitamos algunas librerias para que jira funcione, para ello tenemos que bajarnos este paquete [2] y descomprimirlo en common/lib de tomcat
Crear la tablespace en Oracle
La versión de oracle que estoy utilizando es la 12.2.0.4 con el driver de la misma versión.
El driver lo debemos colocar en /common/lib de tomcat el nombre del driver es ojdbc14.jar para todas las versiones se llama igual.
para crear el tablespace he ejecutado el siguiente script en Oracle
-- creacio del tablespace CREATE TABLESPACE jira_ts DATAFILE '/data/oradata/ravel/jira_ts_01.dbf' SIZE 200M AUTOEXTEND OFF DEFAULT STORAGE ( INITIAL 100k NEXT 100k PCTINCREASE 0); -- creacio de l'usuari CREATE USER jirauser IDENTIFIED BY "password" DEFAULT TABLESPACE jira_ts TEMPORARY TABLESPACE temp PROFILE DEFAULT; -- premisos basics de l'usuari GRANT CONNECT TO jirauser; GRANT RESOURCE TO jirauser; GRANT CREATE VIEW TO jirauser; GRANT CREATE JOB TO jirauser; -- nomes pot crear objectes en el tablespace jira_ts REVOKE UNLIMITED TABLESPACE FROM jirauser; ALTER USER jirauser QUOTA UNLIMITED ON jira_ts; -- permisos utils per desenvolupament GRANT SELECT_CATALOG_ROLE TO jirauser; GRANT DEBUG CONNECT SESSION TO jirauser; GRANT DEBUG ANY PROCEDURE TO jirauser;
Configurar contexto Jira en tomcat
copiamos el fichero jira.xml que lo encontramos en /opt/atlassian-jira-enterprise-3.13.2/dist-tomcat/tomcat-5/jira.xml a $JIRA_HOME/dist-tomcat/tomcat-5/jira.xml
si no encontramos el directorio dist-tomcat es que no contruimos jira, de todas maneras aquí dejo el contenido de mi jira.xml.
<Context path="/jira" docBase="/opt/atlassian-jira-enterprise-3.13.2/webapp" debug="0">
<Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/JiraDS">
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@172.24.49.58:1521:RAVEL</value>
</parameter>
<parameter>
<name>username</name>
<value>jirauser</value>
</parameter>
<parameter>
<name>password</name>
<value>jirauserpass</value>
</parameter>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>connectionProperties</name>
<value>SetBigStringTryClob=true</value>
</parameter>
</ResourceParams>
<Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"/>
<ResourceParams name="UserTransaction">
<parameter>
<name>factory</name>
<value>org.objectweb.jotm.UserTransactionFactory</value>
</parameter>
<parameter>
<name>jotm.timeout</name>
<value>60</value>
</parameter>
</ResourceParams>
</Context>
en negrita:
- docBase
- Aquí debemos poner la ruta hacia la aplicación, si hubieramos utilizado el despliege por WAR pondriamos la ruta hacia el WAR
- oracle.jdbc.driver.OracleDriver
- tipo de driver que utilizamos concretamente para Oracle
- jdbc:oracle:thin:@172.24.49.58:1521:RAVEL
- Url de conexión a la base de datos RAVEL es la INSTANCIA (ORACLE_SID)
- SetBigStringTryClob
- which is needed to store unlimited-text fields in Oracle. Without this, Oracle will only store strings up to 32K bytes in size.
|
Si copiamos el jira.xml creado a partir del build.sh deberemos tener en cuenta: If you are not using hsqldb, make sure you comment out the minEvictableIdleTimeMillis and timeBetweenEvictionRunsMillis params, or JIRA will run slower than normal. | |
Arrancar Tomcat
Ya podemos arrancar tomcat5
Deberemos revisar los logs de tomcat para ver los posibles errores de arranque de jira, los logs estan en:
/usr/share/tomcat5/logs/catalina.out
La url de acceso al Jira es
http://localhost:8080/jira
Problemas encontrados
Al arrancar jira me encuentro entre los logs que no puede encontrar el driver de oracle para conectarse a la base de datos.
Cannot create JDBC driver of class for connect URL 'null'
Resulta que en las versiones tomcat 5.0 el fichero donde declaramos el contexto, en este caso jira.xml debe de estar estructurado con las etiquetas <parameter></parameter>, en versiones más modernas se declara de la siguiente manera:
<Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
username="[enter db username]"
password="[enter db password]"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:jiradb"
connectionProperties="SetBigStringTryClob=true"
maxActive="20"/>
En cambio para tomcat 5.0
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@172.24.49.58:1521:RAVEL</value>
</parameter>
<parameter>
<name>username</name>
<value>jirauser</value>
</parameter>
<parameter>
<name>password</name>
<value>jirauserpass</value>
</parameter>
... etc
al cambiar el fichero la conexión con oracle funcionó sin problemas.

