Ich habe eine Komponente eines Drittanbieters, die in einer bestimmten Situation versucht, zu viele UDP-Nachrichten an zu viele verschiedene Adressen zu senden. Dies ist ein Burst, der beim Starten der Software auftritt, und die Situation ist vorübergehend. Ich bin mir nicht sicher, ob es die schlichte Menge der Nachrichten ist oder die Tatsache, dass jede von ihnen an eine separate IP-Adresse geht.
Wie auch immer, das zugrunde liegende Protokoll oder die problematische Komponente zu ändern, ist keine Option, also suche ich nach einem Workaround. Der StackTrace sieht wie folgt aus:
java.io.IOException: No buffer space available
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:612)
Dieses Problem tritt (zumindest) mit den Java-Versionen 1.6.0_13 und 1.6.0_10 und den Linux-Versionen Ubuntu 9.04 und RHEL 4.6 auf.
Gibt es irgendwelche Java-Systemeigenschaften oder Linux-Konfigurationsoptimierungen, die helfen könnten?