Documentation for JIRA 4.0. Documentation for other versions of JIRA is available too. 
![]()
When using JIRA with Oracle, the Oracle 10g JDBC driver needs to have the SetBigStringTryClob property set to true to store text of unlimited size in the database. If this property is not set, you will have problems modifying JIRA workflows and storing large (over 32k) text strings.
The SetBigStringTryClob property needs to be set in the application server, where the database connection is defined (the 'datasource' definition). The definition depends on the application server that you are using. Please refer to one of the sections below that is applicable to your application server to determine what to add to the datasource definition.
The same thing applies to I-Net's JDBC driver, except the property is called streamstolob.
Add the section shown in bold to where JIRA is configured (usually conf/server.xml):
<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:@<database host machine>:<port>:<SID></value>
</parameter>
<parameter>
<name>username</name>
<value>...</value>
</parameter>
<parameter>
<name>password</name>
<value>...</value>
</parameter>
<parameter>
<name>connectionProperties</name>
<value>SetBigStringTryClob=true</value>
</parameter>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
</ResourceParams>
Resolving Connection Closure Issues
If you experiencing problems with connections closing, you may be able to resolve them by configuring the Commons DBCP (Database Connection Pool) to detect broken connections and create replacement connections. Please read Surviving Connection Closures for instructions on how to do this.
Modify the section where JIRA is configured, usually conf/Catalina/localhost/jira.xml or conf/server.xml (in JIRA Standalone):
<Context path="/jira" docBase="path/to/atlassian-jira-3.11.war">
<Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
username="...."
password="...."
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@<database host machine>:<port>:<SID>"
connectionProperties="SetBigStringTryClob=true" />
<Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
factory="org.objectweb.jotm.UserTransactionFactory"
jotm.timeout="60"/>
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/>
</Context>
Orion and OC4J are not capable of passing arbitrary properties directly to the JDBC driver. These app servers can pass properties to the underlying Data Source if it has appropriate "setter" methods for them. Unfortunately the Data Sources that Oracle ships with its JDBC drivers do not have an appropriate "setter" method for the SetBigStringTryClob property.
To get around this problem please use the com.atlassian.oracle.OracleConnectionPoolProxyDataSource which is available from the atlassian-oracle-orion-compat jar file. To use this Data Source please follow these instructions:
atlassian-oracle-orion-compat from our repository. (For example, the atlassian-oracle-orion-compat-1.0.jar file).config/data-sources.xml file and specify the data source as follows:
<data-source class="com.atlassian.oracle.OracleConnectionPoolProxyDataSource" name="<name>" location="<location>" xa-location="<xa-location>" ejb-location="<ejb-location>" url="<url>" username="<login>" password="<password>" inactivity-timeout="30" > <property name="setBigStringTryClob" value="true" /> </data-source>
Note the small 's' in setBigStringTryClob here -- this fix will not work otherwise. Also note that this small 's' only applies to Orion/OC4J. All other app servers need a big 'S'.
OC4J 10.1.3.x no longer uses the <data-source> element, and we are not aware of another way of passing through the setBigStringTryClob property. See JRA-12564 for details.
This means that you cannot store text strings longer than 32K in Oracle for OC4J 10.1.3.x.
Consult the relevant app server documentation to find how to add the property.