无论最新连接尝试成功还是失败,都获取该尝试的连接 ID。

语法

public Java.util.UUID SQLServerConnection.getClientConnectionID();

返回值

表示最新连接尝试的连接 ID 的 16 字节的 GUID。或者为 NULL(如果在启动连接请求和预登录握手后失败)。

异常

注释

有关访问扩展事件日志中的诊断信息的详细信息,请参阅访问扩展事件日志中的诊断信息

以下示例显示如何获取连接 ID:

Connection con = DriverManager.getConnection(connectionUrl);
UUID id = ((ISQLServerConnection)con).getClientConnectionId();

以下示例显示获取连接 ID 的另一种方法:

SQLServerConnectionPoolDataSource ds = new SQLServerConnectionPoolDataSource();
ds.setUser("…");
ds.setPassword("…");
ds.setServerName("…");
PooledConnection pcon= ds.getPooledConnection();
Connection cn = pcon.getConnection();
UUID conid = ((ISQLServerConnection)cn).getClientConnectionId();

无论您连接到何种版本的服务器,getClientConnectionID 都有效,但是在 SQL Server 2008 R2 和更早版本中不提供扩展事件日志和连接环形缓冲区中的条目。

如果启用记录连接 ID 的扩展事件,您可以在扩展事件日志中查找连接 ID,以查看失败是否源自服务器。还可以针对某些连接错误在连接环形缓冲区(在 SQL Server 2008 中使用连接环形缓冲区解决连接问题)中查找连接 ID。如果在连接环形缓冲区中找不到连接 ID,可以认为是网络错误。

请参阅