Monitoring Enqueue handles entries
A client (work process for example) request to the ENSA a connection and this is received by the Enqueue Listener Thread (dev_enqlisten trace) and the listener forward this connection to the Enqueue IO Thread (dev_enqio_X traces).
Is is possible to configure multiple IO threads to attend clients with the parameter enque/server/threadcount. Usually is between 1 and 4.
If the enque/server/max_clients is set to 2000, for example, and there are 4 IO threads available, each thread will attend 500 + 1 clients.
If 2 IO thread, 1000 + 1 each one and so on.
It is possible to monitor the maximum number of clients already attended simultaneously using the ensmon tool from OS level. The syntax is:
The option 7 show "information about all Enqueue Server threads" hence we can see useful information. The output of separated in 4 sessions:
- Information about ADM thread
- Information about listen thread
- Information about replication thread
- Information about worker thread
The last one is the focus of this post. For each IO thread we see:
In such example the parameters are:
Therefore, the "Client count" show us the maximum number of simultaneous clients already attended to each IO Thread since the start up.
In case of a shortage of handles, the number of "Client count" reach the number of "Max clients". This is a way to monitor Enqueue handles in order to avoid a fail.