This knowledge article may contain information that does not apply to version 21.05 or later which runs in a container environment.
Please refer to Article Number 000385088 for more information about troubleshooting BMC products in containers.
Note: This article applies for versions 9.x and higher since AR Server is Java based.
For versions earlier than 9.x please check the following article below:
Remedy - Server - How ARAdmin connects to the Database server and make the connections
First, to check the current number of connection established by the ARAdmin user with the respective database, run the following SQL query:
SELECT
DB_NAME(dbid) as DBName, COUNT(dbid) as NumberOfConnections, loginame as LoginName
FROM
sys.sysprocesses
WHERE
dbid > 0
GROUP BY
dbid, login;
Below is the output of this query and for the example displayed the number of connection established by the ARAdmin user is 13.
Explanation
The RPC queue thread size is not directly related to the number of database connections made by AR server.
There following reasons and factors that affect:
1- Thread size only indicates number of threads that are waiting for work, they will only establish a connection to database when they are actually performing work and needs something from database. e.g. when API call is in progress.
2- Even in some cases, there are a few API calls (e.g. GSI) that may not need to go to database.
They can return server configuration from memory. So it may not result in opening a connection to the database.
3- ARS uses pooling feature for the database connectivity. When one thread releases the connection to the pool while processing something in memory, other thread can claim that connection.
Question: Is there any way to reduce the number of idle / inactive ARADMIN connections?
Answer: BMC Remedy uses spring-framework and internally it creates a Connection Pool to use. So we reuse the connections instead of creating new connection each time to reduce overhead. This is as designed.
Customer can use Oracle ‘idle_time’ parameter to disconnect session after n minutes of inactivity if they are concerned there are too many ARADMIN idle connections.
Question: Is there a way to increase the Connection Pool size?
Answer: The Connection Pool size is allocated dynamically during startup based on minimum Connection Pool (default 80 which is not configurable), RPC queues defined and some internal scheduled threads. To increase the Connection Pool just increase max FAST and LIST RPC queues.
Check ccs_server.log (under ARInstallDirectory/db) to see the connections created at startup.
For example:
Wed Jun 16 2021 05:14:51.276 INFO c.b.a.s.d.r.i.ConfigurationRepositoryImpl The database connection pool size is configured to 90
4- There could be more than one AR server on a server group that will affect the number of database connections.
5- If the Smart Reporting database resides on the same database, there may be connections from that.
6- There will be lot of background activities – escalations, archiving, fts indexing, HG computation, etc. that will need connections to the database.