ANR8856E ANR8855E and ANR8444E failures when attempting to define an ACSLS library to the Tivoli Storage Manager server
The following errors are seen in the activity log on the Tivoli Storage Manager server when attempting to define an ACSLS library:
ANR8856E ACSAPI sequence(8) request (0) timed out, elapse time=00:01:01.
ANR8855E ACSAPI(acs_query_server) response with unsuccessful status, status=STATUS_IPC_FAILURE.
ANR8444E DEFINE LIBRARY: Library ACSLSLIB is currently unavailable.
The errors may be indicative of a communications problem between the Tivoli Storage Manager server and the ACSLS server, but these errors may also occur if the dsmserv process has allocated more than 1024 open file descriptors.
Diagnosing The Problem
The lbtest utility can be used to verify communications between Tivoli Storage Manager host and ACSLS server. The following technote contains instructions for verifying connectivity to the ACSLS server via the lbtest utility:
If communications can be successfully established with the ACSLS server via the lbtest utility then this would suggest that there are no underlying network/configuration issues. The DEFINE PATH command may be failing due to an inability by the Tivoli Storage Manager to successfully query the response from the ACSLS server. The SSI event.log file (/opt/tivoli/tsm/devices/bin/event.log) may show the following errors repeated while the DEFINE PATH command is running:
- 07-01-13 17:28:03 (17 = Unknown):
[acs_sel_input.c:146] acs_select_input: select() failed, nfds=106
07-01-13 17:28:03 (17 = Unknown):
[acs_error.c:411] acs_response: FATAL_ERROR! cl_select_input() failed.
The errors above indicate that the select() function had failed. The select() function is used by the Tivoli Storage Manager server to query the SSI daemon to determine whether a response has been received from the ACSLS server. On some Linux platforms, the select() function is limited to the number of file descriptors defined by the FD_SET variable (default value of 1024). Thus, if the calling process (eg. dsmserv) has already allocated more than 1024 file descriptors, the select() function will fail.
Resolving The Problem
Determine the number of open file descriptors in use by dsmserv process and, if greater than 1024, actions will need to be taken to reduce the count of open file descriptors. The following actions can be taken to determine the count of open file descriptors associated with the dsmserv process:
- 1. Issue the following command to identify the process id associated with the dsmserv process:
- # ps -ef |grep dsmserv
The output from this command will resemble the following:
- tsminst1 21007 9723 0 Aug27 pts/1 00:00:17 /opt/tivoli/tsm/server/bin/dsmserv
In the output above, the process id associated with the dsmserv process is 21007.
2. Issue the following command to determine the count of open file descriptors associated with the dsmserv process (process id 21007):
- # lsof -p 21007 | wc -l
Having a large number of disk storage pool volumes defined to the Tivoli Storage Manager server is the most common reason for the dsmserv process showing a large number of open file descriptors. Upon initialization, the Tivoli Storage Manager server will open each of the defined disk storage pool volumes and these volumes will remain open while the server is running. This is done for performance reasons to eliminate the need to repeatedly open and close these devices. As a result, having a large number of disk storage pool volumes will result in a large number of open file descriptors. It may be necessary to reduce the number of defined disk storage pool volumes by creating fewer, larger volumes. For example, a 2 TB storage pool consisting of 2,000 1 GB volumes can be re-defined with 100 20 GB volumes as this would significantly reduce the number of open file descriptors required by the dsmserv process.
Another option, if possible, would be to increase the value of the FD_SET variable on the Linux host to allow for a greater number of open file descriptors.
Was this topic helpful?
17 June 2018