Skip to content

Managed Cloud Databases

QIE's own database can run on a managed cloud service as well as on a server you administer. Azure Database for MySQL, Amazon RDS, and Amazon Aurora are all supported, and QIE connects to them exactly as it connects to a self-hosted instance: the same driver, the same connection URL, the same dialect.

There is one thing that genuinely differs, and it only bites clustered installations: in-memory table support.

Note

Azure Database for MariaDB is not listed here because Microsoft has retired that service. On Azure, use Azure Database for MySQL. The MariaDB engine remains fully supported on servers you host yourself, and is QIE's default. See Supported Databases.

Connecting

Nothing about the connection is cloud-specific. Point connection.url at the managed endpoint and use the driver and dialect for the engine version the service is running:

-Dconnection.driver=org.mariadb.jdbc.Driver
-Dconnection.url=jdbc:mariadb://qie-db.mysql.database.azure.com:3306/qie
-Dhibernate.dialect=com.qvera.qie.persistence.MariaDB114QieDialect

Two things to check that catch people out:

  • The dialect must match the engine version the service actually runs, which is not always the newest one the provider offers. Confirm it in the service's configuration rather than assuming.
  • Managed services usually require TLS, and some reject non-TLS connections outright. Append the provider's required connection parameters to the URL.

Keep the password out of plain text with Encrypting the Database Password.

EnterpriseHA needs in-memory tables

This is the one real constraint. QIE coordinates cluster state (the mutexes and queue counts that let instances share work) through in-memory tables. Without them, a cluster cannot function.

Managed services vary in whether they permit them, and the variation is by tier, not just by provider:

Engine What to check
MariaDB / MySQL In-memory tables are normally available by default. Some providers disable them on entry-level or free-tier offerings. On Amazon Aurora, select a tier that supports in-memory tables.
Microsoft SQL Server In-memory tables are off by default and must be enabled by running a script against the QIE schema before connecting QIE. Some cloud-hosted MSSQL tiers on both AWS and Azure do not support them at all, so the fix is a higher-tier instance. See Setup In-Memory Tables.

This only matters for EnterpriseHA

A standalone QIE (the default) does not use in-memory tables and runs on any tier that meets the ordinary sizing requirements. Check this before choosing a tier only if you are deploying, or may later deploy, a cluster. Discovering the limitation after the fact means migrating the database to a different tier.