Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-64974

Add the ability to customize the ehcache object port in Jira Data Center

    XMLWordPrintable

Details

    • We collect Jira feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

    Description

      NOTE: This suggestion is for JIRA Server. Using JIRA Cloud? See the corresponding suggestion.

      Problem Definition

      JIRA Datacenter (JDC) uses Ehcache as caching technology, cache server which exposes available cache operations remotely through RMI. Ehcache requires two port for it's network operations, RMICacheManagerPeerListener paramets

      • hostName - may be null, in which case the hostName will be looked up.
      • port - a port in the range 1025 - 65536
      • remoteObjectPort - the port number on which the remote objects bound in the registry receive calls. This defaults to a free port if not specified.
      • cacheManager - the CacheManager this listener belongs to
      • socketTimeoutMillis - TCP/IP Socket timeout when waiting on response

      see: http://www.ehcache.org/apidocs/2.6.9/net/sf/ehcache/distribution/RMICacheManagerPeerListener.html

      Currently in JDC you can specify only port (default = 40001, setting: ehcache.listener.port), see Cluster.properties file parameters
      Another remoteObjectPort is dynamically allocated and TCP ephemeral port is selected. So you need to open wide range of port at firewall.

      Without opening the port, the following error is displayed as other nodes start up :

      2017-03-22 11:53:38,023 ehcache-replicator-0 WARN      [c.a.j.cluster.distribution.JiraCacheManagerPeerProvider] Looking up rmiUrl //ip-x-x-x-x:40001/com.atlassian.jira.project.util.CachingProjectKeyStore.cache threw a connection exception. This could mean that a node has gone offline  or it may indicate network connectivity difficulties. Details: Connection refused to host: ip-x-x-x-x; nested exception is:
              java.net.ConnectException: Connection timed out
      

      Suggested Solution

      Add option to specify remoteObjectPort (RMI port)

      See related links:

      Workaround

      Open all Ephemeral_port range in firewall and allow connection from all JDC nodes.

      Feature introduced in JIRA 7.3

      New variable: ehcache.object.port

      cluster.properties

      ...
      ehcache.object.port = 40011

      Note: If not defined an ephemeral port is used, see JRASERVER-66608

      Ticket to update docs: JRA-64976

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ayakovlev@atlassian.com Andriy Yakovlev [Atlassian]
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: