About Connection Pools for Initialization Blocks
You should create a dedicated connection pool for initialization blocks. Don't use the connection pools that you create for initialization blocks for data queries.
You should isolate the connections pools for different types of initialization blocks. By isolating the connection pools, you can ensure that authentication and login-specific initialization blocks don't slow down the login process. The following types of initialization blocks should have separate connection pools:
-
All initialization blocks that set session variables.
-
All initialization blocks that set semantic model variables. Run initialization blocks that set variables using credentials with administrator privileges.
Be aware of the number of these initialization blocks, their scheduled refresh rate, and when they're scheduled to run. It would take an extreme case for this scenario to affect resources. For example, refresh rates set in minutes, greater than 15 initialization blocks that refresh concurrently, and a situation in which either of these scenarios could occur during prime user access time frames.
It's more efficient and less resource intensive to set as many variables as possible in an initialization block. For example, suppose you have one initialization block that contains five variables. In this case, the initialization string makes one call to the back-end tables. Creating five initialization blocks that contain one variable each results in five calls to the back-end tables.
If an initialization block fails for a particular connection pool, no more initialization blocks using that connection pool are processed. Instead, the connection pool is denied and subsequent initialization blocks for that connection pool are skipped. This behavior ensures that Oracle Analytics continues to work, even when a connection pool has a large number of associated initialization blocks or variables.
If this issue occurs, a message similar to the following is displayed in the server log:
[OracleBIServerComponent] [ERROR:1] [43143] Blacklisted connection pool name_of_connection_poolIf you see this error, check the initialization blocks for the given connection pool to ensure they're correct.