Only one usage of each socket address (protocol/network address/port) is normally permitted

Hello,

We have few services in DAX where we get whole lot of data through from the third party applications. The third party .NET application developers call tell me that at times the services time out and throw the errors like

“Only one usage of each socket address (protocol/network address/port) is normally permitted xx.x.xxx.xx:xx:xxx” and not exactly sure what might be causing it to fail or time out the DAX services on the AOS.

I am wondering if anybody has ran into this kind of issue and if so I would request to please provide some inputs and any potential fix for the issue would be helpful.

DAX version : 2012 CU3

Thank you,

Dave

Can you give us more information, please? What kind of service is it? Which protocol is used? What’s the exception type?

Hello Martin,

We have Custom services (AIF). For each service there is a DataContract class and a service class that expects the DataContract object as a parameter and then further process it and returns the success/failure messages back to the calling application. All our deployed services can be managed from the System Administration/Setup/Services and Application integration Farmework/Inbound ports. Here is the sample URI of service looks like
net.tcp://AOS_SERVICE_HOST/DynamicsAx/Services/

I am not sure of the exception type. I was told that, It happens intermittently once in a while when there is huge data is processed via services. Hope this helps for you to get an idea of our setup. Please let me know if need me to look into anything else and provide you an additional information.

Thank you,
Dave

Here is the complete exception that it throws at times:

Could not connect to net.tcp://XXXX:8201/DynamicsAx/Services/servicegroupName. The connection attempt lasted for a time span of 00:00:00.0040004. TCP error code 10048: Only one usage of each socket address (protocol/network address/port) is normally permitted xxxxxxxxx.

Inner Exception:

System.Net.Sockets.SocketException (0x80004005): Only one usage of each socket address (protocol/network address/port) is normally permitted XXXXXXXX at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) at System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout)

It likely means that you run of available ports. If you don’t expect thousands of concurrent connections, it seems that the client applications do something wrong. As the very first thing, review (let their developers review) that they create service clients through ChannelFactory (to reuse channels and related resources) and that resources are being released correctly. If you want a more detailed discussion, you should rather ask in a forum about WCF.