Describes the specific requirements to some RDBMS servers for holding RM-related data
Oracle
RM supports Oracle 9i, 10g, 11g and 12c database server versions over Oracle-provided JDBC drivers.
Supported JDBC Drivers
- Oracle 9i - version 9.2.0.5 or later. You might also communicate with an Oracle 9i database server through the JDBC driver supported for Oracle 10g.
- Oracle 10g - version 10.2.0.2 or later.
- Oracle 11g - version 11.2.0.1.0 or later.
- Oracle 12c - version 12.1.0.2.0 or later.
General Issues
- Oracle OCI drivers are dependent on OS environment setup, leading to irrelevant error messages if the JDBC application is run without the needed environment settings. Namely, if you are getting "java.sql.SQLException: Closed Connection" errors when you are trying to configure RM with Oracle over the OCI driver, the reason is that the ORACLE_HOME environment variable is not set in your OS. The problem is most likely to occur on Unix-based systems, where the ORACLE_HOME variable is set by default only for the OS user who owns the local Oracle installation (created at Oracle installation time, typically with user name 'oracle').
To resolve the problem, set the variable for the OS account you are using to run RM, to point to Oracle's installation directory - typically /opt/oracle/product/<oracle_version>. You can include the "set-variable" command in RM's startup shell script (mprm, ccenter or mserver in <mPRM_install_dir>/bin), in the system-level profile script (/etc/profile) or in the user-level profile script for the account of interest (/.profile, /.bash_profile, or similar, depending on your type of shell). Then, make sure that you restart and reconfigure RM in an environment, where the setting is present (e.g. if the setting is in your user-level profile script, you should log out and log in again for the change to take effect).
- In the conditions of more substantial system load, you may also experience problems due to insufficient sizes of Oracle's internal memory heaps. The issue is resolved by increasing the values of the corresponding parameters in Oracle database settings.
MySQL
RM supports MySQL version 5.0 or later over the MySQL Connector/J JDBC driver.
- To ensure RM compatibility, you must adjust the max_allowed_packet server option in the MySQL server configuration file (my.cnf or my.ini) in order to enable client/server transfer of binary data in the data size range needed by RM. We recommend the following setting:
set-variable=max_allowed_packet=16M
- We also recommend that you configure your MySQL server with a default table type different from the MySQL default which is MyISAM. MyISAM tables are probably the fastest MySQL table type, but the tradeoff is a drawback in data consistency and integrity. We recommend configuring your MySQL server with a table type, which fully supports transactions and FOREIGN KEY constraints, such as InnoDB tables.
For InnoDB tables, you have to additionally specify the following setting (in my.ini)
innodb_locks_unsafe_for_binlog=1
Case Sensitivity
This section discusses of the database server hosting the RM storage.
- RM expects that regarding SQL identifiers (i.e. names of tables, columns, etc.) RDBMS server is absolutely case-insensitive. This condition is required by the ANSI SQL-92 standard with which most database servers are compliant.
- Regarding data, RM allows the user to configure character collation options for the database used by RM according to his needs - whether the database will be case-sensitive or case-insensitive. This setting will be taken in account by most DB searches performed internally by RM as well as by the user interface for such searches. That is, strings recorded with different case will be considered as equivalent.
- Data related to certain functionality (like user preferences) must be case-sensitive. In such cases, the RM Database Services take care transparently from the user to support case sensitivity even if DB collation has been configured as insensitive. Hence, the user does not have to execute any explicit actions for supplying database case sensitivity support.
Some database servers supported by RM (MS SQL Server 2005) are not ANSI SQL-92 compliant and bind case-sensitivity of data to SQL identifiers. In particular, if the user configures such a server with a case-sensitive collation for data, the SQL identifiers will inevitably become sensitive as well and RM will not work correctly. Such servers should be used with RM only in case the relevant database is configured with case-insensitive collation.
How the Management Console Shows DB Access Errors
The console will relate DB access problems to the system administrator through a relevant error message if the problem appears during a synchronous operation, or through a corresponding error log or system alert if it appears in the course of asynchronous DB access (e.g., committing device-related data to the database in background threads). Administrators should regularly check System Logs and System Alerts for messages indicating asynchronous system errors, including DB errors, and should take the corresponding corrective actions.