簡體   English   中英

jedis連接異常:套接字寫入錯誤

[英]jedis connection exception: socket write error

使用jedis客戶端將數據保存到Redis localhost。

一旦使用jedis連接到redisHost,只要收到消息,我就不會斷開連接。這是問題嗎? 嘗試將超時從默認的2000更改為6000但仍然是相同的錯誤!

連接和發送數據:

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

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

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

以下是錯誤接收的堆棧跟蹤:

    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

與Jedis的關系存在問題。 它已連接,但幾條消息后,連接已斷開。 每次保存到數據庫后,我將完全斷開並刪除jedis客戶端,並創建一個新的客戶端和連接。 看起來很尷尬,但是可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM