JVM system properties
Administrators can configure the Java Virtual Machine (JVM) system properties described on this page to control low level aspects of Fisheye and Crucible's operation. The application must be restarted on all platforms for the changes to become effective. After the application starts up you can verify the setting by using the command-line tool jinfo <pid>,
look up "
Alternatively, you can go to Administration
> Troubleshooting and support tools
and click Create support zip. This will generate you a ZIP archive which contains logs from your instance, diagnostic, and configuration information. You can find your system properties in <zip_package>/application-properties/application.xml.
Environment Variable (all platforms)
Properties can also be set by passing them with the -D
parameter to the JVM using the FISHEYE_OPTS
environment variable.
Windows Service
If you used the Fisheye or Crucible installer for Windows, you can edit JVM properties as follows.
Fisheye/Crucible 3.4.4+
Edit JVM properties using the tool included with the installer. Launch the tool by going to one of:
- Start > All Programs > Fisheye > Configure Fisheye
- Start > All Programs > Crucible > Configure Crucible
Ensure that you restart the Fisheye or Crucible service after changing the JVM properties.
Earlier versions:
Edit JVM properties using this tool:
http://www.apache.org/dist/commons/daemon/binaries/windows/commons-daemon-1.0.15-bin-windows.zip
To use it, you need to rename prunmgr.exe
from the zip file to Atlassian FishEye.exe
or Atlassian Crucible.exe
depending on which installer you used. Then JVM properties such as Xmx and XX:MaxPermSize can be edited on the Java tab.
Do not reference any environment variables in the settings (e.g. %FISHEYE_INST%). Instead, use the absolute path.
System properties that only relate to Crucible have names beginning with
crucible
.When integrating Fisheye/Crucible with Single Sign On applications, you may require an adjustment to the JVM properties, specifically the HTTP header size. This may also be useful in other circumstances where Fisheye's default HTTP header is too small (at 4096 bytes).
On this page:
General properties
Property | Legal values | Default values | Description | Version |
---|---|---|---|---|
fisheye.rememberme.cookie.age | integer | 31536000 seconds / 90 days | Controls the length of time the remember me token is valid before it times out | 4.8.9 |
fisheye.blame.calc.enable | true/false | true | Controls whether blames are calculated during indexing. Note that blame calculation during indexing is disabled if the Store Diff Info setting is disabled. See Store diff info. See Blame calculations for details. | |
fisheye.blame.scm.fallback.enable | true/false | false | Controls whether blame data is retrieved from the SCM during indexing (when blame couldn't be based on ancestors during indexing). See Blame calculations for details. | 3.10.0 |
fisheye.enable.request.blame.calculation | true/false | 3.10: false 3.9: true | Controls whether users can request blame data from the SCM when viewing the file or diff (when blame couldn't be calculated or retrieved during indexing). See Blame calculations for details. | 3.9.2 |
fisheye.blame.scm.fallback.cache.timeout.in.seconds | integer | 24 hours | Blame scm fallback might be slow, so Fisheye offers caching blame entries. This is an in-memory cache. The primary source for blame data is blame calculation based on ancestors and stored in Fisheye database. In case the calculation has failed or is in progress, Fisheye fallbacks to scm and stores entries in this cache. The calculation results always take precedence over cache entries. | 4.6 |
fisheye.blame.scm.fallback.cache.size | integer | 250 | Number of file revisions for which blame is stored. Set to 0 to disable caching. | 4.6 |
fisheye.ldap.sync.page.size | integer | 1000 | Controls the page size used when Fisheye requests data from LDAP user directories. The LDAP server must support LDAPv3. A value of 0 disables paging. | 3.10.0 |
crucible.detect.metadata.revision.changes | true/false | 3.0: false 2.6: true | If true, detects and disables creation of reviews from changesets which contain metadata only changes (e.g SVN property changes). Read more here. | 2.6.0+ |
crucible.review.content.size.limit | number of file revisions allowed in a review | 800 | Limits the "size" of a review to prevent extremely large reviews accidentally being created and potentially slowing the instance down. | 2.10.0+ |
fisheye.branch.recently.active.check.limit
| number of branches | 250 | Used in CommitGraph to control sorting of branches. If more than the limit, sorted alphabetically, otherwise sorted by recent activity. | 2.6.0+ |
fisheye.changeset.paths.limit | 0 upwards | 10000 | This setting is to prevent extremely large changesets (which are often the result of an error) from slowing Fisheye/Crucible down. See Indexed paths truncated at 10000 for the messages that are logged if the value is reached. | |
fisheye.git.http-backend-timeout
| Integer milliseconds | 3600000 | This property sets the amount of time that the Fisheye server should allow the underlying Git process to execute when attempting to serve a Git push or pull request. | 2.7.3+ |
fisheye.p4.disable.ancestry | true/false | false | If true, stops Fisheye from processing P4 ancestry information. Change lists will still be assigned to branches. If you do not use stable Perforce branchspecs to manage branches, set this to true. | 2.7.5+ |
fisheye.p4.disable.branchspecs | true/false | false | If true, stops Fisheye from reading Perforce branch specs. All change lists will appear on the 'head' branch. If you do not use stable Perforce branchspecs to manage branches, set this to true. | 2.7.13+ |
fisheye.search.max.repositories | number of repositories | 100 | Used by Fisheye to limit the search to the top n repositories (by alphabetical order) when a cross-repository search is performed. | 2.7.12+ |
jetty.http.requestHeaderSize (prior to 4.7.0 it was jetty.http.headerbuffersize) | bytes | 8192 | The maximum allowed size in bytes for a HTTP request header. Some authentication systems, such as Single Sign On applications, require larger header values. | 4.7.0 |
jetty.http.responseHeaderSize | bytes | 8192 | The maximum allowed size in bytes for a HTTP response header. | 4.7.0 |
org.eclipse.jetty.server.Request.maxFormContentSize | bytes | 3000000 | Max form content size – increase this value if your Git push fails with HTTP error 411 (see this KB article: Git PUSH results in RPC failed, result=22, HTTP code = 413) | 3.0.0+ |
crucible.users.per.group.in.review | 10 | Maximum number of users that will be added from a group when adding a group to a review | 3.5.2+ | |
fisheye.lucene.boolean.query.max.clause.count | integer | 10000 | Maximum number of clauses in a Lucene boolean query. This limit is used while rendering large lists (e.g. projects, users, reviews dashboard). You may need to increase the limit if you have a problem as in CRUC-7794. | 4.0.0+ |
Fisheye pipeline indexing
See Pipelined indexing.
Property | Legal values | Default Value | Description | Fisheye version |
---|---|---|---|---|
fisheye.pipeline.batch.cslimit |
upwards | 1000 | The pipeline processes changesets in batches. A bigger batch size reduces the number of calls to the underlying SCM, but also increases heap consumption and reduces the concurrency of the pipeline. Smaller batch sizes increase the concurrency of the pipeline, reduce heap consumption, but result in more calls to the underlying SCM. | 3.0.0+ |
fisheye.pipeline.batch.pathlimit |
upwards | 100000 | The pipeline processes changesets in batches. This property sets the maximum allowed number of unique paths in a batch (summed across changesets). A higher value will reduce the number of calls to the underlying SCM, at the expense of more heap consumption. | 3.0.0+ |
fisheye.pipeline.fairness | true, false | true | If If | 3.0.0+ |
fisheye.pipeline.threads | 4-1000 | The number of processor cores detected, or 4, whichever is greater | The number of threads available to work on indexing tasks. A higher value allows for potentially greater concurrency in indexing activities, but will increase the load on the server and the load on your SCM. | 3.0.0+ |
Git manifest
Property | Legal values | Default value | Description | Version |
---|---|---|---|---|
fisheye.manifest.forceupgrade | true or false | true | Controls whether manifests are upgraded before repository indexing continues or as a background process as time permits during regular indexing | 3.4.0+ |
fisheye.manifest.maxdepth | 1-100 | 3 | Controls how many delta manifests are written in a chain before a full manifest is written | 3.4.0+ |
fisheye.manifest.maxupgradepaths | 100 upwards | 500000 | The maximum number of paths that will be upgraded before a batch is committed to the Fisheye index | 3.4.0+ |
fisheye.manifest.upgradebatch | 10 upwards | 1000 | When performing background upgrading this is the minimum number of changesets that will be upgraded in each indexing poll period. | 3.4.0+ |
User directory properties
Directory properties are used when configuring the HTTP client accessing the directory.
Directory properties defined below can be overridden by system properties or environment variables.
When environment property should be used the following system property should be set:
atlassian.use.environment.variables = true
System property name | Directory property |
---|---|
crowd.property.application.name | applicationName |
crowd.property.application.password | applicationPassword |
crowd.property.application.login.url | applicationAuthenticationURL |
crowd.property.cookie.tokenkey | cookieTokenKey |
crowd.property.session.tokenkey | sessionTokenKey |
crowd.property.session.lastvalidation | sessionLastValidation |
crowd.property.session.validationinterval | sessionValidationInterval |
crowd.property.http.proxy.host | httpProxyHost |
crowd.property.http.proxy.port | httpProxyPort |
crowd.property.http.proxy.username | httpProxyUsername |
crowd.property.http.proxy.password | httpProxyPassword |
crowd.property.http.max.connections | httpMaxConnections |
crowd.property.http.timeout | httpTimeout |
crowd.property.socket.timeout | socketTimeout |
crowd.property.cookie.domain | ssoCookieDomainName |
Mail client
You can tune the mail client in Fisheye with system properties.
The available system properties are listed and described at https://javamail.java.net/nonav/docs/api/com/sun/mail/smtp/package-summary.html.
For example, mail.smtp.quitwait=false
can be used in cases where the Fisheye mail server doesn't respond to a QUIT message, and causes the mail client to hang.