When performing backups, or restores, socket errors are being produced.

Problem

When performing backups, or restores, socket errors are being produced.

Error Message

Status codes 13, 14, 23, 24, 25 may occur.
13 = file read failed,
14 = file write failed,
23 = socket read failed,
24 = socket write failed,
25 = cannot connect on socket

Solution

Possibly the NetBackup server is getting a lot of traffic from clients; therefore, sockets are not becoming free soon enough to satisfy the demand.
 
Check the number of processes waiting for a server socket:   
     netstat -a | grep TIME_WAIT | wc -l

 
To view the current timeout setting--
 
For Solaris 2.6 or previous use the following command:
ndd -get /dev/tcp tcp_close_wait_interval

For Solaris 7 or above use the following command:
ndd -get /dev/tcp tcp_time_wait_interval

For HP-UX 11 use the following command:
ndd -get /dev/tcp tcp_time_wait_interval
 (NOTE:  The equivalent command on HP-UX 10 is "nettune" instead of "ndd".)

These commands will produce a large number, like the default 240000 (value is in milliseconds, so 240 seconds or 4 minutes).  This is the amount of time to wait after a socket is closed before it can be reused.  In most cases this can be shortened to about 1 second (1000) and may alleviate the problem.
 
Note:   Best practice for Sun Solaris:  tcp_close_wait_interval of less than 60000 is not supported by SUN.
In some conditions, less than 60000 could cause a very rare chance of possible data loss for NetBackup servers.  Therefore, it is a best practice use the 60000 settings vs. the 240000 default.

 
The command to set it to 10000 on Solaris 2.6 and previous versions is:
ndd -set /dev/tcp tcp_close_wait_interval 10000

The command to set it to 10000 on Solaris 7 and later versions is:
ndd -set /dev/tcp tcp_time_wait_interval 10000

The default is 60000 on Solaris 10
To set it to 10000 and to hold the value after reboot:
touch /etc/rc2.d/S99networktuning
chmod 744 /etc/rc2.d/S99networktuning
ln -s /etc/rc2.d/S99networktuning /etc/init.d/network_ndd
echo "/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 10000" > /etc/init.d/network_ndd
/etc/rc2.d/S99networktuning  start
/usr/sbin/ndd -get /dev/tcp tcp_time_wait_interval
10000
 
The command to set it to 1000 on HP-UX 11 is:
ndd -set /dev/tcp tcp_time_wait_interval 10000

The "ndd" command makes the change immediately, without a need for a reboot.  This setting will go back to default after a reboot. To make it set to this value after each reboot, the command can be added to the appropriate TCP/IP startup script. On Solaris 7-9, this is /etc/rc2.d/S69inet or on HP-UX 11 see /etc/rc.config.d/nddconf for examples of how to set it.

To tune the tcp_close_wait_interval on AIX, adjust the following two parameters:

Parameter: tcp_keepidle
Purpose: Total length of time to keep an idle TCP connection alive
Values: Default: 14400 (half-seconds) = 2 hours, Range: any positive integer
Display: "# no -a" or "#no -o tcp_keepidle
Change: # no -o tcp_keepidle=New_value
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding command to /etc/rc.net

Parameter: tcp_keepintvl
Purpose: Interval between packets sent to validate the TCP connection
Values: 150 half-seconds, 75 seconds
Display: no -a or no -o tcp_keepintvl
Change: no -o tcp_keepintvl=New_value
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding command to /etc/rc.net
 

Terms of use for this information are found in Legal Notices.

Search

Survey

Did this article answer your question or resolve your issue?

No
Yes

Did this article save you the trouble of contacting technical support?

No
Yes

How can we make this article more helpful?

Email Address (Optional)