Optimizing Performance
It is important that you optimise the performance of your data loads while processing a large volume of data. To do this, you need to configure the following:Â
- Change isolation level for backend and log database
- Go to .../<ApdeptiaInstallFolder>/AdeptiaServer/ServerKernel/etc folder.
- Open server-configure.properties in the Text Editor.
Set the isolation level to "2" for both backend and log database.
For backend database<Property comment="Transaction Isolation Level for the connections in the pool. Specify 1 for READ UNCOMMITTED and 2 for READ COMMITTED." dynamic="no" name="abpm.jdo.isolation.level">2</Property>
For log database
<Property comment="Transaction Isolation Level for the connections in the pool. Specify 1 for READ UNCOMMITTED and 2 for READ COMMITTED." dynamic="no" name="abpm.logdb.isolation.level">2</Property>
- Save the file.
Apply Indexes
Depending on the database you are using, run the following queries to apply indexes on the database.ÂSQL Server database
On backend database
CREATE INDEX [IX_AU_PROCESSQUEUE_AUSTATUS] ON [AU_PROCESSQUEUE]([AU_STATUS]) ON [PRIMARY]; CREATE INDEX [IX_AU_PROCESSQUEUE_AUNODENAME] ON [AU_PROCESSQUEUE]([AU_NODE_NAME]) ON [PRIMARY]; CREATE INDEX [IX_AU_PROCESSQUEUE_AUQUEUETIME] ON [AU_PROCESSQUEUE]([AU_QUEUE_TIME]) ON [PRIMARY];
On log database
CREATE INDEX [IX_AU_GROUPDATA_REFERENCEID] ON [AU_GROUPDATA]([REFERENCEID]) ON [PRIMARY]; CREATE INDEX [IX_AU_GROUPDATA_ACKSTATUS] ON [AU_GROUPDATA]([ACKSTATUS]) ON [PRIMARY]; CREATE INDEX [IX_AU_GROUPDATA_DISPLAYSTATUS] ON [AU_GROUPDATA]([DISPLAYSTATUS]) ON [PRIMARY];
MySQL database
On backend databaseCREATE INDEX IX_AU_GROUPDATA_REFERENCEID ON AU_GROUPDATA(REFERENCEID); CREATE INDEX IX_AU_GROUPDATA_ACKSTATUS ON AU_GROUPDATA(ACKSTATUS); CREATE INDEX IX_AU_GROUPDATA_DISPLAYSTATUS ON AU_GROUPDATA(DISPLAYSTATUS);
On log database
CREATE INDEX IX_AU_PROCESSQUEUE_STATUS_JOB ON AU_PROCESSQUEUE (AU_STATUS, AU_JOB_ID); CREATE INDEX IX_AU_PROCESSQUEUE_STATUS_NODE ON AU_PROCESSQUEUE (AU_STATUS, AU_NODE_NAME);
Enable READ_COMMITTED_SNAPSHOT on the SQL Server log database
Run the following queries on the SQL Server log database to enable READ_COMMITTED_SNAPSHOT. Before running the queries, ensure that no process flow or any query is running.ALTER DATABASE LogDBName SET allow_snapshot_isolation ON ALTER DATABASE LogDBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE ALTER DATABASE LogDBName SET read_committed_snapshot ON ALTER DATABASE LogDBName SET MULTI_USER  where, LogDBName is the name of Log database.
You can execute the below query to verify that READ_COMMITTED_SNAPSHOT is enabled.
SELECT is_read_committed_snapshot_on, snapshot_isolation_state_desc, snapshot_isolation_state FROM sys.databases WHERE name='LogDBName'
Contact your System Administrator in case you are unable to run the queries..