By ODM performance architects: Pierre-Andre Paumelle and Nicolas Peulvast
Use this checklist to improve the scalability of Decision Center, and configure it for the right number of users. The checklist is divided into sections to help you locate where the optimization is done.

Java virtual machines

Set the initial heap size to 8 gigabytes per server. Disable Java2security, especially on Java EE.
Set the garbage collector policy to gencon. If you have more than 6 cores, limit the number of threads for the garbage collector:
-Xgcpolicy:gencon -Xgcthreads6
Apply the session management configuration for WAS, see http://www-01.ibm.com/support/docview.wss?uid=swg21609826.

Data source

On WAS you work in the WebSphere Integrated Solutions Console to configure a data source.
Set the following custom properties by selecting Additional properties > WebSphere Application Server > data source properties:

Prepared statement cache size: 100
webSphereDefaultIsolationLevel: 2 

Configure the connection pool with the following values:

Connection timeout: 30
Maximum connections: 10
Minimum connections: 5
Reap time: 60
Unused timeout: 90
Aged timeout: 120
Purge policy: FailingConnectionOnly

Liberty example

<dataSource id="jdbc/ilogDataSource"
   jndiName="jdbc/ilogDataSource"
   statementCacheSize="100"
   isolationLevel="TRANSACTION_READ_COMMITTED"
   purgePolicy="FailingConnectionOnly"
   type="javax.sql.XADataSource">

Tomcat example

<Resource auth="Container"
   defaultTransactionIsolation="READ_COMMITTED"
   driverClassName="com.ibm.db2.jcc.DB2Driver"
   name="jdbc/ilogDataSource"
   username="db2admin" password=”password"
   jdbcInterceptors="StatementCache(prepared=true,callable=false,max=100)"
   maxActive="10"
   maxIdle="50"
   minIdle="10"
   suspectTimeout="60"
   timeBetweenEvictionRunsMillis="30000"
   type="javax.sql.DataSource"
   url="jdbc:URL;" /<

DB2

If you use DB2, set the user space page size to 32 kilobytes:

CREATE TABLESPACE USERSPACE1 PAGESIZE 32K BUFFERPOOL BP32K;
CREATE SYSTEM TEMPORARY TABLESPACE USERSPACE1TMPTS PAGESIZE 32K BUFFERPOOL BP32K;

To increase the transaction log, use ddl commands to alter the database:

CONNECT TO DatabaseName;
AUTOCONFIGURE USING MEM_PERCENT 80 APPLY DB AND DBM;
ALTER BUFFERPOOL IBMDEFAULTBP IMMEDIATE SIZE AUTOMATIC;
ALTER TABLESPACE USERSPACE1 FILE SYSTEM CACHING;
UPDATE DB CFG FOR DatabaseName USING LOGFILSIZ 65535;
UPDATE DB CFG FOR DatabaseName USING LOGPRIMARY 100;
UPDATE DB CFG FOR DatabaseName USING LOGSECOND 100;

It is also possible to send the transaction log to another disk. For example on Windows:

UPDATE DB CFG FOR DatabaseName USING NEWLOGPATH F:\;

Oracle

If you use Oracle, the open_cursors parameter prevents runaway tasks from consuming too much RAM. For Decision Center, the number of open_cursors must be greater than the number of max connections multiplied by the Prepared statement cache size. Using the values from the optimized data source, this value is greater than 10 x 100.
To set open cursors use a ddl command similar to:

ALTER SYSTEM SET OPEN_CURSORS = 1500;

Use Oracle Enterprise Management to optimize your repository further.
Note Oracle’s optimizer mode FIRST_ROWS should be avoided as it causes slow down when used with Decision Center.

Microsoft SQL Server, PostgreSQL, and MySQL

Set the configuration parameter teamserver.concurrencyGateEnabled=false in Installation Manager.
Set the Prepared Statement cache size to 100.
For Microsoft SQL, alter the database with the following command:

ALTER DATABASE <basename> SET READ_COMMITTED_SNAPSHOT ON; 

Unauthorized sessions

Add the InvalidateOnUnauthorizedSessionRequestException=true custom property to the session management on WebSphere Application Server.
Click Application servers > server_name > Session management > Custom properties.

Reduce the amount of memory used

Disable the “Archive parsing flag” and “Rule analysis checks” options in Decision Center. You can set the project options on the Project tab, under Edit Project Options > Check options.
Select Build automatically to avoid a ruleset generation cost at “first ruleset generation”.
In Installation Manager, set the configuration parameter teamserver.build.archive.storage to file instead of memory. The default value is file in V8.9.

Synchronization

Configure the Business Console stream at the profile level, so that users do not follow every artifact of the project. The default is to synchronize everything. The following dialog shows the options that a user named “rtsAdmin” chooses to follow, and how the profile can be changed:
Checklist synchronization options

Search function in the Business console

To limit the number of indexes, add the following properties to preferences.properties and then repackage the DecisionCenter.war (in the EAR) with the file in WEB-INF/classes.

  • decisioncenter.web.search.SearchProvider = SolrEmbedded
  • decisioncenter.web.search.SolrEmbeddedDataDir = /yourpath

In V8.9, the default configuration sets SolrEmbeddedDataDir to temp. Change this configuration if you have several servers on the same node.

Cookies for HTTP sessions

To prevent the following error, call IlrSession.beginUsage:

Error 500. No session available in the current thread.

Set the cookie maximum age to the current browser session.

Note that this screen shot shows the setting in the Enterprise console. You need to make the same change in the Business console too.
HTTP session management in WAS85

Learn more:

    Leave a Reply

    Your email address will not be published.