SO_REUSEPORT feature support in JDK 9 for socket communication

Viswanathan, Sandhya sandhya.viswanathan at
Fri Oct 23 22:57:12 UTC 2015

Thanks for all your inputs. 

To start with, we will create a patch for JDK-6432031 based on JDK 9 and submit to both the core-libs-dev and net-dev mailing lists. 

We will include the SocketOption interface (getOption/setOption) also for this feature (we had that in our JDK 8 based prototype).

As most of the platforms support SO_REUSEPORT and this feature shows significant performance benefit, it would be worthwhile to give it a try.

There are other features in SocketOptions like SO_REUSEADDR which has the mechanism to handle if it is not supported by all existing platforms.
Excerpts from file java/net/ below:
     * Note: This functionality is not supported by all existing platforms,
     * so it is implementation specific whether this option will be ignored
     * or not. However, if it is not supported then
     * {@link #getReuseAddress()} will always return {@code false}.
     * <p>
     * When a {@code DatagramSocket} is created the initial setting
     * of {@code SO_REUSEADDR} is disabled.

I am hoping that we could do something similar for SO_REUSEPORT as well.

Best Regards,

-----Original Message-----
From: core-libs-dev [mailto:core-libs-dev-bounces at] On Behalf Of Mark Sheppard
Sent: Thursday, October 22, 2015 8:06 AM
To: Michael McMahon; Alan Bateman; Roger Riggs; OpenJDK Dev list
Cc: core-libs-dev at
Subject: Re: SO_REUSEPORT feature support in JDK 9 for socket communication

the following JBS item exists:

search of windows documentation suggests that SO_REUSEPORT is still not 
an option

man setsockopt on Solaris shows it as an option, but without precise 
description of semantics


On 22/10/2015 14:33, Michael McMahon wrote:
> On 22/10/15 14:24, Alan Bateman wrote:
>> On 22/10/2015 14:04, Roger Riggs wrote:
>>> Hi Sandhya,
>>> The folks on net-dev at will be interested too.
>> Yes, net-dev is the best list for this.
>> One other thing to mention is the SocketOption interface and the 
>> setOption/getOption methods. This allows for platform or JDK-specific 
>> specific socket options, it also allows it to be implemented by the 
>> NIO SocketChannel and friends.
>> -Alan
> and there is the API which extends this to the socket 
> types.
> I think a Java SE API would be fine if it is widely and consistently 
> implemented
> across all the reference platforms and if it does not cause 
> compatibility issues.
> If it only works on some platforms then maybe could be the 
> place for it.
> - Michael

More information about the core-libs-dev mailing list