Known Issue Oracle Database

From FMR Knowledge Base
Revision as of 08:20, 12 March 2025 by Plazarou (talk | contribs) (How to determine if you are affected)
Jump to navigation Jump to search

Overview

The use of an Oracle Database as the persistent database storage for the FMR is supported and there is an article here about setting up the database and installing the appropriate JDBC Driver. However, in all versions of FMR before version 11.19.5 there is a potential issue with using an Oracle database. Database tables are automatically created by FMR but in versions before 11.19.5 these tables may be created with particular columns too short to accommodate the information needed to be stored. This has been addressed in subsequent FMR releases, but simply upgrading to a new release may not address this issue.

The Issue

Due to certain tables created by the FMR, being created with tables whose definition is not large enough to accommodate values that the FMR may require, particular errors may be observed when using the FMR. These errors include:

... TODO....

Below is detailed the affected database tables and columns. It is also shown what these columns will be in versions prior to version 11.19.5 and what these columns should be defined as:

Table Name Column Definition prior to 11.19.5 Definition after 11.19.5
registry_settings value varchar2(255) varchar2(2048)
registry_environment value varchar2(255) varchar2(4000)
registry_environment url varchar2(255) varchar2(2048)
registry_roles_mapping urn varchar2(100) varchar2(255)
kafka_connection_settings urn varchar2(255) varchar2(2048)

The reason for this issue is that the codebase of FMR uses the Hibernate library to generate tables automatically in your database. Hibernate, by design, does not modify existing table definitions. This means that any database tables created in a prior release of FMR may be affected and will not be modified by moving to version 11.19.5 or later.

How to determine if your environment is affected

Using the database tool of your choice, view the tables listed above and check the column structure. If this does not match that as expected, please follow the instructions in the next section.

Methods to Address

Using the database tool of your choice, access the database and locate the following tables. Note they may already contain content so it is important not to lose any data. Modify the following tables

 ALTER TABLE registry_settings MODIFY value VARCHAR2(2048);
 ALTER TABLE registry_environment MODIFY value VARCHAR2(4000);
 ALTER TABLE registry_environment MODIFY urlVARCHAR2(2048);
 ALTER TABLE registry_roles_mapping MODIFY urn VARCHAR2(255);
 ALTER TABLE kafka_connection_settings MODIFY urn VARCHAR2(2048);