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


PropertyLegal valuesDefault valuesDescriptionVersion
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 hoursBlame 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

250Number of file revisions for which blame is stored. Set to 0 to disable caching.4.6
fisheye.ldap.sync.page.sizeinteger1000

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.changestrue/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.limitnumber of file revisions allowed in a review800Limits 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 branches250Used 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

10000This 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 milliseconds3600000This 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.ancestrytrue/falsefalseIf 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.branchspecstrue/falsefalseIf 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.repositoriesnumber of repositories100Used 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)

bytes8192The 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

bytes8192The maximum allowed size in bytes for a HTTP response header.4.7.0
org.eclipse.jetty.server.Request.maxFormContentSizebytes3000000

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

10Maximum number of users that will be added from a group when adding a group to a review3.5.2+
fisheye.lucene.boolean.query.max.clause.count
integer10000Maximum 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.

PropertyLegal valuesDefault ValueDescriptionFisheye version
fisheye.pipeline.batch.cslimit

1

upwards

1000The 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

1000

upwards

100000The 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.fairnesstrue, falsetrue

If true, repositories are processed in a round-robin fashion by the pipeline. This means that all repositories currently indexing will incrementally progress.

If false, the pipeline always favors newer changesets, regardless of which repository they belong to. This means that repositories with newer changesets will take priority over repositories with older changesets. This results in faster processing for newer repositories, but with the possibility of stalling indexing of repositories with older commits.

3.0.0+
fisheye.pipeline.threads4-1000The number of processor cores detected, or 4, whichever is greaterThe 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

PropertyLegal valuesDefault valueDescriptionVersion
fisheye.manifest.forceupgradetrue or falsetrueControls whether manifests are upgraded before repository indexing continues or as a background process as time permits during regular indexing3.4.0+
fisheye.manifest.maxdepth1-1003Controls how many delta manifests are written in a chain before a full manifest is written3.4.0+
fisheye.manifest.maxupgradepaths100 upwards500000The maximum number of paths that will be upgraded before a batch is committed to the Fisheye index3.4.0+
fisheye.manifest.upgradebatch10 upwards1000When 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 nameDirectory 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.

Last modified on Nov 8, 2023

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.