Unverified Commit 80925fb9 authored by 张亮's avatar 张亮 Committed by GitHub
Browse files

Merge pull request #1109 from dangdang-arch/dev

Release the channel when run TCL sql
parents a7b94cfe 1e7b72aa
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -166,6 +166,9 @@ public final class NettyBackendHandler extends AbstractBackendHandler {
                return new CommandResponsePackets(each);
            }
        }
        if (SQLType.TCL == sqlStatement.getType()) {
            channelRelease();
        }
        if (SQLType.DML == sqlStatement.getType()) {
            return mergeDML(headPackets);
        }
@@ -207,11 +210,7 @@ public final class NettyBackendHandler extends AbstractBackendHandler {
    @Override
    public boolean next() throws SQLException {
        if (null == mergedResult || !mergedResult.next()) {
            for (Entry<String, List<Channel>> entry : channelMap.entrySet()) {
                for (Channel each : entry.getValue()) {
                    BackendNettyClient.getInstance().getPoolMap().get(entry.getKey()).release(each);
                }
            }
            channelRelease();
            return false;
        }
        return true;
@@ -225,4 +224,12 @@ public final class NettyBackendHandler extends AbstractBackendHandler {
        }
        return new ResultPacket(++currentSequenceId, data, columnCount, Collections.<ColumnType>emptyList());
    }
    
    private void channelRelease() {
        for (Entry<String, List<Channel>> entry : channelMap.entrySet()) {
            for (Channel each : entry.getValue()) {
                BackendNettyClient.getInstance().getPoolMap().get(entry.getKey()).release(each);
            }
        }
    }
}