News
Abstract
Decision Server Insights 8.7 allows system data persistence to be configured on a DB2 database. The Operational Decision Manager V8.7.0.1 fix pack enables system data persistence to alternatively be configured using an Oracle database.
Content
To configure Decision Server Insights persistence using an Oracle database, use the following information instead of the DB2 topics that are currently in the IBM Knowledge Center:
Setting up a database
Instead of Setting up a database, set up a database for your container servers to persist entity data and system state data. This task is not applicable to the other server types.
Before you begin
A relational database can be configured to store the runtime state while Insight Server is running. After a system outage, the stored runtime state can be recovered from the database. The runtime state includes entity business information, in-progress transactions, and the history of events and event data.
Decide on whether to persist the runtime data in a database by balancing the following factors:
• The value of the business information in the runtime state of the system is sufficiently valuable.
• The risk of a full system outage is sufficiently high.
• The performance impact of this feature to the business case is sufficiently small.
About this task
If persistence is required, you must set up a database, and you must define a data source that connects to that database. The database can exist on a separate computer, or on a computer that hosts a server.
Decision Server Insights includes an Oracle database script OracleDistrib.sql, which is in <InstallDir>/runtime/ia/persistence/sql/Oracle.
Tip: Because site-specific requirements vary greatly, the OracleDistrib.sql file specifies only the basic structure of the required tables. Attributes such as table spaces and LOB locations have a default value, or are not specified. A database administrator might want to modify a copy of this file to define these performance-related attributes.
To set up a database, you run the SQL statements from a command window or a database client.
Results
After the SQL script is run, an administrator can check the database to validate the following tables are created:
| Database tables | Description |
| DELAYEDEVENTS | Data about the events that are due to be processed at a specific time. |
| ENTITIES | Data about the entities in the run time. |
| EVENTSTORE | Data about the event history that is related to entities. |
| INBOUNDEVENTS | Data about the events that are waiting to go into an agent. |
| JOBHISTORY | Data about the stored global aggregates. |
| JOBRESULTS | Data about the stored global aggregates. |
| OUTBOUNDEVENTS | Data about the events that are waiting to be sent, or in progress of being sent, to an outbound endpoint. |
| RULESETS | Data about the rule engine state. |
What to do next
When a server that is configured for database persistence is cloned and ready to start, run the server start command. After the server is started, run the dataLoadManager finalize command to activate the persistence.
Configuring Decision Server Insights persistence in JDBC
Instead of Configuring Decision Server Insights persistence in JDBC, add a Java™ database connectivity (JDBC) data source to determine the database to use for persisting system data. JDBC is an essential prerequisite for communicating with the database. The data source is looked up by a Java Naming Directory Interface (JNDI) process.
Procedure:
1) Uncomment the feature manager for JDBC in the <InstallDir>/runtime/wlp/usr/servers/your_cisContainer_name/server.xml file.
<featureManager>
<feature>jdbc-4.0</feature>
</featureManager>
2) Create a JDBC data source, and configure the JDBC driver for your database.
You must ensure that the data source references the database where your map data is persisted. For more information, see Adding a data source by using the developer tools.
For more information, see Editing the Liberty profile configuration by using developer tools.
3) Complete the following entries for the JDBC data source:
• JNDI name
• Path to the JDBC .jar directory
• Space-separated list of the JDBC .jar files to include
• Database name
• User name
• Password
• Server name
• Database schema name
• Port number
The following code is an example of an Oracle configuration:
<dataSource jndiName="jdbc/oracle_datasource">
<connectionManager/>
<jdbcDriver>
<library>
<fileset dir="/opt/oracle/java" includes="ojdbc6.jar" />
</library>
</jdbcDriver>
<properties.oracle
databaseName="SAMPLEDB"
user="user1"
password="pwd1"
serverName="localhost"
portNumber="1521" />
</dataSource>
Add a persistence configuration item, and set the data source JNDI name. You can set the maximum batch size and maximum cache age attributes. The following code is an example of an Oracle configuration:
<ia_persistence databaseType="ORACLE" datasourceName="jdbc/oracle_datasource" maxBatchSize="10000" maxCacheAge="1000" />
Where:
datasourceName (mandatory)
The JNDI reference of the data source that you created in step 1.
maxBatchSize (optional)
The maximum number of entries that can be restored to the system in a single transaction if recovery occurs. The rows are read in batches of the size that is configured. The default is 10,000.
The maxBatchSize value can affect the performance of the recovery process. However, there is no risk of data loss because it is a read only operation.
maxCacheAge (optional)
The maximum time in milliseconds that the system caches data source information before it looks up the data source again. The default is 1,000.
The system checks the server.xml for new database details at the specified rate.
What to do next
Update the object grid to enable database persistence. See Configuring the object grid to persist data.
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg21694368