Close connection after backup execution (#449)

This commit is contained in:
Kate Shin
2017-08-31 11:00:02 -07:00
committed by GitHub
parent bebc1c1b33
commit 44d3e4b17e
3 changed files with 21 additions and 2 deletions

View File

@@ -308,8 +308,6 @@ namespace Microsoft.SqlTools.ServiceLayer.DisasterRecovery
}
}
}
}
catch(Exception)
{

View File

@@ -14,6 +14,7 @@ using Microsoft.SqlTools.ServiceLayer.TaskServices;
using System.Threading;
using Microsoft.SqlTools.ServiceLayer.DisasterRecovery.RestoreOperation;
using System.Globalization;
using Microsoft.SqlTools.ServiceLayer.Connection.Contracts;
namespace Microsoft.SqlTools.ServiceLayer.DisasterRecovery
{
@@ -281,6 +282,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DisasterRecovery
TaskMetadata metadata = TaskMetadata.Create(backupParams, SR.BackupTaskName, backupOperation, ConnectionServiceInstance);
sqlTask = SqlTaskManagerInstance.CreateAndRun<SqlTask>(metadata);
sqlTask.StatusChanged += CloseConnection;
}
else
{
@@ -352,6 +354,18 @@ namespace Microsoft.SqlTools.ServiceLayer.DisasterRecovery
return false;
}
private void CloseConnection(object sender, TaskEventArgs<SqlTaskStatus> e)
{
SqlTask sqlTask = e.SqlTask;
if (sqlTask != null && sqlTask.IsCompleted)
{
connectionService.Disconnect(new DisconnectParams()
{
OwnerUri = sqlTask.TaskMetadata.OwnerUri
});
}
}
private BackupOperation CreateBackupOperation(CDataContainer dataContainer, SqlConnection sqlConnection)
{
BackupOperation backupOperation = new BackupOperation();

View File

@@ -46,6 +46,11 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices
/// </summary>
public ITaskOperation TaskOperation { get; set; }
/// <summary>
/// Connection uri
/// </summary>
public string OwnerUri { get; set; }
/// <summary>
/// Creates task metadata given the request parameters
/// </summary>
@@ -84,6 +89,8 @@ namespace Microsoft.SqlTools.ServiceLayer.TaskServices
taskMetadata.TaskExecutionMode = scriptableRequestParams.TaskExecutionMode;
taskMetadata.TaskOperation = taskOperation;
taskMetadata.OwnerUri = requestParam.OwnerUri;
return taskMetadata;
}