use new thread to handle requests (#1207)

This commit is contained in:
Alan Ren
2021-05-06 17:20:56 -07:00
committed by GitHub
parent 97d7fd1169
commit 27cb8f2f08

View File

@@ -427,8 +427,8 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
if (!ConnectionService.IsDbPool(connectionInfo.ConnectionDetails.DatabaseName)) if (!ConnectionService.IsDbPool(connectionInfo.ConnectionDetails.DatabaseName))
{ {
connectionInfo.ConnectionDetails.DatabaseName = connection.Database; connectionInfo.ConnectionDetails.DatabaseName = connection.Database;
} }
if (!string.IsNullOrEmpty(connectionInfo.ConnectionDetails.ConnectionString)) if (!string.IsNullOrEmpty(connectionInfo.ConnectionDetails.ConnectionString))
{ {
// If the connection was set up with a connection string, use the connection string to get the details // If the connection was set up with a connection string, use the connection string to get the details
@@ -477,7 +477,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
connectionInfo.MajorVersion = serverInfo.ServerMajorVersion; connectionInfo.MajorVersion = serverInfo.ServerMajorVersion;
connectionInfo.IsSqlDb = serverInfo.EngineEditionId == (int)DatabaseEngineEdition.SqlDatabase; connectionInfo.IsSqlDb = serverInfo.EngineEditionId == (int)DatabaseEngineEdition.SqlDatabase;
connectionInfo.IsSqlDW = (serverInfo.EngineEditionId == (int)DatabaseEngineEdition.SqlDataWarehouse); connectionInfo.IsSqlDW = (serverInfo.EngineEditionId == (int)DatabaseEngineEdition.SqlDataWarehouse);
connectionInfo.EngineEdition = (DatabaseEngineEdition) serverInfo.EngineEditionId; connectionInfo.EngineEdition = (DatabaseEngineEdition)serverInfo.EngineEditionId;
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -1048,21 +1048,24 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
/// <summary> /// <summary>
/// Handle requests to list databases on the current server /// Handle requests to list databases on the current server
/// </summary> /// </summary>
protected async Task HandleListDatabasesRequest( protected Task HandleListDatabasesRequest(
ListDatabasesParams listDatabasesParams, ListDatabasesParams listDatabasesParams,
RequestContext<ListDatabasesResponse> requestContext) RequestContext<ListDatabasesResponse> requestContext)
{ {
Logger.Write(TraceEventType.Verbose, "ListDatabasesRequest"); Task.Run(async () =>
try
{ {
ListDatabasesResponse result = ListDatabases(listDatabasesParams); Logger.Write(TraceEventType.Verbose, "ListDatabasesRequest");
await requestContext.SendResult(result); try
} {
catch (Exception ex) ListDatabasesResponse result = ListDatabases(listDatabasesParams);
{ await requestContext.SendResult(result);
await requestContext.SendError(ex.ToString()); }
} catch (Exception ex)
{
await requestContext.SendError(ex.ToString());
}
});
return Task.CompletedTask;
} }
/// <summary> /// <summary>