On Linux box, I noticed a lot of following errors on my ems log: ERROR: Accept() failed: too many open files. What can I do to get rid of this?

On Linux box, I noticed a lot of following errors on my ems log: ERROR: Accept() failed: too many open files. What can I do to get rid of this?

book

Article ID: KB0087823

calendar_today

Updated On:

Products Versions
TIBCO Enterprise Message Service -
Not Applicable -

Description

Resolution:
1.    The message "too many open files." indicates: you may be running out of file descriptors.

TIBCO Enterprise for EMS, uses file descriptors when a file is open and when sockets are created. Therefore, the number of file descriptors used by the EMS Server will increase with the number of client applications connected to the EMS Server.
In the admin tool, the command "info" will give you the number of connections opened. Each connection consumes a file descriptor.

When the server is started, it opens also the db files and therefore consumes fds.

When routes are defined, you have tcp connections, so again, fds consumed.

2.    On Linux, there is a per-process file descriptor limit set in /etc/security/limits.conf, the defaults to 1024; and there is system file descriptor limit set in the /proc/sys/fs/file-max is for the overall limit of files that can be opened across all files. Therefore, you could try the following:

A.    To verify how many file descriptor are used and the system limit,   “cat /proc/sys/fs/file-nr” to get current limit
3391    969     52427
|     |       |
|     |       |
|        |       maximum open file descriptors
|        total free allocated file descriptors
total allocated file descriptors
(the number of file descriptors allocated since boot)
In order to increase the maximum number of file descriptors, you can ‘cat’ a number to this file:-
# echo "200000" >/proc/sys/fs/file-max

B.    If this doesn’t help much, you might need to consider increasing the ulimit open file value as well
“cat /etc/security/limits.conf”
You may need to increase the soft limit and hard limit.


3.    To investigate this problem further:

A. Please run “lsof [-p &lttibemsd pid>] | wc –l” to get current number of open file descriptors used by EMS server, and tibemsd “show server” and “show connections full” to get the detail client connection information.

B. send us the EMS server log file for review.

C. Sent us “netstat –a” results, it will help us to verify your tcp connections on the box.

Issue/Introduction

On Linux box, I noticed a lot of following errors on my ems log: ERROR: Accept() failed: too many open files. What can I do to get rid of this?