WebLogic connection pool: define data source in Sterling Order Management System Software
You can define a data source in Sterling™ Order Management System Software.
To define the data source name to Sterling Order Management System Software, add the following entry
in the <INSTALL_DIR>/properties/customer_overrides.properties
file (see Property file):
jdbcService.<dbvendor>Pool.datasource=<datasource name>
Where <dbvendor> = db2 or oracle
For example: jdbcService.oraclePool.datasource=MetadataDS
Additionally, to use the WebLogic datasource, ensure that you set
the -Dvendor
JVM argument to weblogic
.
For example: -Dvendor=weblogic
At initialization, Sterling Order Management System Software uses the datasource name
to find the connection pool in WebLogic. In the example above, the datasource name is
MetadataDS.
IBM® recommends that you benchmark your application before migration to production to ensure that these values are set optimally. IBM also recommends that you continually monitor the connection pool usage levels to ensure that these parameters are set optimally.
Initial capacity
Bear in mind the following guidelines when setting the initial capacity attribute:
- You should set the initial capacity to satisfy your daily average connection requirements. This level can be derived by monitoring your actual pool usage levels.
- You may want to set the initial capacity to a higher number if your system experiences frequent traffic bursts.
- You may not want to set initial capacity to a very high number because both WebLogic and database server need to maintain a high number of connections. For example, assume you have 8 managed server instances, each with 15 execute threads. If you set initial and maximum connection at 17, WebLogic creates and maintain 136 database connections.
- You can not determine if there is a connection leak - for example, if the current connection pool usage is higher than your work manager thread utilization.
- You can not know if your current connection pool usage is close to the maximum capacity.
For that reason, we prefer to keep the initial capacity lower than the maximum capacity.
Maximum capacity
This attribute sets the maximum number of connections your pool can grow to within a single WebLogic Server instance. If you set this value to 27 and you have eight WebLogic Server instances, in theory, WebLogic could create up to 216 database connections.
Bear in mind the following guidelines when setting the maximum capacity attribute:
- If you are not using the sharding feature, each Sterling Order Management System Software transaction generally requires one connection. Therefore, you need one connection per active thread. In practice, set the maximum capacity to be around the active thread count plus a small number (for example, 2 or 5) for a safety buffer.
- If you are using the sharding feature, you can configure a separate connection pool for each of the metadata, configuration, transaction, master and statistics shards. Doing so may provide you some flexibility, albeit with more management overhead. Alternatively, you can assign the shards to shared connection pools to reduce the number of connection pools. It is recommended to set the maximum capacity to be equal to the active thread count plus a small number (for example, 2 or 5) for a safety buffer.
- Monitor your application in production to confirm that the ratio of connection usage follows the guidelines mentioned.
- Benchmark your application to see if custom code, user exits, and so forth require additional connections.
Allow shrinking and shrink frequency
This attribute pair informs WebLogic to release inactive connections if they have been idle for the period as specified by "shrink frequency". This has the advantage of releasing resources both at the WebLogic and database server end.
Prepared statement cache size
This attribute tells WebLogic to create a cache for each database connection that can store prepared statements up to the value specified.
Prepared statements are precompiled SQL statements that can be repeatedly invoked with different parameter values. Prepared statements reduce the need to compile the SQL statements.