JDBC connection pooling - when are minimum number of connections created?

If I have a Generic JDBC Account configured with a minimum pool size > 0, when does the connection pool get created and initialized with the minimum number of connections? Is it when the first pipeline that uses the Generic JDBC Account is being prepared/started before any documents flow into a Snap that uses the Generic JDBC Account? Or does the connection pool only get created and initialized with the minimum number of connections at the time that the first document flows into a Snap that uses the Generic JDBC Account?

The reason for asking the question is that we have an Ultra task pipeline with a Snap that uses a Generic JDBC Account. The minimum pool size is set to 0 (zero). What we found is that the first HTTP request made to the Ultra task times out, but subsequent requests don’t time out. I believe that since we have the minimum pool size set to 0 (zero) that the connection isn’t created until the first document flows into the Snap that uses the Generic JDBC Account. Making that connection takes too much time and the result is that the HTTP request times out.

I want to confirm that if we set the minimum pool size > 0 that the connection will be made before the first document flows into the Snap that uses the Generic JDBC Account.

Hi Paul:

I don’t think increasing the minimum pool size will help here.

The connection pool gets created when the first connection is created which happens when the first document is processed by the snap. The only exception to this is if you use the suggest buttons inside the snap (which doesn’t apply here).

A “work-around” would be to send a single document to the ultra pipeline to “prime the pump” before normal operation.

I’m not super conversant with Ultra pipelines so others in community may be able to contribute.

1 Like