Developing for Splunk Enterprise

TCP : No buffer space available

Explorer

Hi,

Here is my problem. I've a java application using Spring Integration to send data to Splunk (with TCP).

inputs.conf :

[tcp://1234]
connection_host = dns
source = TracerSource
sourcetype = TracerSourceType
queueSize=1GB

spring-context.xml

...
< int-ip:tcp-connection-factory id="client"
    type="client" host="${tcp.host.name}" port="${tcp.port}" using-nio="true" using-direct-buffers="true" single-use="true" so-timeout="1000" />

< int-ip:tcp-outbound-channel-adapter 
    id="outboundClient" channel="jmsOutputChannel" connection-factory="client" />
...

Many times I've these error messages and the java application stops.

...
TcpSendingMessageHandler [ERROR] Error creating SocketWriter
java.net.SocketException: No buffer space available (maximum connections reached?): connect
    at sun.nio.ch.Net.connect(Native Method)
...
DefaultMessageListenerContainer [WARN] Execution of JMS message listener failed, and no ErrorHandler has been set.
org.springframework.integration.mapping.MessageMappingException: Failed to create connection

...

Do you have any explanation ? What is the best solution/configuration to manage many messages ? (1000 msgs/min - size of each msg : 1Ko to 10Ko)

Thanks in advance.

Tags (3)
0 Karma

Motivator

We had the same problem with Splunk itself filling up the TCP buffer. To fix, this we had to go into the process local to the machine Splunk was on and increase the memory allocation. Sadly, it didn't help a whole lot because the process is 32-bit and we could only allocate 1.5GB...

0 Karma