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.
Related¶
- Supported Databases, which engines and versions QIE supports as its own database
- High Availability covers configuring a cluster
- Cluster Database Configuration covers the same in-memory table requirement, from the container side
- RDS Database covers creating the database as part of the AWS ECS install