2017-07-07 2 views
0

Ich habe einen Client-Prozess in Windows ausgeführt (Win 7/Win 2008 Server). Die Aufgabe besteht darin, Keepalive für einen der geöffneten Sockets zu aktivieren, um mit einem Server verbunden zu werden. Um diese Verbindung herzustellen, verwende ich Windows-API (Verbindung zum MSSQL-Server), von dem ich den Socket fd, den es erstellt hat, nicht abrufen konnte.So finden Sie Socket FDS von einem Prozess in Windows geöffnet

1) Was ist der Weg, um alle Buchsen FDS durch Windows-Prozess (nicht Python Verfahren, wie die binäre ist eine C++ basiert)

2) Gibt es eine Möglichkeit fd von der abzurufen Socket geöffnet abzurufen ist, durch das Windows-API SQLAllocHandle oder SQLDriverConnect

Dank

Antwort

0

Sie können nicht (AFAIK) und soll nicht (nicht unterstützt) versuchen, zu modifizieren, diese auf dem Client zurückgegeben Griff. SQL Server verfügt über eine serverseitige Konfigurationseinstellung, die diese steuert:

Keep Alive

Dieser Parameter (in Millisekunden) steuert, wie oft TCP zu überprüfen versucht, dass eine inaktive Verbindung noch intakt ist durch ein Keep Alive-Paket sendet . Der Standardwert ist 30000 Millisekunden.

https://technet.microsoft.com/en-us/library/ms190771(v=sql.105).aspx

+0

Danke. Ich kenne diesen Parameter auf der Serverseite, bin aber daran interessiert, auf der Client-Seite zu aktivieren. Was meinen Sie mit "nicht unterstützt"? Ist das, Keepalive auf Socket ändern wird nicht unterstützt nach dem Verbindungsaufbau in Windows? – JOE

+0

Es wird nicht unterstützt, den vom SQL Server-ODBC-Treiber verwendeten Socket direkt zu ändern, selbst wenn Sie das Handle finden könnten. –

Verwandte Themen