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
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.
If you used the Fisheye or Crucible installer for Windows, you can edit JVM properties as follows.
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.
Edit JVM properties using this tool:
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
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:
|Property||Legal values||Default values||Description||Version|
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.
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.
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.
|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.
|250||Number of file revisions for which blame is stored. Set to 0 to disable caching.||4.6|
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.
|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+|
|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+|
|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+|
|number of paths||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.|
|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+|
|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+|
|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+|
|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+|
(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|
|bytes||8192||The maximum allowed size in bytes for a HTTP response header.||4.7.0|
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)
|10||Maximum number of users that will be added from a group when adding a group to a review||3.5.2+|
|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|
|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+|
|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+|
|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+|
|Property||Legal values||Default value||Description||Version|
|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+|
|1-100||3||Controls how many delta manifests are written in a chain before a full manifest is written||3.4.0+|
|100 upwards||500000||The maximum number of paths that will be upgraded before a batch is committed to the Fisheye index||3.4.0+|
|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|
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.
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.