JpaMetaService type “database
" is deprecated but still supported. For new projects, "databasev2
" is recommended, switching from the old version to v2 requires a migration using a custom sql script.
Configurationsparameter in repository.cfg
<repoName>.metaservice.type=databasev2 <repoName>.metaservice.databasev2.driver= <repoName>.metaservice.databasev2.url= <repoName>.metaservice.databasev2.user= <repoName>.metaservice.databasev2.password= #<repoName>.metaservice.databasev2.read-connections.max= #default: 32, not after 2.7.0 #<repoName>.metaservice.databasev2.read-connections.min= #default: 32, not after 2.7.0 #<repoName>.metaservice.databasev2.read-connections.shared= #default: false, not after 2.7.0 #<repoName>.metaservice.databasev2.write-connections.max= #default: 32, not after 2.7.0 #<repoName>.metaservice.databasev2.write-connections.min= #default: 32, not after 2.7.0 #<repoName>.metaservice.databasev2.cache-statements= #default: false, not after 2.7.0 #<repoName>.metaservice.databasev2.cache-statements.size= #default: 50, not after 2.7.0 #<repoName>.metaservice.databasev2.minimumIdle= #default: 10 minimumPoolSize #<repoName>.metaservice.databasev2.maximumPoolSize= #default: 10 #<repoName>.metaservice.databasev2.connectionTimeout= #default: 30000 time after when a request for connection lease will time out #<repoName>.metaservice.databasev2.idleTimeout= #default: 600000 time after when idle connections will be closed #<repoName>.metaservice.databasev2.keepaliveTime= #default: 0 #<repoName>.metaservice.databasev2.maxLifetime= #default: 1800000 #<repoName>.metaservice.databasev2.scripts= #default: classpath:sql/metav2/migration/h2|sqlserver|oracle, dependening on database provider , 3.0.0+ #<repoName>.metaservice.databasev2.transactionIsolation= #default: TRANSACTION_READ_COMMITTED, 3.4.3+
As of version 2.7.0 we switched from EclipseLink to Hibernate, therefor some parameters have changed.
As of version 3.4.0 the connection pool handling was improved. It allows using a smaller number of connections, i.e. changing the parameter minimumIdle to 2 should lower the utilization of the database without significant impact on overall performance. (Local tests with 120 parallel threads and min and max set to 1 worked without error at a duration for a write with 200ms)
H2
<repoName>.metaservice.databasev2.driver=org.h2.Driver <repoName>.metaservice.databasev2.url=jdbc:h2:C:/h2db.db;FILE_LOCK=FS;TRACE_LEVEL_SYSTEM_OUT=0
Driver is included.
Oracle
<repoName>.metaservice.databasev2.driver=oracle.jdbc.OracleDriver <repoName>.metaservice.databasev2.url=jdbc:oracle:thin:@localhost:49161:xe
Driver is not in the delivery (ab 2.3.0), download with:
https://www.oracle.com/de/database/technologies/appdev/jdbc-downloads.html
MSSQL
Optimal performance can only be reached when the connection string contains sendStringParametersAsUnicode=false
. Is this parameter missing the created indexes cannot be used and queries will be significant slower!
<repoName>.metaservice.databasev2.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver <repoName>.metaservice.databasev2.url=jdbc:sqlserver://localhost:1433;databaseName=CONTENTSERVER;sendStringParametersAsUnicode=false <repoName>.metaservice.databasev2.transactionIsolation=TRANSACTION_READ_UNCOMMITTED
Depending on your configuration and version of MS SQL Server you need additional properties in the connection string:
encrypt=true;
trustServerCertificate=true;
<repoName>.metaservice.databasev2.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver <repoName>.metaservice.databasev2.url=jdbc:sqlserver://localhost:1433;databaseName=CONTENTSERVER;encrypt=true;trustServerCertificate=true;sendStringParametersAsUnicode=false
Driver is included from Version 2.3.0, for older Version driver can be found here:
https://docs.microsoft.com/de-de/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver16
Objectstorage in databasesystem (Version 1):
Overy object produces this number of lines, space requirement depends on database system, configuration and content:
1 line in ITEMS
5 lines in ITEMFIELDS
Objectstorage in databasesystem (Version 2):
Overy object produces this number of lines, space requirement depends on database system, configuration and content:
1 line in ITEMS
3 lines in ITEMFIELDS