Calculating the number DataSource connections (Maximum SQL Connection) required?
Resolving the problem
In creating/editing a DataSource there has been some misunderstanding regarding the setting of the value for Maximum SQL Connection:
Although this is primarily designed to limit the number of connections allowed to a specific database there are a couple of other factors to take into account.
First, the number of connections made to the database will be the total of this value multiplied by the number of ImpactServers in the Cluster.
Second, the number of connections should be at least equal to the maximum number of threads configured in the EventProcessor:
This value is then multiplied by the number of ImpactServers in the Cluster. So, now you're asking "How many threads should be configured in the EventProcessor?" Old advice for multi-threaded Impact pre-dating version 5 was:
"a starting value for the number of the treads is twice the number of CPUs of the ImpactServer host and add one - for example (for a 2 CPU host) a starting value for threads would be 2x2+1=5."
The latest versions of Impact self regulate the number of threads, but acquainting oneself with the current setting in the EventProcessor is useful for setting the number of connections in DataSources. Always ensure that the number of connections for each DataSource is at least equal to the number of threads, if not more. In the case of a default EventProcessor ( as in the example above) an absolute minimum number of connections for each DataSource would be 20 for a standalone, single ImpactServer.
Please also remember that the EventProcessor configuration is not replicated across the Cluster so that one can configure each EventProcessor relevant to the capabilities of the ImpactServer host upon which they reside.
In the links below there is a TechNote around this subject (specifically issues with the number of threads and connections) that might prove useful.