A connection pool is created when a connection is opened the first time. The next time a connection is opened, the connection string is matched and if found exactly equal, the connection pooling would work.
Otherwise, a new connection is opened, and connection pooling won't be used.
Maximum pool size is the maximum number of connection objects to be pooled.
If the maximum pool size is reached, then the requests are queued until some connections are released back to the pool. It is therefore advisable to close the connection once done with it.