Oracle Apps DBA

My photo
More than 5+ Years of IT Experience in administering Enterprise wide Multi Vendor UNIX Servers, Oracle Databases (8i to 11gR2), Middle-tiers, Applications and Clusters. I am a Sun Certified System Administrator (SCSA) for Solaris 10, oracle 10g database certified associate(OCA), Oracle 10g Database certified professional (OCP) and Oracle E-Business suite R12 certified professionl(OCP)

Oracle Database and Applications

Tuesday, 28 September 2010

Oracle Database tcp_ and udp_ New kernel parameters for Sun Solaris 10

There are some new kernel parameters needs to be configured in order to Install new patch set for 11gR2 (

Error message while running Installer:

PRVF-7543 : OS Kernel parameter “tcp_smallest_anon_port” does not have proper value on node “solaris1″ [Expected = "9000" ; Found = "32768"]
PRVF-7543 : OS Kernel parameter “tcp_largest_anon_port” does not have proper value on node “solaris1″ [Expected = "65500" ; Found = "65535"]
PRVF-7543 : OS Kernel parameter “udp_smallest_anon_port” does not have proper value on node “solaris1″ [Expected = "9000" ; Found = "32768"]
PRVF-7543 : OS Kernel parameter “udp_largest_anon_port” does not have proper value on node “solaris1″ [Expected = "65500" ; Found = "65535"]

The following are the list of parameters:

1) tcp_smallest_anon_port

2) tcp_largest_anon_port

3) udp_smallest_anon_port

4) udp_largest_anon_port

When i was trying to Install this new patchset, the result for pre-requisite check was failed because of these newly introduces kernel parameters.

These kernel parameters was not updated in Installation and upgrade guide for solaris at the time when i was installing:

Setting these kernel parameters:

1) To view the current value of these parameters, login as root user:

bash-3.00# ndd /dev/tcp tcp_smallest_anon_port tcp_largest_anon_port


bash-3.00# ndd /dev/udp udp_smallest_anon_port udp_largest_anon_port


The kernel parameters as expected by the Installer:

kernel parameter preset val expected

tcp_smallest_anon_port -- 32768 --> 9000

tcp_largest_anon_port -- 65535 --> 65500

udp_smallest_anon_port -- 32768 --> 9000

udp_largest_anon_port -- 65535 --> 65500

update these kernel parameters using following parameters:

bash-3.00# ndd -set /dev/tcp tcp_largest_anon_port 65535
bash-3.00# ndd -set /dev/udp udp_smallest_anon_port 9000
bash-3.00# ndd -set /dev/udp udp_largest_anon_port 65500
bash-3.00# ndd -set /dev/tcp tcp_smallest_anon_port 9000
bash-3.00# ndd -set /dev/tcp tcp_largest_anon_port 65500

Then verify the settings using:

bash-3.00# ndd /dev/tcp tcp_smallest_anon_port tcp_largest_anon_port

bash-3.00# ndd /dev/udp udp_smallest_anon_port udp_largest_anon_port

After setting these kernel parameters the pre-requisite check was successfull and Installation completed without any issue.

Happy reading.


Anonymous said...

While the setup may finish successfully should these settings be persisted across reboots?

Syed Zaheer said...

If you want to keep these settings permanent then keep it in a System startup scripts.

Anonymous said...

Excellent Syed.. indeed very helpful. Do you think having these ndd values NOT persistend across reboots create problems later on or is it sufficient to have them set just for installation?

Anonymous said...

The settings are not there to allow the install to complete, you can safely ignore them and the install will complete fine. The kernel settings are there to support the intended requirements of the database under heavy load. Your default settings may be fine for this but Oracle is now recommending a greater port range.

Anonymous said...

Thank you for the userfull info, it solved my 2 days pending work

Thrissukaran said...

1. As the root user, use a text editor to edit the /etc/inittab file and add the following statement before the line which executes sys.startd:

tm::sysinit:/usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 32776 > /dev/console
2. Save the changes and close the file.
3. Reboot the server for these settings to take effect.