I have an application that is using the OCCI Oracle instant client 12 to connect to the DB. Previously, we were using user name and password for authentication then we switch to use certificate external authentication. This has worked without changing to the application source code. Now we moved to use the Oracle instant client version 21_7. After the change, the authentication doesn't work without a change. As per this example, when creating a connection pool for external authentication, pool type parameter should applied using "USES_EXT_AUTH" and "HETEROGENEOUS" as shown below.
StatelessConnectionPool *scp =
env->createStatelessConnectionPool(
username, passwd, connectString, maxCon, minCon, incrCon,
StatelessConnectionPool::PoolType(
StatelessConnectionPool::USES_EXT_AUTH|
StatelessConnectionPool::HETEROGENEOUS));
With above change of using correct pool type for creating connection pool, it seems it would work only if the "BusyOption" is set to "WAIT" or "FORCEGET". It does not work when the BusyOption is set to "NOWAIT". If the BusyOption is set to "NOWAIT", below exception would throw:
ORA-24459: OCISessionGet() timed out waiting for pool to create new connections
My question is, how to get the certificate external authentication to work with BusyOption "NOWAIT"? Is it not supported for External Authentication?