Using PostgreSQL max_connections and max_prepared_transactions
The topic provides details about estimating the max_connections
and
max_prepared_transactions
required for the FileNet P8 domain.
On the PostgreSQL database server, the max_connections
configuration option sets
the maximum number of client connections that this server will accept. The number of database client
connections required for a FileNet P8 domain can be estimated for each of the categories listed
below, then summed up and the sum increased by 10-20% to account for possible underestimates. If
database server configuration changes are needed, assistance from the site administrator for the
PostgreSQL database server may be required.
Many of these use values that fluctuate over time, for example, peak logged in users. The change is both in the short term such as more users and batch document processing at end of month processing, and long term, such as more users from rollouts or increased use of system. These estimates will serve as a good starting point, but best practice is to also monitor connection use and track the trends.
The estimate can be used to determine what values to use for the PostgreSQL configuration options
max_connections
and max_prepared_transactions
. Set
max_connections
to a value greater than the sum of all the maxPoolSize settings in
all the data sources defined. The FileNet Content Manager also requires
max_prepared_transactions
to be set. PostgreSQL recommends that
max_prepared_transactions
to be at least as large as
max_connections
so that every session can have a prepared transaction pending.
- minPoolSize - minimum number of available connections in the pool. default 0.
- maxPoolSize - maximum number of available connections in the pool. default 50.
- GCD database has a pair of data sources defined; one for non-XA transactions and one for XA transactions.
- Object store databases can use a dedicated pair or shared pair of data sources.
- Configuration databases for other components typically have one non-XA datasource defined for the component.
- Base connections per Content Platform Engine instance
- Because of the possible sharing of the data sources by multiple object store, the estimation
looks at the database connection pools allocated for the data sources and not at the total number of
object stores. Estimate sum of the GCD database and all the data sources for the object stores:
- GCD database: maxPoolSize * 2 * number of pods
- Object store databases: maxPoolSize * number of data sources * number of pods
- Database connections for other pods
- For other FNCM components that use the same database server, determine what the
maxPoolSize
value is. This will either be the default value or a value provided in the overrides for the data source definition. You make separate calculations for each component and sum them up. Other components that require database connections include IBM Content Navigator and Task Manager. Estimate for each component configuration database:- Component database connection: maxPoolSize * number of pods
- PostgreSQL
- Check the information for the PostgreSQL type you are using in your environment for additional
contributions to the
max_connections
calculation.