简体   繁体   中英

jedis connection exception: socket write error

Using jedis client to save data to redis localhost.

Once I connect to redisHost using jedis, I am not disconnecting as long as I get messages Is that an issue? Tried to change the timeout from default 2000 to 6000 but still the same error!

connecting and sending data:

if (jedis == null)
      jedis = new Jedis(redisHost);

if (!jedis.isConnected())
      jedis.connect();

if (jedis.isConnected()) 
      jedis.zadd("someKey", doubleTime, "someValue");

following is the stack trace of the error receiving:

    redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException: Software caused connection abort: socket write error
    at redis.clients.jedis.Protocol.sendCommand(Protocol.java:92)
    at redis.clients.jedis.Protocol.sendCommand(Protocol.java:72)
    at redis.clients.jedis.Connection.sendCommand(Connection.java:80)
    at redis.clients.jedis.BinaryClient.zadd(BinaryClient.java:387)
    at redis.clients.jedis.Client.zadd(Client.java:327)
    at redis.clients.jedis.Jedis.zadd(Jedis.java:1468)
    at com.comcast.xre.WebSocketServer.saveLogToDB(WebSocketServer.java:105)
    at com.comcast.xre.WebSocketServer.access$000(WebSocketServer.java:27)
    at com.comcast.xre.WebSocketServer$1$1.onFullTextMessage(WebSocketServer.java:69)
    at io.undertow.websockets.core.AbstractReceiveListener$2.complete(AbstractReceiveListener.java:138)
    at io.undertow.websockets.core.AbstractReceiveListener$2.complete(AbstractReceiveListener.java:134)
    at io.undertow.websockets.core.BufferedTextMessage.read(BufferedTextMessage.java:87)
    at io.undertow.websockets.core.AbstractReceiveListener.readBufferedText(AbstractReceiveListener.java:134)
    at io.undertow.websockets.core.AbstractReceiveListener.bufferFullMessage(AbstractReceiveListener.java:72)
    at io.undertow.websockets.core.AbstractReceiveListener.onText(AbstractReceiveListener.java:52)
    at io.undertow.websockets.core.AbstractReceiveListener.handleEvent(AbstractReceiveListener.java:26)
    at io.undertow.websockets.core.AbstractReceiveListener.handleEvent(AbstractReceiveListener.java:15)
    at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
    at io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.handleEvent(AbstractFramedChannel.java:632)
    at io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.handleEvent(AbstractFramedChannel.java:618)
    at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
    at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)
    at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:87)
    at org.xnio.nio.WorkerThread.run(WorkerThread.java:531)
Caused by: java.net.SocketException: Software caused connection abort: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
    at redis.clients.util.RedisOutputStream.flushBuffer(RedisOutputStream.java:31)
    at redis.clients.util.RedisOutputStream.write(RedisOutputStream.java:38)
    at redis.clients.jedis.Protocol.sendCommand(Protocol.java:78)
    ... 23 more

Issue was with Jedis connection. It's connected but after few messages, connection is broken. After each save to DB, I am disconnecting and removing the jedis client completely and creating a new client and connection. Looks awkward but it solves the issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM