Distributed Tuning Interface のリファレンス : PvDisconnectSQLConnection()
 
このページをシェアする                  
PvDisconnectSQLConnection()
SQL の接続 ID を渡すことによって、アクティブな SQL 接続の切断を試みます。有効な接続 ID を取得するには、PvGetSQLConnectionsData および PvSQLConnectionInfo 関数を使用します。
メモ:SQL 接続ごとに MicroKernel エンジン接続も確立しています。これらの接続を切断するには PvDisconnectMKDEClient を使用します。
ヘッダー ファイル:monitor.h(ヘッダー ファイルも参照)
関数が最初に利用可能になるライブラリ:w3dbav75.dll(Windows)、libpsqldti.so(Linux)、libpsqldti.dylib(macOS)(リンク ライブラリも参照)
構文
BTI_SINT PvDisconnectSQLConnection(
   BTI_LONG           hConnection,
   PVSQLCONNID*       pSQLConnId);
引数
 
In
hConnection
切断される SQL 接続を含むサーバー接続ハンドル。サーバー接続ハンドルは PvConnectServer() 関数によって取得されます。
In
pSQLConnId
SQL 接続を識別するための PVSQLCONNID 構造体のアドレス。SQL 接続は PvGetSQLConnectionsData() 関数によって取得されます。
戻り値
 
P_OK
操作は成功しました。
P_E_INVALID_HANDLE
接続ハンドルが無効です。
P_E_DATA_UNAVAILABLE
アクティブなクライアントに関連するデータがありません。
P_E_NULL_PTR
ヌル ポインターによる呼び出しです。
P_E_INVALID_CLIENT
クライアント ID が無効です。
P_E_FAIL
名前付きサーバーからの切断に失敗しました。
BTI_SINT status = 0;
PVSQLCONNINFO connectionInfo;
PVSQLCONNID   connId;
status = PvGetSQLConnectionsData (connection, &count);
while (count > 0)
 {
     status = PvGetSQLConnectionInfo(connection, 0,
                   &connectionInfo);
     connId.u132ProcessId =
           connectionInfo.u132ProcessId;
     connId.u132ThreadId =
           connectionInfo.u132ThreadId;
     status = PvDisconnectSQLConnection(connection,
                   &connId);
     status = PvGetSQLConnectionsData (connection,
                   &count);
 }
PvFreeSQLConnectionsData(connection, &count);
備考
以下の前提条件を満たす必要があります。
PvStart() 呼び出しによって DTI セッションが開始されている。
PvConnectServer() によって接続が確立している。ただし、ローカル マシンで操作を実行する場合は、接続ハンドルとして P_LOCAL_DB_CONNECTION を使用できます。
関連項目
PvStart()
PvConnectServer()
PvGetSQLConnectionsData()
PvGetSQLConnectionInfo()
PvDisconnect()
PvStop()