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.
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...