The product can communicate with Jira database using one of the following strategy:
Jira database connection as configured in dbconfig.xml
This is a default configuration, no action required. In this mode, database configuration is loaded from dbconfig.xml file located in Jira home folder.
In this scenario, Jira database connection pool is shared with the product. BigPicture is optimized for database reads (utilizing caching quite aggresively) and does execute very few queries after its warm-up process. As a result sharing the same database connection pool with Jira has very little impact on Jira itself (if any).
- default configuration
- no configuration needed
- works very well for a vast majority of deployments
- user can easily configure Jira database connection pool to handle an extra load from the product
- database connection pool is shared with core Jira database connection pool, it may decrease performance in a highly concurrent environment with a heavy load
- lack of flexibility in configuration Jira
Custom database connection pool
The product may work with its own database connection pool using Apache DBCP2 library. In this scenario a dedicated database pool is created, hence Jira database connection pools is completely unaffected.
To configure your own connection pool for the product follow the steps below:
- Locate Jira Home directory. You should have a dbconfig.xml file in that location
- Create a new file called dbconfig-[productName].xml file. For BigPicture the file name is dbconfig-bigpicture.xml.
- Add the following content to the file
Here is a list of attributes required:
|driverClassName||JDBC database driver class|
|url||URL as defined by JDBC driver|
|password||Database user password|
|initialSize||Connection pool initial size|
|minIdle||A number of a minimum idle connections hold in a connection pool|
|maxIdle||A number of a maximum idle connections hold in a connection pool|
|maxTotal||Maximum connection pool size|
If you decide to configure a custom database connection pool with a different user, please remember to GRANT ALL privilieges to the user. If you fail to do so you may not be able to use the product properly after the upcoming upgrade.
Please find the appropriate DDL command for Postgres database:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO <db user>; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO <db user>; GRANT ALL PRIVILEGES ON DATABASE <db name> TO <db user>;
- all database requests executed by the product can be easily tracked by a database engine (different connection properties, different user)