ARTIFACTORY: How to Resolve "Another instance of Derby may have already booted the database" Error in Access Service for Derby Users

ARTIFACTORY: How to Resolve "Another instance of Derby may have already booted the database" Error in Access Service for Derby Users

AuthorFullName__c
Ino Choi
articleNumber
000006205
ft:sourceType
Salesforce
FirstPublishedDate
2024-10-21T09:47:17Z
lastModifiedDate
2024-10-21
VersionNumber
4
Introduction

From Artifactory 7.90.x onwards, Access will have a dedicated JVM. This change affects users using Derby as their database and has added specific Derby database configuration lines under the access section in system.yaml.
For these Derby users, this can cause an error in the Access service, preventing Artifactory from starting up.
The error message typically reads:


SQL State  : XSDB6
Error Code : 45000
Message    : Another instance of Derby may have already booted the database /var/opt/jfrog/artifactory/data/artifactory/derby.


This issue occurs because Access now has a separate JVM, and the database path in the system.yaml file is pointing to Artifactory's Derby database instead of Access's dedicated database.


Resolution


To resolve this issue, you have two options:
1. Change the database path in system.yaml:
Update the “url” line under the “access” section in system.yaml to point to the correct Access database path:
access:
    database:
        type: derby
        driver: org.apache.derby.jdbc.EmbeddedDriver
        url: jdbc:derby:/opt/jfrog/artifactory/var/data/access/derby;create=true


2. Remove the custom database configuration:
Alternatively, you can remove these lines entirely from system.yaml. This will allow Access to use its default settings.
access:

    database:

        type: derby

        driver: org.apache.derby.jdbc.EmbeddedDriver

        url: jdbc:derby:/opt/jfrog/artifactory/var/data/access/derby;create=true



After making either of these changes, restart Artifactory for the changes to take effect.


Conclusion

This issue affects Artifactory versions 7.90.x and later due to the introduction of a dedicated JVM for Access. By either updating the database path or removing the custom configuration in system.yaml, you can resolve the "Another instance of Derby may have already booted the database" error and successfully start Artifactory.
For more information on Access's dedicated JVM, refer to the JFrog documentation. Always remember to backup your system.yaml file before making any changes.