mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-03-20 03:51:40 -04:00
Add support for clearing pooled connections (#24325)
This commit is contained in:
19
extensions/mssql/src/connection/commands.ts
Normal file
19
extensions/mssql/src/connection/commands.ts
Normal 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);
|
||||
}
|
||||
33
extensions/mssql/src/connection/connectionService.ts
Normal file
33
extensions/mssql/src/connection/connectionService.ts
Normal 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, {});
|
||||
}
|
||||
}
|
||||
6
extensions/mssql/src/connection/constants.ts
Normal file
6
extensions/mssql/src/connection/constants.ts
Normal 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';
|
||||
Reference in New Issue
Block a user