From 51b3a016a075038ad3df996f91a189570bfa03e8 Mon Sep 17 00:00:00 2001 From: Bas de Bakker Date: Mon, 10 Aug 2026 13:43:02 +0200 Subject: [PATCH 1/3] Add remark on Oracle automatic indexing --- content/en/docs/refguide/runtime/data-storage/oracle.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/content/en/docs/refguide/runtime/data-storage/oracle.md b/content/en/docs/refguide/runtime/data-storage/oracle.md index 1b149d43215..4275289eda3 100644 --- a/content/en/docs/refguide/runtime/data-storage/oracle.md +++ b/content/en/docs/refguide/runtime/data-storage/oracle.md @@ -60,3 +60,12 @@ If you run into this limitation, an exception like `Error Msg = ORA-02329: PL/SQ ## DDL commands DDL (data definition language) commands in Oracle are not transactional and will not be rolled back in case of an error. This means that if your Oracle database needs to be synchronized with your model when you start your application and an error occurs during this synchronization, the changes that have made been made up until the point when the error occurs are *not* rolled back. This can leave the database in an inconsistent state which cannot be recovered automatically. Mendix recommends creating a backup of your database before deploying any new version of your app, so that you can restore the backup if the database synchronization fails. + +## Automatic indexing + +Oracle has a feature where it can create indexes automatically, based on query patterns. The Mendix runtime is not aware of these indexes. +These indexes can potentially conflict with schema changes. For example, when a column is used in a function based index, its type cannot be changed. + +When such a conflict occurs, database synchronization may fail, which will cause application startup to fail. +If this happens, drop the affected automatic index before starting up the application after such a domain model change. +Note that, as explained above, it may be necessary to restore the database after such a failed synchronization. From cf8bd970eab51bb30f2245ebd7b211d6a1d41afd Mon Sep 17 00:00:00 2001 From: MarkvanMents Date: Fri, 14 Aug 2026 14:00:09 +0200 Subject: [PATCH 2/3] Proofread --- .../refguide/runtime/data-storage/oracle.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/content/en/docs/refguide/runtime/data-storage/oracle.md b/content/en/docs/refguide/runtime/data-storage/oracle.md index 4275289eda3..18e703472d6 100644 --- a/content/en/docs/refguide/runtime/data-storage/oracle.md +++ b/content/en/docs/refguide/runtime/data-storage/oracle.md @@ -10,7 +10,7 @@ There are some minor differences in how Mendix behaves when using an Oracle data ## Setting Up a User for Mendix -When setting up an integration with an Oracle back end, Mendix recommends creating a user/schema with the appropriate privileges. Mendix uses a single user to update the schema-structure (for example, tables and indices) and to execute DML statements. The former is done when Mendix is starting up and synchronizing the model with the storage structure, and the latter is done in normal runtime operations. +When setting up an integration with an Oracle back end, Mendix recommends creating a user/schema with the appropriate privileges. Mendix uses a single user to update the schema-structure (for example, tables and indices) and to execute DML (Data Manipulation Language) statements. The former is done when Mendix is starting up and synchronizing the model with the storage structure, and the latter is done in normal runtime operations. When setting-up perform the following steps: @@ -57,15 +57,16 @@ You cannot set a [uniqueness constraint](/refguide/validation-rules/#uniqueness) If you run into this limitation, an exception like `Error Msg = ORA-02329: PL/SQL: column of datatype LOB cannot be unique or a primary key` will be logged. -## DDL commands +## DDL Commands DDL (data definition language) commands in Oracle are not transactional and will not be rolled back in case of an error. This means that if your Oracle database needs to be synchronized with your model when you start your application and an error occurs during this synchronization, the changes that have made been made up until the point when the error occurs are *not* rolled back. This can leave the database in an inconsistent state which cannot be recovered automatically. Mendix recommends creating a backup of your database before deploying any new version of your app, so that you can restore the backup if the database synchronization fails. -## Automatic indexing +## Automatic Indexing -Oracle has a feature where it can create indexes automatically, based on query patterns. The Mendix runtime is not aware of these indexes. -These indexes can potentially conflict with schema changes. For example, when a column is used in a function based index, its type cannot be changed. +Oracle can create indexes automatically, based on query patterns. The Mendix runtime is not aware of these indexes. These indexes can potentially conflict with schema changes. For example, you cannot change the type of a column when it is used in a function based index. When such a conflict occurs, database synchronization may fail, and the application will fail to start. -When such a conflict occurs, database synchronization may fail, which will cause application startup to fail. -If this happens, drop the affected automatic index before starting up the application after such a domain model change. -Note that, as explained above, it may be necessary to restore the database after such a failed synchronization. +To resolve this, drop the related automatic index before starting the application after such a domain model change. + +{{% alert color="info" %}} +As explained above, it may be necessary to restore the database after such a failed synchronization. +{{% /alert %}} From d8545cb2910300154212f5a9efe99623b8a6c1cc Mon Sep 17 00:00:00 2001 From: Mark van Ments <35492184+MarkvanMents@users.noreply.github.com> Date: Fri, 14 Aug 2026 15:51:54 +0200 Subject: [PATCH 3/3] Clarify that index building is customer choice. --- content/en/docs/refguide/runtime/data-storage/oracle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/refguide/runtime/data-storage/oracle.md b/content/en/docs/refguide/runtime/data-storage/oracle.md index 18e703472d6..a9335dc2a20 100644 --- a/content/en/docs/refguide/runtime/data-storage/oracle.md +++ b/content/en/docs/refguide/runtime/data-storage/oracle.md @@ -63,7 +63,7 @@ DDL (data definition language) commands in Oracle are not transactional and will ## Automatic Indexing -Oracle can create indexes automatically, based on query patterns. The Mendix runtime is not aware of these indexes. These indexes can potentially conflict with schema changes. For example, you cannot change the type of a column when it is used in a function based index. When such a conflict occurs, database synchronization may fail, and the application will fail to start. +You can enable a feature so that Oracle creates indexes automatically, based on query patterns. However, the Mendix runtime is not aware of these indexes and they can potentially conflict with schema changes. For example, you cannot change the type of a column when it is used in a function based index. When such a conflict occurs, database synchronization may fail, and the application will fail to start. To resolve this, drop the related automatic index before starting the application after such a domain model change.