无论最新连接尝试成功还是失败,都获取该尝试的连接 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,可以认为是网络错误。