Add support for clearing pooled connections (#24325)

This commit is contained in:
Cheena Malhotra
2023-09-08 09:34:42 -07:00
committed by GitHub
parent a5d3833ffb
commit 5fdac2054d
8 changed files with 73 additions and 1 deletions

View File

@@ -0,0 +1,19 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { AppContext } from '../appContext';
import * as vscode from 'vscode';
import * as constants from './constants';
import { ConnectionService } from './connectionService';
export function registerConnectionCommands(appContext: AppContext) {
appContext.extensionContext.subscriptions.push(vscode.commands.registerCommand('mssql.clearPooledConnections', async () => {
await getConnectionService(appContext).clearPooledConnections();
}));
}
function getConnectionService(appContext: AppContext): ConnectionService {
return appContext.getService<ConnectionService>(constants.ConnectionService);
}

View File

@@ -0,0 +1,33 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as constants from './constants';
import * as contracts from '../contracts';
import { BaseService, ISqlOpsFeature, SqlOpsDataClient } from 'dataprotocol-client';
import { ClientCapabilities } from 'vscode-languageclient';
import { AppContext } from '../appContext';
export class ConnectionService extends BaseService {
public static asFeature(context: AppContext): ISqlOpsFeature {
return class extends ConnectionService {
constructor(client: SqlOpsDataClient) {
super(context, client);
}
fillClientCapabilities(_: ClientCapabilities): void { }
initialize(): void { }
};
}
private constructor(context: AppContext, client: SqlOpsDataClient) {
super(client);
context.registerService(constants.ConnectionService, this);
}
async clearPooledConnections(): Promise<void> {
return this.runWithErrorHandling(contracts.ClearPooledConnectionsRequest.type, {});
}
}

View File

@@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
export const ConnectionService = 'ConnectionService';