You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/07/28 03:32:03 UTC
[iotdb] branch rel/0.13 updated: [To rel/0.13] [IOTDB-3943] Optimize session timeout feature (#6783)
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.13 by this push:
new a0ca9448be [To rel/0.13] [IOTDB-3943] Optimize session timeout feature (#6783)
a0ca9448be is described below
commit a0ca9448be3bb2a2c84463d416507ed132e8efec
Author: suchenglong <40...@qq.com>
AuthorDate: Thu Jul 28 11:31:58 2022 +0800
[To rel/0.13] [IOTDB-3943] Optimize session timeout feature (#6783)
Co-authored-by: Haonan <hh...@outlook.com>
---
.../test/java/org/apache/iotdb/jdbc/UtilsTest.java | 11 ++
.../db/query/control/SessionTimeoutManager.java | 7 +
.../iotdb/db/service/basic/ServiceProvider.java | 18 +-
.../service/thrift/impl/InfluxDBServiceImpl.java | 26 ++-
.../db/service/thrift/impl/TSServiceImpl.java | 195 ++++++++++++---------
.../main/java/org/apache/iotdb/rpc/RpcUtils.java | 4 +
.../apache/iotdb/rpc/SessionTimeoutException.java | 43 +++++
.../java/org/apache/iotdb/rpc/TSStatusCode.java | 1 +
.../apache/iotdb/session/SessionConnection.java | 161 ++++++++++-------
9 files changed, 311 insertions(+), 155 deletions(-)
diff --git a/jdbc/src/test/java/org/apache/iotdb/jdbc/UtilsTest.java b/jdbc/src/test/java/org/apache/iotdb/jdbc/UtilsTest.java
index a8ec17502d..1ab1a95d04 100644
--- a/jdbc/src/test/java/org/apache/iotdb/jdbc/UtilsTest.java
+++ b/jdbc/src/test/java/org/apache/iotdb/jdbc/UtilsTest.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.jdbc;
import org.apache.iotdb.rpc.RpcUtils;
+import org.apache.iotdb.rpc.SessionTimeoutException;
import org.apache.iotdb.rpc.TSStatusCode;
import org.apache.iotdb.service.rpc.thrift.TSStatus;
@@ -118,6 +119,16 @@ public class UtilsTest {
fail();
}
+ try {
+ TSStatus errorStatus = new TSStatus(TSStatusCode.SESSION_TIMEOUT.getStatusCode());
+ RpcUtils.verifySuccess(errorStatus);
+ fail();
+ } catch (SessionTimeoutException e) {
+ assertTrue(true);
+ } catch (Exception e) {
+ fail();
+ }
+
try {
TSStatus errorStatus = new TSStatus(TSStatusCode.INTERNAL_SERVER_ERROR.getStatusCode());
RpcUtils.verifySuccess(errorStatus);
diff --git a/server/src/main/java/org/apache/iotdb/db/query/control/SessionTimeoutManager.java b/server/src/main/java/org/apache/iotdb/db/query/control/SessionTimeoutManager.java
index 8e907eeded..1f179c5e40 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/control/SessionTimeoutManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/control/SessionTimeoutManager.java
@@ -106,6 +106,13 @@ public class SessionTimeoutManager {
return SessionTimeoutManagerHelper.INSTANCE;
}
+ public boolean isSessionAlive(long sessionId) {
+ if (SESSION_TIMEOUT == 0) {
+ return true;
+ }
+ return sessionIdToLastActiveTime.containsKey(sessionId);
+ }
+
private static class SessionTimeoutManagerHelper {
private static final SessionTimeoutManager INSTANCE = new SessionTimeoutManager();
diff --git a/server/src/main/java/org/apache/iotdb/db/service/basic/ServiceProvider.java b/server/src/main/java/org/apache/iotdb/db/service/basic/ServiceProvider.java
index 987acbc6d7..b3e20c32f9 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/basic/ServiceProvider.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/basic/ServiceProvider.java
@@ -109,12 +109,26 @@ public abstract class ServiceProvider {
boolean isLoggedIn = currSessionId != null && currSessionId == sessionId;
if (!isLoggedIn) {
LOGGER.info("{}: Not login. ", IoTDBConstant.GLOBAL_DB_NAME);
+ return false;
} else {
SessionTimeoutManager.getInstance().refresh(sessionId);
}
return isLoggedIn;
}
+ /**
+ * Check whether current session is timeout.
+ *
+ * @param sessionId Session id.
+ * @return true: If session timeout; false: If not session timeout.
+ */
+ public boolean checkSessionTimeout(long sessionId) {
+ if (!SessionTimeoutManager.getInstance().isSessionAlive(sessionId)) {
+ return true;
+ }
+ return false;
+ }
+
public boolean checkAuthorization(PhysicalPlan plan, String username) throws AuthException {
if (!plan.isAuthenticationRequired()) {
return true;
@@ -230,7 +244,9 @@ public abstract class ServiceProvider {
TSStatusCode.NOT_LOGIN_ERROR,
"Log in failed. Either you are not authorized or the session has timed out.");
}
-
+ if (checkSessionTimeout(sessionId)) {
+ return RpcUtils.getStatus(TSStatusCode.SESSION_TIMEOUT, "Session timeout");
+ }
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"{}: receive close operation from Session {}",
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/InfluxDBServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/InfluxDBServiceImpl.java
index 9b97cf61f9..7febf56420 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/InfluxDBServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/InfluxDBServiceImpl.java
@@ -86,10 +86,10 @@ public class InfluxDBServiceImpl implements InfluxDBService.Iface {
@Override
public TSStatus writePoints(TSWritePointsReq req) {
- if (!serviceProvider.checkLogin(req.sessionId)) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.sessionId);
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
List<TSStatus> tsStatusList = new ArrayList<>();
int executeCode = TSStatusCode.SUCCESS_STATUS.getStatusCode();
for (Point point :
@@ -114,10 +114,26 @@ public class InfluxDBServiceImpl implements InfluxDBService.Iface {
return new TSStatus().setCode(executeCode).setSubStatus(tsStatusList);
}
+ private boolean isStatusNotSuccess(TSStatus tsStatus) {
+ return tsStatus.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode();
+ }
+
+ private TSStatus checkLoginStatus(long sessionId) {
+ if (!serviceProvider.checkLogin(sessionId)) {
+ return getNotLoggedInStatus();
+ }
+ if (serviceProvider.checkSessionTimeout(sessionId)) {
+ return RpcUtils.getInfluxDBStatus(
+ TSStatusCode.SESSION_TIMEOUT.getStatusCode(), "Session timeout");
+ }
+ return RpcUtils.getInfluxDBStatus(TSStatusCode.SUCCESS_STATUS);
+ }
+
@Override
public TSStatus createDatabase(TSCreateDatabaseReq req) throws TException {
- if (!serviceProvider.checkLogin(req.sessionId)) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.sessionId);
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
try {
SetStorageGroupPlan setStorageGroupPlan =
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
index 44a911f6cb..534ac9915b 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
@@ -359,12 +359,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSFetchMetadataResp fetchMetadata(TSFetchMetadataReq req) {
TSFetchMetadataResp resp = new TSFetchMetadataResp();
-
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return resp.setStatus(getNotLoggedInStatus());
+ TSStatus status = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(status)) {
+ return resp.setStatus(status);
}
-
- TSStatus status;
try {
switch (req.getType()) {
case "METADATA_IN_JSON":
@@ -506,8 +504,9 @@ public class TSServiceImpl implements TSIService.Iface {
long t1 = System.currentTimeMillis();
List<TSStatus> result = new ArrayList<>();
boolean isAllSuccessful = true;
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
InsertRowsPlan insertRowsPlan;
@@ -612,8 +611,9 @@ public class TSServiceImpl implements TSIService.Iface {
public TSExecuteStatementResp executeStatement(TSExecuteStatementReq req) {
String statement = req.getStatement();
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return RpcUtils.getTSExecuteStatementResp(getNotLoggedInStatus());
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return RpcUtils.getTSExecuteStatementResp(loginStatus);
}
long startTime = System.currentTimeMillis();
@@ -650,10 +650,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSExecuteStatementResp executeQueryStatement(TSExecuteStatementReq req) {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return RpcUtils.getTSExecuteStatementResp(getNotLoggedInStatus());
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return RpcUtils.getTSExecuteStatementResp(loginStatus);
}
-
long startTime = System.currentTimeMillis();
String statement = req.getStatement();
PhysicalPlan physicalPlan =
@@ -686,10 +686,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSExecuteStatementResp executeRawDataQuery(TSRawDataQueryReq req) {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return RpcUtils.getTSExecuteStatementResp(getNotLoggedInStatus());
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return RpcUtils.getTSExecuteStatementResp(loginStatus);
}
-
long startTime = System.currentTimeMillis();
PhysicalPlan physicalPlan =
serviceProvider
@@ -732,10 +732,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSExecuteStatementResp executeLastDataQuery(TSLastDataQueryReq req) {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return RpcUtils.getTSExecuteStatementResp(getNotLoggedInStatus());
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return RpcUtils.getTSExecuteStatementResp(loginStatus);
}
-
long startTime = System.currentTimeMillis();
PhysicalPlan physicalPlan =
serviceProvider
@@ -962,7 +962,7 @@ public class TSServiceImpl implements TSIService.Iface {
continue;
}
TSStatus executionStatus = insertTabletsInternally(insertTabletPlans, sessionId);
- if (executionStatus.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()
+ if (isStatusNotSuccess(executionStatus)
&& executionStatus.getCode() != TSStatusCode.NEED_REDIRECTION.getStatusCode()) {
return RpcUtils.getTSExecuteStatementResp(executionStatus).setQueryId(queryId);
}
@@ -1000,10 +1000,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSFetchResultsResp fetchResults(TSFetchResultsReq req) {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return RpcUtils.getTSFetchResultsResp(getNotLoggedInStatus());
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return RpcUtils.getTSFetchResultsResp(loginStatus);
}
-
if (!SESSION_MANAGER.hasDataset(req.queryId)) {
return RpcUtils.getTSFetchResultsResp(
RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR, "Has not executed query"));
@@ -1066,10 +1066,10 @@ public class TSServiceImpl implements TSIService.Iface {
/** update statement can be: 1. select-into statement 2. non-query statement */
@Override
public TSExecuteStatementResp executeUpdateStatement(TSExecuteStatementReq req) {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return RpcUtils.getTSExecuteStatementResp(getNotLoggedInStatus());
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return RpcUtils.getTSExecuteStatementResp(loginStatus);
}
-
try {
PhysicalPlan physicalPlan =
serviceProvider
@@ -1186,10 +1186,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus insertRecords(TSInsertRecordsReq req) {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session {} insertRecords, first device {}, first time {}",
@@ -1235,6 +1235,22 @@ public class TSServiceImpl implements TSIService.Iface {
allCheckSuccess, tsStatus, insertRowsPlan.getResults(), req.prefixPaths.size());
}
+ /**
+ * Checking the Login Status.
+ *
+ * @param sessionId Session id.
+ * @return When not login or session timeout, will return error status.
+ */
+ private TSStatus checkLoginStatus(long sessionId) {
+ if (!serviceProvider.checkLogin(sessionId)) {
+ return getNotLoggedInStatus();
+ }
+ if (serviceProvider.checkSessionTimeout(sessionId)) {
+ return getSessionTimeoutStatus();
+ }
+ return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
+ }
+
private TSStatus judgeFinalTsStatus(
boolean allCheckSuccess,
TSStatus executeTsStatus,
@@ -1258,10 +1274,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus insertRecordsOfOneDevice(TSInsertRecordsOfOneDeviceReq req) {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session {} insertRecords, device {}, first time {}",
@@ -1304,10 +1320,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus insertStringRecordsOfOneDevice(TSInsertStringRecordsOfOneDeviceReq req) {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session {} insertRecords, device {}, first time {}",
@@ -1362,10 +1378,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus insertStringRecords(TSInsertStringRecordsReq req) {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session {} insertRecords, first device {}, first time {}",
@@ -1476,10 +1492,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus insertRecord(TSInsertRecordReq req) {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
AUDIT_LOGGER.debug(
"Session {} insertRecord, device {}, time {}",
SESSION_MANAGER.getCurrSessionId(),
@@ -1511,10 +1527,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus insertStringRecord(TSInsertStringRecordReq req) {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
AUDIT_LOGGER.debug(
"Session {} insertRecord, device {}, time {}",
SESSION_MANAGER.getCurrSessionId(),
@@ -1547,10 +1563,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus deleteData(TSDeleteDataReq req) {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
DeletePlan plan = new DeletePlan();
plan.setDeleteStartTime(req.getStartTime());
plan.setDeleteEndTime(req.getEndTime());
@@ -1574,10 +1590,10 @@ public class TSServiceImpl implements TSIService.Iface {
public TSStatus insertTablet(TSInsertTabletReq req) {
long t1 = System.currentTimeMillis();
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
InsertTabletPlan insertTabletPlan =
new InsertTabletPlan(new PartialPath(req.getPrefixPath()), req.measurements);
insertTabletPlan.setTimes(QueryDataSetUtils.readTimesFromBuffer(req.timestamps, req.size));
@@ -1610,10 +1626,10 @@ public class TSServiceImpl implements TSIService.Iface {
public TSStatus insertTablets(TSInsertTabletsReq req) {
long t1 = System.currentTimeMillis();
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
return insertTabletsInternally(req);
} catch (IoTDBException e) {
return onIoTDBException(e, OperationType.INSERT_TABLETS, e.getErrorCode());
@@ -1670,8 +1686,9 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus setStorageGroup(long sessionId, String storageGroup) {
try {
- if (!serviceProvider.checkLogin(sessionId)) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(sessionId);
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
SetStorageGroupPlan plan = new SetStorageGroupPlan(new PartialPath(storageGroup));
@@ -1689,8 +1706,9 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus deleteStorageGroups(long sessionId, List<String> storageGroups) {
try {
- if (!serviceProvider.checkLogin(sessionId)) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(sessionId);
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
List<PartialPath> storageGroupList = new ArrayList<>();
@@ -1711,10 +1729,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus createTimeseries(TSCreateTimeseriesReq req) {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session-{} create timeseries {}", SESSION_MANAGER.getCurrSessionId(), req.getPath());
@@ -1743,8 +1761,9 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus createAlignedTimeseries(TSCreateAlignedTimeseriesReq req) {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
// if measurements.size() == 1, convert to create timeseries
@@ -1801,10 +1820,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus createMultiTimeseries(TSCreateMultiTimeseriesReq req) {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session-{} create {} timeseries, the first is {}",
@@ -1888,8 +1907,9 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus deleteTimeseries(long sessionId, List<String> paths) {
try {
- if (!serviceProvider.checkLogin(sessionId)) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(sessionId);
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
List<PartialPath> pathList = new ArrayList<>();
@@ -1915,10 +1935,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus createSchemaTemplate(TSCreateSchemaTemplateReq req) throws TException {
try {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session-{} create schema template {}",
@@ -2019,10 +2039,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus setSchemaTemplate(TSSetSchemaTemplateReq req) throws TException {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session-{} set device template {}.{}",
@@ -2042,10 +2062,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus unsetSchemaTemplate(TSUnsetSchemaTemplateReq req) throws TException {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session-{} unset schema template {}.{}",
@@ -2066,8 +2086,9 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus unsetUsingTemplate(long sessionId, String templateName, String prefixPath)
throws TException {
- if (!serviceProvider.checkLogin(sessionId)) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(sessionId);
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
if (AUDIT_LOGGER.isDebugEnabled()) {
@@ -2090,10 +2111,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus setUsingTemplate(TSSetUsingTemplateReq req) throws TException {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session-{} create timeseries of schema template on path {}",
@@ -2112,10 +2133,10 @@ public class TSServiceImpl implements TSIService.Iface {
@Override
public TSStatus dropSchemaTemplate(TSDropSchemaTemplateReq req) throws TException {
- if (!serviceProvider.checkLogin(req.getSessionId())) {
- return getNotLoggedInStatus();
+ TSStatus loginStatus = checkLoginStatus(req.getSessionId());
+ if (isStatusNotSuccess(loginStatus)) {
+ return loginStatus;
}
-
if (AUDIT_LOGGER.isDebugEnabled()) {
AUDIT_LOGGER.debug(
"Session-{} drop schema template {}.",
@@ -2128,6 +2149,14 @@ public class TSServiceImpl implements TSIService.Iface {
return status != null ? status : executeNonQueryPlan(plan);
}
+ private boolean isStatusNotSuccess(TSStatus tsStatus) {
+ return tsStatus.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode();
+ }
+
+ private TSStatus getSessionTimeoutStatus() {
+ return RpcUtils.getStatus(TSStatusCode.SESSION_TIMEOUT, "Session timeout");
+ }
+
@Override
public TSStatus executeOperationSync(TSOperationSyncWriteReq req) {
PhysicalPlan physicalPlan;
diff --git a/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java b/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
index b2943259d3..a43cf353d9 100644
--- a/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
+++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
@@ -90,6 +90,10 @@ public class RpcUtils {
if (status.getCode() == TSStatusCode.NEED_REDIRECTION.getStatusCode()) {
return;
}
+ if (status.getCode() == TSStatusCode.SESSION_TIMEOUT.getStatusCode()) {
+ throw new SessionTimeoutException(status);
+ }
+
if (status.code != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
throw new StatementExecutionException(status);
}
diff --git a/service-rpc/src/main/java/org/apache/iotdb/rpc/SessionTimeoutException.java b/service-rpc/src/main/java/org/apache/iotdb/rpc/SessionTimeoutException.java
new file mode 100644
index 0000000000..8c25d8bed7
--- /dev/null
+++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/SessionTimeoutException.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.rpc;
+
+import org.apache.iotdb.service.rpc.thrift.TSStatus;
+
+public class SessionTimeoutException extends StatementExecutionException {
+ public SessionTimeoutException(TSStatus status) {
+ super(status);
+ }
+
+ public SessionTimeoutException(org.apache.iotdb.protocol.influxdb.rpc.thrift.TSStatus status) {
+ super(status);
+ }
+
+ public SessionTimeoutException(String reason) {
+ super(reason);
+ }
+
+ public SessionTimeoutException(Throwable cause) {
+ super(cause);
+ }
+
+ public SessionTimeoutException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
diff --git a/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java b/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
index ebc13545e9..0de8ca7779 100644
--- a/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
+++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
@@ -74,6 +74,7 @@ public enum TSStatusCode {
WRITE_PROCESS_ERROR(412),
WRITE_PROCESS_REJECT(413),
QUERY_ID_NOT_EXIST(414),
+ SESSION_TIMEOUT(415),
UNSUPPORTED_INDEX_FUNC_ERROR(421),
UNSUPPORTED_INDEX_TYPE_ERROR(422),
diff --git a/session/src/main/java/org/apache/iotdb/session/SessionConnection.java b/session/src/main/java/org/apache/iotdb/session/SessionConnection.java
index 5bfe101e69..06a960b21a 100644
--- a/session/src/main/java/org/apache/iotdb/session/SessionConnection.java
+++ b/session/src/main/java/org/apache/iotdb/session/SessionConnection.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.RedirectException;
import org.apache.iotdb.rpc.RpcTransportFactory;
import org.apache.iotdb.rpc.RpcUtils;
+import org.apache.iotdb.rpc.SessionTimeoutException;
import org.apache.iotdb.rpc.StatementExecutionException;
import org.apache.iotdb.service.rpc.thrift.EndPoint;
import org.apache.iotdb.service.rpc.thrift.TSAppendSchemaTemplateReq;
@@ -231,11 +232,11 @@ public class SessionConnection {
protected void setStorageGroup(String storageGroup)
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
try {
- RpcUtils.verifySuccessWithRedirection(client.setStorageGroup(sessionId, storageGroup));
+ verifySuccessWithRedirectionWrapper(client.setStorageGroup(sessionId, storageGroup));
} catch (TException e) {
if (reconnect()) {
try {
- RpcUtils.verifySuccess(client.setStorageGroup(sessionId, storageGroup));
+ verifySuccessWrapper(client.setStorageGroup(sessionId, storageGroup));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -248,11 +249,11 @@ public class SessionConnection {
protected void deleteStorageGroups(List<String> storageGroups)
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
try {
- RpcUtils.verifySuccessWithRedirection(client.deleteStorageGroups(sessionId, storageGroups));
+ verifySuccessWithRedirectionWrapper(client.deleteStorageGroups(sessionId, storageGroups));
} catch (TException e) {
if (reconnect()) {
try {
- RpcUtils.verifySuccess(client.deleteStorageGroups(sessionId, storageGroups));
+ verifySuccessWrapper(client.deleteStorageGroups(sessionId, storageGroups));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -266,12 +267,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.createTimeseries(request));
+ verifySuccessWrapper(client.createTimeseries(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.createTimeseries(request));
+ verifySuccessWrapper(client.createTimeseries(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -285,12 +286,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.createAlignedTimeseries(request));
+ verifySuccessWrapper(client.createAlignedTimeseries(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.createAlignedTimeseries(request));
+ verifySuccessWrapper(client.createAlignedTimeseries(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -304,12 +305,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.createMultiTimeseries(request));
+ verifySuccessWrapper(client.createMultiTimeseries(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.createMultiTimeseries(request));
+ verifySuccessWrapper(client.createMultiTimeseries(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -345,7 +346,7 @@ public class SessionConnection {
try {
execReq.setEnableRedirectQuery(enableRedirect);
execResp = client.executeQueryStatement(execReq);
- RpcUtils.verifySuccessWithRedirection(execResp.getStatus());
+ verifySuccessWithRedirectionWrapper(execResp.getStatus());
} catch (TException e) {
if (reconnect()) {
try {
@@ -381,13 +382,13 @@ public class SessionConnection {
try {
execReq.setEnableRedirectQuery(enableRedirect);
TSExecuteStatementResp execResp = client.executeUpdateStatement(execReq);
- RpcUtils.verifySuccess(execResp.getStatus());
+ verifySuccessWrapper(execResp.getStatus());
} catch (TException e) {
if (reconnect()) {
try {
execReq.setSessionId(sessionId);
execReq.setStatementId(statementId);
- RpcUtils.verifySuccess(client.executeUpdateStatement(execReq).status);
+ verifySuccessWrapper(client.executeUpdateStatement(execReq).status);
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -406,7 +407,7 @@ public class SessionConnection {
try {
execReq.setEnableRedirectQuery(enableRedirect);
execResp = client.executeRawDataQuery(execReq);
- RpcUtils.verifySuccessWithRedirection(execResp.getStatus());
+ verifySuccessWithRedirectionWrapper(execResp.getStatus());
} catch (TException e) {
if (reconnect()) {
try {
@@ -444,7 +445,7 @@ public class SessionConnection {
TSExecuteStatementResp tsExecuteStatementResp;
try {
tsExecuteStatementResp = client.executeLastDataQuery(tsLastDataQueryReq);
- RpcUtils.verifySuccessWithRedirection(tsExecuteStatementResp.getStatus());
+ verifySuccessWithRedirectionWrapper(tsExecuteStatementResp.getStatus());
} catch (TException e) {
if (reconnect()) {
try {
@@ -477,12 +478,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccessWithRedirection(client.insertRecord(request));
+ verifySuccessWithRedirectionWrapper(client.insertRecord(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.insertRecord(request));
+ verifySuccessWrapper(client.insertRecord(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -492,16 +493,44 @@ public class SessionConnection {
}
}
+ private void verifySuccessWrapper(TSStatus tsStatus)
+ throws StatementExecutionException, TException {
+ try {
+ RpcUtils.verifySuccess(tsStatus);
+ } catch (SessionTimeoutException e) {
+ throw new TException(e);
+ }
+ }
+
+ private void verifySuccessWithRedirectionWrapper(TSStatus tsStatus)
+ throws StatementExecutionException, RedirectException, TException {
+ try {
+ RpcUtils.verifySuccessWithRedirection(tsStatus);
+ } catch (SessionTimeoutException e) {
+ throw new TException(e);
+ }
+ }
+
+ private void verifySuccessWithRedirectionForMultiDevicesWrapper(
+ TSStatus tsStatus, List<String> prefixPaths)
+ throws StatementExecutionException, RedirectException, TException {
+ try {
+ RpcUtils.verifySuccessWithRedirectionForMultiDevices(tsStatus, prefixPaths);
+ } catch (SessionTimeoutException e) {
+ throw new TException(e);
+ }
+ }
+
protected void insertRecord(TSInsertStringRecordReq request)
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccessWithRedirection(client.insertStringRecord(request));
+ verifySuccessWithRedirectionWrapper(client.insertStringRecord(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.insertStringRecord(request));
+ verifySuccessWrapper(client.insertStringRecord(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -515,13 +544,13 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccessWithRedirectionForMultiDevices(
+ verifySuccessWithRedirectionForMultiDevicesWrapper(
client.insertRecords(request), request.getPrefixPaths());
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.insertRecords(request));
+ verifySuccessWrapper(client.insertRecords(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -535,13 +564,13 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccessWithRedirectionForMultiDevices(
+ verifySuccessWithRedirectionForMultiDevicesWrapper(
client.insertStringRecords(request), request.getPrefixPaths());
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.insertStringRecords(request));
+ verifySuccessWrapper(client.insertStringRecords(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -555,12 +584,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccessWithRedirection(client.insertRecordsOfOneDevice(request));
+ verifySuccessWithRedirectionWrapper(client.insertRecordsOfOneDevice(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.insertRecordsOfOneDevice(request));
+ verifySuccessWrapper(client.insertRecordsOfOneDevice(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -574,12 +603,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccessWithRedirection(client.insertStringRecordsOfOneDevice(request));
+ verifySuccessWithRedirectionWrapper(client.insertStringRecordsOfOneDevice(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.insertStringRecordsOfOneDevice(request));
+ verifySuccessWrapper(client.insertStringRecordsOfOneDevice(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -593,12 +622,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccessWithRedirection(client.insertTablet(request));
+ verifySuccessWithRedirectionWrapper(client.insertTablet(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.insertTablet(request));
+ verifySuccessWrapper(client.insertTablet(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -612,13 +641,13 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccessWithRedirectionForMultiDevices(
+ verifySuccessWithRedirectionForMultiDevicesWrapper(
client.insertTablets(request), request.getPrefixPaths());
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.insertTablets(request));
+ verifySuccessWrapper(client.insertTablets(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -631,11 +660,11 @@ public class SessionConnection {
protected void deleteTimeseries(List<String> paths)
throws IoTDBConnectionException, StatementExecutionException {
try {
- RpcUtils.verifySuccess(client.deleteTimeseries(sessionId, paths));
+ verifySuccessWrapper(client.deleteTimeseries(sessionId, paths));
} catch (TException e) {
if (reconnect()) {
try {
- RpcUtils.verifySuccess(client.deleteTimeseries(sessionId, paths));
+ verifySuccessWrapper(client.deleteTimeseries(sessionId, paths));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -649,12 +678,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.deleteData(request));
+ verifySuccessWrapper(client.deleteData(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.deleteData(request));
+ verifySuccessWrapper(client.deleteData(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -668,12 +697,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.testInsertStringRecord(request));
+ verifySuccessWrapper(client.testInsertStringRecord(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.testInsertStringRecord(request));
+ verifySuccessWrapper(client.testInsertStringRecord(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -687,12 +716,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.testInsertRecord(request));
+ verifySuccessWrapper(client.testInsertRecord(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.testInsertRecord(request));
+ verifySuccessWrapper(client.testInsertRecord(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -706,12 +735,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.testInsertStringRecords(request));
+ verifySuccessWrapper(client.testInsertStringRecords(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.testInsertStringRecords(request));
+ verifySuccessWrapper(client.testInsertStringRecords(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -725,12 +754,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.testInsertRecords(request));
+ verifySuccessWrapper(client.testInsertRecords(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.testInsertRecords(request));
+ verifySuccessWrapper(client.testInsertRecords(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -744,12 +773,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.testInsertTablet(request));
+ verifySuccessWrapper(client.testInsertTablet(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.testInsertTablet(request));
+ verifySuccessWrapper(client.testInsertTablet(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -763,12 +792,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.testInsertTablets(request));
+ verifySuccessWrapper(client.testInsertTablets(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.testInsertTablets(request));
+ verifySuccessWrapper(client.testInsertTablets(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -817,12 +846,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.createSchemaTemplate(request));
+ verifySuccessWrapper(client.createSchemaTemplate(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.createSchemaTemplate(request));
+ verifySuccessWrapper(client.createSchemaTemplate(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -836,12 +865,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.appendSchemaTemplate(request));
+ verifySuccessWrapper(client.appendSchemaTemplate(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.appendSchemaTemplate(request));
+ verifySuccessWrapper(client.appendSchemaTemplate(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -855,12 +884,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.pruneSchemaTemplate(request));
+ verifySuccessWrapper(client.pruneSchemaTemplate(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.pruneSchemaTemplate(request));
+ verifySuccessWrapper(client.pruneSchemaTemplate(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -875,7 +904,7 @@ public class SessionConnection {
TSQueryTemplateResp execResp;
try {
execResp = client.querySchemaTemplate(req);
- RpcUtils.verifySuccess(execResp.getStatus());
+ verifySuccessWrapper(execResp.getStatus());
} catch (TException e) {
if (reconnect()) {
try {
@@ -896,12 +925,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.setSchemaTemplate(request));
+ verifySuccessWrapper(client.setSchemaTemplate(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.setSchemaTemplate(request));
+ verifySuccessWrapper(client.setSchemaTemplate(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -915,12 +944,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.unsetSchemaTemplate(request));
+ verifySuccessWrapper(client.unsetSchemaTemplate(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.unsetSchemaTemplate(request));
+ verifySuccessWrapper(client.unsetSchemaTemplate(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -934,12 +963,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.setUsingTemplate(request));
+ verifySuccessWrapper(client.setUsingTemplate(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.setUsingTemplate(request));
+ verifySuccessWrapper(client.setUsingTemplate(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -952,11 +981,11 @@ public class SessionConnection {
protected void deactivateTemplate(String tName, String pPath)
throws IoTDBConnectionException, StatementExecutionException {
try {
- RpcUtils.verifySuccess(client.unsetUsingTemplate(sessionId, tName, pPath));
+ verifySuccessWrapper(client.unsetUsingTemplate(sessionId, tName, pPath));
} catch (TException e) {
if (reconnect()) {
try {
- RpcUtils.verifySuccess(client.unsetUsingTemplate(sessionId, tName, pPath));
+ verifySuccessWrapper(client.unsetUsingTemplate(sessionId, tName, pPath));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -970,12 +999,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccess(client.dropSchemaTemplate(request));
+ verifySuccessWrapper(client.dropSchemaTemplate(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.dropSchemaTemplate(request));
+ verifySuccessWrapper(client.dropSchemaTemplate(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}
@@ -989,12 +1018,12 @@ public class SessionConnection {
throws IoTDBConnectionException, StatementExecutionException, RedirectException {
request.setSessionId(sessionId);
try {
- RpcUtils.verifySuccessWithRedirection(client.executeOperationSync(request));
+ verifySuccessWithRedirectionWrapper(client.executeOperationSync(request));
} catch (TException e) {
if (reconnect()) {
try {
request.setSessionId(sessionId);
- RpcUtils.verifySuccess(client.executeOperationSync(request));
+ verifySuccessWrapper(client.executeOperationSync(request));
} catch (TException tException) {
throw new IoTDBConnectionException(tException);
}