From 48d3abaab85d043f1e2e5c00c9004a1ddd7e4afa Mon Sep 17 00:00:00 2001 From: ascrutae Date: Thu, 25 Feb 2016 16:16:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DStorageChainController?= =?UTF-8?q?=E6=AD=BB=E5=BE=AA=E7=8E=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/cloud/skywalking/reciever/storage/Chain.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/storage/Chain.java b/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/storage/Chain.java index 0141e85e0..02a66e4b1 100644 --- a/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/storage/Chain.java +++ b/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/storage/Chain.java @@ -1,6 +1,8 @@ package com.ai.cloud.skywalking.reciever.storage; import com.ai.cloud.skywalking.protocol.Span; +import com.ai.cloud.skywalking.reciever.selfexamination.ServerHealthCollector; +import com.ai.cloud.skywalking.reciever.selfexamination.ServerHeathReading; import java.util.List; @@ -15,7 +17,15 @@ public class Chain { public void doChain(List spans) { if (index < chains.size()) { - chains.get(index++).doChain(spans, this); + while (true) { + try { + chains.get(index++).doChain(spans, this); + break; + } catch (Throwable e) { + ServerHealthCollector.getCurrentHeathReading("storage-chain").updateData(ServerHeathReading.ERROR, + "Failed to do chain action.Cause:" + e.getMessage()); + } + } } }