Individual JVM for Access Service
Configure Access service on a dedicated JVM (Artifactory 7.90+) with separate memory allocation via access.extraJavaOpts.
Starting from Artifactory version 7.90 Self-Hosted, the Access service runs on a dedicated Java Virtual Machine (JVM) with a dedicated Tomcat server, independent of the main Artifactory JVM. This architectural change improves resource management and strengthens the infrastructure.
In Helm installations, the Access service is moved from the Artifactory container to run as a separate container within the same pod.
Resource Allocation
The dedicated JVM for the Access service includes updated default JVM parameters for memory allocation. Default settings are as follows:
-
For Helm Installations:
InitialRAMPercentageis set to 20%.MaxRAMPercentageis set to 70% of the value set forresource.limits.memoryin the Access container. If no resource limits are defined for the container, the JVM will use the pod’s host memory metrics for RAMPercentage calculations. -
For Native Installation types (Archive, RPM, Debian, Docker):
MaxRAMPercentageis set to 25%.
Previous JVM parameters, including memory adjustments (Xmx and Xms) configured as part of shared.extraJavaOpts in the Artifactory System YAML, no longer apply to the Access service.
To set Java parameters for the Access JVM, use the access.extraJavaOpts configuration in the Artifactory System YAML. The values in the example below are illustrative — adjust them based on the size and usage of your Artifactory instance:
access:
extraJavaOpts: "-XX:InitialRAMPercentage=10 -XX:MaxRAMPercentage=25"JVM Arguments
-XX:InitialRAMPercentage: Sets the initial heap size as a percentage of total memory. For example, setting25on a 1 GB host gives an initial heap of 250 MB.-XX:MaxRAMPercentage: Sets the maximum heap size as a percentage of total memory. For example, setting30on a 1 GB host gives a max heap of 300 MB.
Important
Before you upgrade, if the JFrog Platform is running on a Kubernetes (including OpenShift) cluster that requires
requestorlimitresources for every container, add aresourcesdefinition to the new container. Sizing templates are available in the Helm chart.
Database Connections
For PostgreSQL, Oracle, MySql, and MariaDB, the Access Tomcat service continues to use the same database connection pool for databases that support multiple connections.
For Derby, the Access Tomcat service requires an additional database because Derby supports only a single connection driver. An additional Derby database is created at $JFROG_HOME/artifactory/var/data/access/derby. For existing installations, the startup script copies Derby data from Artifactory to Access. Copy time varies based on data volume.
Important
Before you upgrade, verify that enough disk space is available for an additional copy of your database, then add the new database to your backup.
Database Drivers
To use a database other than PostgreSQL or Derby, place the corresponding driver in the bootstrap directory at $JFROG_HOME/artifactory/var/bootstrap/artifactory/tomcat/lib. The Access Tomcat service loads custom drivers from this directory.
If you place database drivers directly in the Artifactory application directory ($JFROG_HOME/artifactory/app/artifactory/tomcat/lib), the Access application fails to load. Move the drivers into the bootstrap directory to avoid failures.
Logging
The Tomcat logs are located at $JFROG_HOME/artifactory/var/log/tomcat. To avoid conflicts between logs generated by Artifactory and Access Tomcat services, the Access Tomcat log is configured to include access as part of the file name.
The following Tomcat logs are generated:
tomcat-access-localhost-<date>.logtomcat-access-catalina-<date>.log
Rest API Endpoints
Because the Access service now runs on a dedicated JVM, the previously used Access REST API endpoint https:<JFROG_PLATFORM_URL>/artifactory/api/access is no longer supported. Use the new endpoint https://<JFROG_PLATFORM_URL>/access.
If your Access Federation URL is currently configured with https://<FROG_PLATFORM_URL>/artifactory/api/access, update it to prevent service interruptions as this is a breaking change.
Updated 24 days ago
