Database Management
By default, WebEngine comes with a local Derby database included in the image and persisted in a PersistentVolume. You can use the Derby database to test the basic functionality of HCL Digital Experience (DX) Compose in a Kubernetes deployment. This works for single-Pod deployments. However, for production environments, it is required to use an external database for better performance and scalability. This document outlines the steps to connect to an external database and transfer the content of the Derby database to the external database in HCL DX Compose deployment.
Note
For the currently supported external databases, refer to Limitations.
Setup external database (schema / user creation)
This section provides the custom scripts for setting up the external database schemas (or users).
Oracle database prerequisites
Before running the Oracle setup script, ensure your Oracle database meets the following requirements:
-
Use a supported database version (Oracle 19c or Oracle 21c).
-
Create the database with Unicode character sets:
- Character Set:
AL32UTF8 - National Character Set:
AL16UTF16
- Character Set:
-
Use the
ojdbc11.jardriver and set theoracle.DbLibraryproperty in your Helmvalues.yamlto reference the driver location:dbTypeProperties: oracle.DbLibrary: "/opt/openliberty/wlp/usr/svrcfg/templates/jars/oracle/ojdbc11.jar:/opt/openliberty/wlp/usr/svrcfg/templates/jars/oracle/xdb6-11.2.0.4.jar"See the Oracle JDBC Downloads page for the latest driver for your Oracle version.
-
Refer to the baseline recommendations for Oracle databases used with HCL DX Compose, particularly for workloads involving the Java Content Repository (JCR) domain. Adjust the values based on workload characteristics, infrastructure capacity, and usage patterns.
Parameter Recommended Value Purpose db_block_size8192 Standard block size for optimal I/O performance db_cache_size1 GB Improves buffer cache efficiency for frequent reads open_cursors1500 cursors Supports a high number of concurrent JCR queries pga_aggregate_target200 MB Allocates memory for session-level operations processes300 processes Supports concurrent database connections shared_pool_size200 MB Optimizes parsing and execution of SQL statements Note
The recommended values are suitable for small to medium environments. For large-scale deployments, high-concurrency environments, or bulk content imports (such as tens of thousands of WCM items), the baseline values for
open_cursors,processes,shared_pool_size, andpga_aggregate_targetmight be insufficient. Perform workload-based tuning and increase these values based on your content volume and concurrent activity. See the Oracle documentation for sizing guidance. -
Configure the following parameters based on your deployment. In Oracle 19c, 21c, and later, default values are typically sufficient for most HCL DX Compose deployments.
-
db_files(maximum number of database files): Consider increasing this parameter if your environment uses a large number of tablespaces or datafiles (for example, due to extensive JCR usage or custom partitioning). -
log_buffer(redo log buffer size): Consider tuning this parameter if you observe high redo log generation, high commit rates, or write-intensive workloads. -
open_cursors(for JCR-heavy deployments): If your deployment uses the JCR domain extensively, consider increasing this parameter beyond1500. The appropriate value depends on the number of JCR tables in your schema and the level of concurrent activity.
-
Custom setup scripts
| Database | Custom setup script |
|---|---|
| DB2 | DB2 custom setup script |
| Oracle | Oracle custom setup script |
| SQL Server | SQL Server custom setup script |
Oracle user and property mapping
The sample Oracle setup script (SetupOracleDatabasesManually.sql) creates the following:
- Schema users: Oracle schemas for DX Compose database domains. Examples include
release,community,customization,jcr,feedback, andlikeminds. These schemas map to the<domain>.DbSchemaproperty. - DX application users: The script creates a single user, such as
<replace-with-dbuser>, and grants it all required roles for configuration, runtime, and database administrator (DBA) operations. Helm properties support separate users for each role. Examples include<replace-with-dbuser>,<replace-with-runtime-user>,and<replace-with-dba-user>. Using separate users is recommended for least-privilege access, but you can use the same user for all roles if your security policy allows.
Note
- By default, the sample script creates a single application user and grants it all required roles. For environments that require separation of duties and least-privilege access, manually create separate application users. Then, specify these users for
<domain>.DbUser,<domain>.DbRuntimeUser, and<domain>.DBA.DbUser>in your Helm values.yaml file and database configuration. - The Oracle schema users (domain names) are always separate and own the actual tables, but they are not used as connection credentials.
The following table shows how Oracle users map to Helm properties. You may use the same user for all roles, or specify different users for each:
| Helm property | Oracle user placeholder | Purpose |
|---|---|---|
<domain>.DbUser |
<replace-with-dbuser> |
Configuration user — used during database transfer and schema setup. Granted WP_*_CONFIG_USERS role. |
<domain>.DbRuntimeUser |
<replace-with-runtime-user> |
Runtime user — used during day-to-day portal operations. Granted WP_*_RUNTIME_USERS role. |
<domain>.DBA.DbUser |
<replace-with-dba-user> |
Privileged DBA user — used for tablespace and advanced DDL operations. |
<domain>.DbSchema |
release, community, customization, jcr, feedback, likeminds |
The Oracle schema user that owns the tables for each domain. |
Note
If you are using the Amazon RDS for Oracle, you need to create a custom option group, add the JVM option, and then attach that group to your Amazon RDS instance to support Extended Architecture (XA) transactions for WebEngine. Attaching this custom option group to your instance replaces the default option group. For more information, refer to Configure Custom Option Groups for Amazon RDS.
Configuring an external database
The external database is configured in the Helm custom values.yaml file. You can add the values directly to the custom values file or you can reference them from secrets to hide the plain text entries that can contain credentials.
There are two sets of values used to configure the external database:
configuration.webEngine.dbDomainPropertiesconfiguration.webEngine.dbTypeProperties
You can use the following secrets instead of the provided values:
configuration.webEngine.customDbDomainPropertiesSecretconfiguration.webEngine.customDbTypePropertiesSecret
Note
You must create the customDbDomainPropertiesSecret and customDbTypePropertiesSecret secrets before the deployment of the Helm chart. If the secrets are used, all property values set in the custom values.yaml file will be ignored. Therefore, all properties must be set in the secrets, not only the overridden ones.
External database configuration in the custom values.yaml file
Sample values.yaml file for DB2
Note
-
With DX Compose 9.5 CF226 the location of the DB2 library
.jarfile in the container is/opt/openliberty/wlp/usr/svrcfg/templates/jars/db2. The value fordb2.DbLibraryis now/opt/openliberty/wlp/usr/svrcfg/templates/jars/db2/db2jcc4.jar. Thedb2jcc_license_cu.jaris no longer provided or required. -
The
returnAlias=0parameter is mandatory.
configuration:
webEngine:
dbDomainProperties:
InitializeFeedbackDB: "true"
feedback.DbType: "db2"
feedback.DbName: "WPFDBK"
feedback.DbSchema: "feedback"
feedback.DataSourceName: "wpfdbkdbDS"
feedback.DbUrl: "jdbc:db2://<replace-db-host>:<replace-db-port>/WPFDBK:returnAlias=0;"
feedback.DbUser: "<replace-db-user>"
feedback.DbPassword: "<replace-db-password>"
feedback.DbRuntimeUser: "<replace-db-user>"
feedback.DbRuntimePassword: "<replace-db-password>"
feedback.DBA.DbUser: "<replace-db-user>"
feedback.DBA.DbPassword: "<replace-db-password>"
feedback.DbConfigRoleName: "WP_PZN_CONFIG_USERS"
feedback.DbRuntimeRoleName: "WP_PZN_RUNTIME_USERS"
feedback.XDbName: "WPFDBK"
feedback.DbNode: "pznNode"
likeminds.DbType: "db2"
likeminds.DbName: "WPLM"
likeminds.DbSchema: "likeminds"
likeminds.DataSourceName: "wplmdbDS"
likeminds.DbUrl: "jdbc:db2://<replace-db-host>:<replace-db-port>/WPLM:returnAlias=0;"
likeminds.DbUser: "<replace-db-user>"
likeminds.DbPassword: "<replace-db-password>"
likeminds.DbRuntimeUser: "<replace-db-user>"
likeminds.DbRuntimePassword: "<replace-db-password>"
likeminds.DBA.DbUser: "<replace-db-user>"
likeminds.DBA.DbPassword: "<replace-db-password>"
likeminds.DbConfigRoleName: "WP_PZN_CONFIG_USERS"
likeminds.DbRuntimeRoleName: "WP_PZN_RUNTIME_USERS"
likeminds.XDbName: "WPLM"
likeminds.DbNode: "pznNode"
release.DbType: "db2"
release.DbName: "WPREL"
release.DbSchema: "release"
release.DataSourceName: "wpreldbDS"
release.DbUrl: "jdbc:db2://<replace-db-host>:<replace-db-port>/WPREL:returnAlias=0;"
release.DbUser: "<replace-db-user>"
release.DbPassword: "<replace-db-password>"
release.DbRuntimeUser: "<replace-db-user>"
release.DbRuntimePassword: "<replace-db-password>"
release.DBA.DbUser: "<replace-db-user>"
release.DBA.DbPassword: "<replace-db-password>"
release.DbConfigRoleName: "WP_BASE_CONFIG_USERS"
release.DbRuntimeRoleName: "WP_BASE_RUNTIME_USERS"
release.XDbName: "WPREL"
release.DbNode: "wpsNode"
community.DbType: "db2"
community.DbName: "WPCOMM"
community.DbSchema: "community"
community.DataSourceName: "wpcommdbDS"
community.DbUrl: "jdbc:db2://<replace-db-host>:<replace-db-port>/WPCOMM:returnAlias=0;"
community.DbUser: "<replace-db-user>"
community.DbPassword: "<replace-db-password>"
community.DbRuntimeUser: "<replace-db-user>"
community.DbRuntimePassword: "<replace-db-password>"
community.DBA.DbUser: "<replace-db-user>"
community.DBA.DbPassword: "<replace-db-password>"
community.DbConfigRoleName: "WP_BASE_CONFIG_USERS"
community.DbRuntimeRoleName: "WP_BASE_RUNTIME_USERS"
community.XDbName: "WPCOMM"
community.DbNode: "wpsNode"
customization.DbType: "db2"
customization.DbName: "WPCUST"
customization.DbSchema: "customization"
customization.DataSourceName: "wpcustdbDS"
customization.DbUrl: "jdbc:db2://<replace-db-host>:<replace-db-port>/WPCUST:returnAlias=0;"
customization.DbUser: "<replace-db-user>"
customization.DbPassword: "<replace-db-password>"
customization.DbRuntimeUser: "<replace-db-user>"
customization.DbRuntimePassword: "<replace-db-password>"
customization.DBA.DbUser: "<replace-db-user>"
customization.DBA.DbPassword: "<replace-db-password>"
customization.DbConfigRoleName: "WP_BASE_CONFIG_USERS"
customization.DbRuntimeRoleName: "WP_BASE_RUNTIME_USERS"
customization.XDbName: "WPCUST"
customization.DbNode: "wpsNode"
jcr.DbType: "db2"
jcr.DbName: "WPJCR"
jcr.DbSchema: "jcr"
jcr.DataSourceName: "wpjcrdbDS"
jcr.DbUrl: "jdbc:db2://<replace-db-host>:<replace-db-port>/WPJCR:returnAlias=0;"
jcr.DbUser: "<replace-db-user>"
jcr.DbPassword: "<replace-db-password>"
jcr.DbRuntimeUser: "<replace-db-user>"
jcr.DbRuntimePassword: "<replace-db-password>"
jcr.DBA.DbUser: "<replace-db-user>"
jcr.DBA.DbPassword: "<replace-db-password>"
jcr.DbConfigRoleName: "WP_JCR_CONFIG_USERS"
jcr.DbRuntimeRoleName: "WP_JCR_RUNTIME_USERS"
jcr.XDbName: "WPJCR"
jcr.DbNode: "wpsNode"
dbTypeProperties:
db2.DbDriver: "com.ibm.db2.jcc.DB2Driver"
db2.DbLibrary: "/opt/openliberty/wlp/usr/svrcfg/templates/jars/db2/db2jcc4.jar"
db2.JdbcProviderName: "wpdbJDBC_db2"
Sample values.yaml file for ORACLE
configuration:
webEngine:
dbDomainProperties:
InitializeFeedbackDB: "true"
feedback.DbType: "oracle"
feedback.DbName: "feedback"
feedback.DbSchema: "feedback"
feedback.DataSourceName: "wpfdbkdbDS"
feedback.DbUrl: "jdbc:oracle:thin:@//<replace-db-host>:<replace-db-port>/<replace-service-name>"
feedback.DbUser: "<replace-db-user>"
feedback.DbPassword: "<replace-db-password>"
feedback.DbRuntimeUser: "<replace-db-user>"
feedback.DbRuntimePassword: "<replace-db-password>"
feedback.DBA.DbUser: "<replace-db-user>"
feedback.DBA.DbPassword: "<replace-db-password>"
feedback.DbConfigRoleName: "WP_PZN_CONFIG_USERS"
feedback.DbRuntimeRoleName: "WP_PZN_RUNTIME_USERS"
feedback.XDbName: "WPFDBK"
feedback.DbNode: "pznNode"
likeminds.DbType: "oracle"
likeminds.DbName: "likeminds"
likeminds.DbSchema: "likeminds"
likeminds.DataSourceName: "wplmdbDS"
likeminds.DbUrl: "jdbc:oracle:thin:@//<replace-db-host>:<replace-db-port>/<replace-service-name>"
likeminds.DbUser: "<replace-db-user>"
likeminds.DbPassword: "<replace-db-password>"
likeminds.DbRuntimeUser: "<replace-db-user>"
likeminds.DbRuntimePassword: "<replace-db-password>"
likeminds.DBA.DbUser: "<replace-db-user>"
likeminds.DBA.DbPassword: "<replace-db-password>"
likeminds.DbConfigRoleName: "WP_PZN_CONFIG_USERS"
likeminds.DbRuntimeRoleName: "WP_PZN_RUNTIME_USERS"
likeminds.XDbName: "WPLM"
likeminds.DbNode: "pznNode"
release.DbType: "oracle"
release.DbName: "release"
release.DbSchema: "release"
release.DataSourceName: "wpreldbDS"
release.DbUrl: "jdbc:oracle:thin:@//<replace-db-host>:<replace-db-port>/<replace-service-name>"
release.DbUser: "<replace-db-user>"
release.DbPassword: "<replace-db-password>"
release.DbRuntimeUser: "<replace-db-user>"
release.DbRuntimePassword: "<replace-db-password>"
release.DBA.DbUser: "<replace-db-user>"
release.DBA.DbPassword: "<replace-db-password>"
release.DbConfigRoleName: "WP_BASE_CONFIG_USERS"
release.DbRuntimeRoleName: "WP_BASE_RUNTIME_USERS"
release.XDbName: "WPREL"
release.DbNode: "wpsNode"
community.DbType: "oracle"
community.DbName: "community"
community.DbSchema: "community"
community.DataSourceName: "wpcommdbDS"
community.DbUrl: "jdbc:oracle:thin:@//<replace-db-host>:<replace-db-port>/<replace-service-name>"
community.DbUser: "<replace-db-user>"
community.DbPassword: "<replace-db-password>"
community.DbRuntimeUser: "<replace-db-user>"
community.DbRuntimePassword: "<replace-db-password>"
community.DBA.DbUser: "<replace-db-user>"
community.DBA.DbPassword: "<replace-db-password>"
community.DbConfigRoleName: "WP_BASE_CONFIG_USERS"
community.DbRuntimeRoleName: "WP_BASE_RUNTIME_USERS"
community.XDbName: "WPCOMM"
community.DbNode: "wpsNode"
customization.DbType: "oracle"
customization.DbName: "WPCUST"
customization.DbSchema: "customization"
customization.DataSourceName: "wpcustdbDS"
customization.DbUrl: "jdbc:oracle:thin:@//<replace-db-host>:<replace-db-port>/<replace-service-name>"
customization.DbUser: "<replace-db-user>"
customization.DbPassword: "<replace-db-password>"
customization.DbRuntimeUser: "<replace-db-user>"
customization.DbRuntimePassword: "<replace-db-password>"
customization.DBA.DbUser: "<replace-db-user>"
customization.DBA.DbPassword: "<replace-db-password>"
customization.DbConfigRoleName: "WP_BASE_CONFIG_USERS"
customization.DbRuntimeRoleName: "WP_BASE_RUNTIME_USERS"
customization.XDbName: "WPCUST"
customization.DbNode: "wpsNode"
jcr.DbType: "oracle"
jcr.DbName: "jcr"
jcr.DbSchema: "jcr"
jcr.DataSourceName: "wpjcrdbDS"
jcr.DbUrl: "jdbc:oracle:thin:@//<replace-db-host>:<replace-db-port>/<replace-service-name>"
jcr.DbUser: "<replace-db-user>"
jcr.DbPassword: "<replace-db-password>"
jcr.DbRuntimeUser: "<replace-db-user>"
jcr.DbRuntimePassword: "<replace-db-password>"
jcr.DBA.DbUser: "<replace-db-user>"
jcr.DBA.DbPassword: "<replace-db-password>"
jcr.DbConfigRoleName: "WP_JCR_CONFIG_USERS"
jcr.DbRuntimeRoleName: "WP_JCR_RUNTIME_USERS"
jcr.XDbName: "WPJCR"
jcr.DbNode: "wpsNode"
dbTypeProperties:
oracle.DbDriver: "oracle.jdbc.driver.OracleDriver"
oracle.DbLibrary: "/opt/openliberty/wlp/usr/svrcfg/templates/jars/oracle/ojdbc11.jar:/opt/openliberty/wlp/usr/svrcfg/templates/jars/oracle/xdb6-11.2.0.4.jar"
oracle.JdbcProviderName: "wpdbJDBC_oracle"
Sample values.yaml file for SQL Server
configuration:
webEngine:
dbDomainProperties:
InitializeFeedbackDB: "true"
feedback.DbType: "sqlserver"
feedback.DbName: "WPFDBK"
feedback.DbSchema: "FEEDBACK"
feedback.DataSourceName: "wpfdbkdbDS"
feedback.DbUrl: "jdbc:sqlserver://DB_HOST_PLACEHOLDER:1433;databaseName=WPFDBK;encrypt=false"
feedback.DbUser: "<replace-db-user>"
feedback.DbPassword: "<replace-db-password>"
feedback.DbRuntimeUser: "<replace-db-user>"
feedback.DbRuntimePassword: "<replace-db-password>"
feedback.DBA.DbUser: "<replace-db-user>"
feedback.DBA.DbPassword: "<replace-db-password>"
feedback.DbConfigRoleName: "WP_PZN_CONFIG_USERS"
feedback.DbRuntimeRoleName: "WP_PZN_RUNTIME_USERS"
feedback.XDbName: "WPFDBK"
feedback.DbNode: "pznNode"
likeminds.DbType: "sqlserver"
likeminds.DbName: "WPLM"
likeminds.DbSchema: "LIKEMINDS"
likeminds.DataSourceName: "wplmdbDS"
likeminds.DbUrl: "jdbc:sqlserver://DB_HOST_PLACEHOLDER:1433;databaseName=WPLM;encrypt=false"
likeminds.DbUser: "<replace-db-user>"
likeminds.DbPassword: "<replace-db-password>"
likeminds.DbRuntimeUser: "<replace-db-user>"
likeminds.DbRuntimePassword: "<replace-db-password>"
likeminds.DBA.DbUser: "<replace-db-user>"
likeminds.DBA.DbPassword: "<replace-db-password>"
likeminds.DbConfigRoleName: "WP_PZN_CONFIG_USERS"
likeminds.DbRuntimeRoleName: "WP_PZN_RUNTIME_USERS"
likeminds.XDbName: "WPLM"
likeminds.DbNode: "pznNode"
release.DbType: "sqlserver"
release.DbName: "WPREL"
release.DbSchema: "RELEASE"
release.DataSourceName: "wpreldbDS"
release.DbUrl: "jdbc:sqlserver://DB_HOST_PLACEHOLDER:1433;databaseName=WPREL;encrypt=false"
release.DbUser: "<replace-db-user>"
release.DbPassword: "<replace-db-password>"
release.DbRuntimeUser: "<replace-db-user>"
release.DbRuntimePassword: "<replace-db-password>"
release.DBA.DbUser: "<replace-db-user>"
release.DBA.DbPassword: "<replace-db-password>"
release.DbConfigRoleName: "WP_BASE_CONFIG_USERS"
release.DbRuntimeRoleName: "WP_BASE_RUNTIME_USERS"
release.XDbName: "WPREL"
release.DbNode: "wpsNode"
community.DbType: "sqlserver"
community.DbName: "WPCOMM"
community.DbSchema: "COMMUNITY"
community.DataSourceName: "wpcommdbDS"
community.DbUrl: "jdbc:sqlserver://DB_HOST_PLACEHOLDER:1433;databaseName=WPCOMM;encrypt=false"
community.DbUser: "<replace-db-user>"
community.DbPassword: "<replace-db-password>"
community.DbRuntimeUser: "<replace-db-user>"
community.DbRuntimePassword: "<replace-db-password>"
community.DBA.DbUser: "<replace-db-user>"
community.DBA.DbPassword: "<replace-db-password>"
community.DbConfigRoleName: "WP_BASE_CONFIG_USERS"
community.DbRuntimeRoleName: "WP_BASE_RUNTIME_USERS"
community.XDbName: "WPCOMM"
community.DbNode: "wpsNode"
customization.DbType: "sqlserver"
customization.DbName: "WPCUST"
customization.DbSchema: "CUSTOMIZATION"
customization.DataSourceName: "wpcustdbDS"
customization.DbUrl: "jdbc:sqlserver://DB_HOST_PLACEHOLDER:1433;databaseName=WPCUST;encrypt=false"
customization.DbUser: "<replace-db-user>"
customization.DbPassword: "<replace-db-password>"
customization.DbRuntimeUser: "<replace-db-user>"
customization.DbRuntimePassword: "<replace-db-password>"
customization.DBA.DbUser: "<replace-db-user>"
customization.DBA.DbPassword: "<replace-db-password>"
customization.DbConfigRoleName: "WP_BASE_CONFIG_USERS"
customization.DbRuntimeRoleName: "WP_BASE_RUNTIME_USERS"
customization.XDbName: "WPCUST"
customization.DbNode: "wpsNode"
jcr.DbType: "sqlserver"
jcr.DbName: "WPJCR"
jcr.DbSchema: "JCR"
jcr.DataSourceName: "wpjcrdbDS"
jcr.DbUrl: "jdbc:sqlserver://DB_HOST_PLACEHOLDER:1433;databaseName=WPJCR;encrypt=false"
jcr.DbUser: "<replace-db-user>"
jcr.DbPassword: "<replace-db-password>"
jcr.DbRuntimeUser: "<replace-db-user>"
jcr.DbRuntimePassword: "<replace-db-password>"
jcr.DBA.DbUser: "<replace-db-user>"
jcr.DBA.DbPassword: "<replace-db-password>"
jcr.DbConfigRoleName: "WP_JCR_CONFIG_USERS"
jcr.DbRuntimeRoleName: "WP_JCR_RUNTIME_USERS"
jcr.XDbName: "WPJCR"
jcr.DbNode: "wpsNode"
dbTypeProperties:
sqlserver.DbDriver: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
sqlserver.DbLibrary: "/opt/openliberty/wlp/usr/svrcfg/templates/jars/sqlserver/mssql-jdbc.jar"
sqlserver.JdbcProviderName: "wpdbJDBC_sqlserver"
sqlserver.DbConnectionPoolDataSource: "com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource"
External database configuration in the custom secrets file
configuration:
webEngine:
customDbTypePropertiesSecret: custom-credentials-webengine-dbtype-secret
customDbDomainPropertiesSecret: custom-credentials-webengine-dbdomain-secret
Make sure to create the secrets before the deployment of the Helm chart. You must reference the secret names in the custom values.yaml file. To create the secrets, use the following commands:
kubectl create secret generic custom-credentials-webengine-dbtype-secret --from-file=dx_dbtype.properties
kubectl create secret generic custom-credentials-webengine-dbdomain-secret --from-file=dx_dbdomain.properties
Create a properties file using the key=value format, matching the entries in your values.yaml file. For example:
db2.DbDriver=com.ibm.db2.jcc.DB2Driver
db2.DbLibrary=/opt/openliberty/wlp/usr/svrcfg/templates/jars/db2/db2jcc4.jar
db2.JdbcProviderName=wpdbJDBC_db2
Note
Do not enclose values in quotation marks. Unlike YAML, properties files treat quotes as part of the value.
Changing the database configuration
To change the database configuration, update the custom values.yaml file or the custom secrets file with the new values and do a helm upgrade. When the database configuration is changed, a Pod restart is triggered automatically. This also applies when a new secret is created and referenced in the custom values.yaml file. If an existing secret is updated, you must restart the Pods manually after the secret is updated for the changes to take effect.
Using the external database and triggering the database transfer
The external database is used by setting the configuration.webEngine.useExternalDatabase property to true in the custom values.yaml file and doing a helm upgrade. This triggers a database transfer when enabled for the first time. The database transfer is a one-time operation that copies the content of the Derby database to the external database.
To drop and recreate all existing WebEngine tables in the external database when transferring the Derby data, set the configuration.webEngine.dropDatabaseTables property to true in the custom values.yaml file when doing the helm upgrade for the database transfer. WebEngine data that may exist in the external database will be lost. If you change the configuration.webEngine.dropDatabaseTables property to true, it is recommended to immediately reset it to false after your helm upgrade. Failure to do so could lead to unexpected loss of data.
dbDomainProperties
Refer to the following table for more information about the properties you can use:
| Property | Description |
|---|---|
| <domain>.DbType | Database management software to use for the \<domain> domain. |
| <domain>.DbName | The name of the database to be used for this portal database domain. It must comply with your database management software requirements. This property that is combined with the properties schema name and JDBC database URL must be unique for the portal database domains release, community, customization, and JCR. |
| <domain>.DbSchema | The name to be used to qualify database objects of this portal database domain. It must comply with your database management software requirements. This property that is combined with the properties database name and JDBC database URL must be unique for the portal database domains release, community, customization, and JCR. |
| <domain>.DataSourceName | The name of the data source to be used for this portal database domain. You cannot use the reserved names releaseDS, communityDS, customizationDS, jcrDS, lmdbDS, and feedback. You can use the same name for all portal database domains that are sharing user ID, password, and JDBC database URL. |
| <domain>.DbUrl | The JDBC database URL to be used to connect with the database of this portal database domain. It must comply with your JDBC Driver software requirements. This property that is combined with the properties database name and schema name must be unique for the portal database domains release, community, customization, and JCR. |
| <domain>.DbUser | The database user ID to be used to configure the database objects of this portal database domain. It must comply with your database management software requirements. It is also used by the data source to connect with the database, unless you specify a runtime database user. |
| <domain>.DbPassword | The password of the database user ID used to configure the database objects of this portal database domain. It must comply with your database management software requirements. It is also used by the data source to connect with the database, unless you specify a runtime database user. |
| <domain>.DbRuntimeUser | The database user ID used for the data source of the portal database domain to connect with the database during day-to-day operations. It must comply with your database management software requirements. It has fewer permissions than the configuration database user (DbUser) that is used when you leave this blank. |
| <domain>.DbRuntimePassword | The password of the database user ID used for the data source of this portal database domain to connect with the database during day-to-day operations. It must comply with your database management software requirements. |
| <domain>.DBA.DbUser | The database administration user ID used for privileged database operations during database creation and setup for this portal database domain. It must comply with your database management software requirements. |
| <domain>.DBA.DbPassword | The password of the database administration user ID used for privileged database operations during database creation and setup for this portal database domain. It must comply with your database management software requirements. |
| <domain>.DbConfigRoleName | The name of the role or group for this portal database domain that includes the database permissions that are required by the configuration database user. The configuration database user configures the database objects of this portal database domain. The role or group must comply with your database management software requirements. The configuration database user must be a member of this role or group. If this role or group does not exist, create it and assign it to the release.DbUser ID. |
| <domain>.DbRuntimeRoleName | The name of the role or group for this portal database domain that has the database permissions that are required by the runtime database user during day-to-day operations. The role or group must comply with your database management software requirements. The runtime database user must be a member of this role or group. If this role or group does not exist, create it and assign it to the release.DbRuntimeUser ID. |
| <domain>.XDbName | The database alias used to create the database for this portal database domain. It must comply with your database management software requirements. |
| <domain>.DbNode | The name of the database node that is used to create the database for this portal database domain. It must comply with your database management software requirements. |
| InitializeFeedbackDB | Specify how to handle the Feedback database during database transfer from Derby. |
dbTypeProperties
Refer to the following table for more information about the properties you can use:
| Property | Description |
|---|---|
| db2.DbDriver | Name of the database driver class for IBM DB2. |
| db2.DbLibrary | Path to the database driver library for IBM DB2. |
| db2.JdbcProviderName | Name of the JDBC provider for IBM DB2. |
| oracle.DbDriver | Name of the database driver class for ORACLE DB. |
| oracle.DbLibrary | Path to the database driver library for ORACLE DB. |
| oracle.JdbcProviderName | Name of the JDBC provider for ORACLE DB. |
| sqlserver.DbDriver | Name of the database driver class for sqlserver DB. |
| sqlserver.DbLibrary | Path to the database driver library for sqlserver DB. |
| sqlserver.JdbcProviderName | Name of the JDBC provider for sqlserver DB. |
Limitation
Simultaneous execution of WebEngine pod scaling and external database transfer is not supported. To avoid any unexpected behavior, complete the database transfer before scaling the environment.