Reports connection property information.
sa_conn_info( [ connidparm ] )
connidparm This optional INTEGER parameter specifies the connection ID number.
|Column name||Data type||Description|
|Number||INTEGER||The connection ID number.|
|Name||VARCHAR(255)||The name of the connection. Temporary connection names have INT: prepended to the connection name. For a list of temporary connection names, see Name connection property.|
|Userid||VARCHAR(255)||The user ID for the connection.|
|DBNumber||INTEGER||The database ID number.|
|LastReqTime||VARCHAR(255)||The time at which the last request for the specified connection started.|
|ReqType||VARCHAR(255)||A string for the type of the last request.|
|CommLink||VARCHAR(255)||The communication link for the connection. This is one of the network protocols supported by SQL Anywhere, or local for a same-computer connection.|
|NodeAddr||VARCHAR(255)||The address of the client in a client/server connection.|
|ClientPort||INTEGER||The port number on which the client application communicates using TCP/IP.|
|ServerPort||INTEGER||The port number on which the server communicates using TCP/IP.|
|BlockedOn||INTEGER||If the current connection is not blocked, this is zero. If it is blocked, the connection number on which the connection is blocked because of a locking conflict.|
|LockTable||VARCHAR(255)||If the connection is currently waiting for a lock, LockTable will be the name of the table associated with that lock. Otherwise, LockTable will be the empty string.|
|UncommitOps||INTEGER||The number of uncommitted operations.|
|LockRowID||UNSIGNED BIGINT||If the connection is waiting on a lock that is associated with a particular row identifier, LockRowID contains that row identifier. LockRowID is NULL if the connection is not waiting on a lock associated with a row (that is, it is not waiting on a lock, or it is waiting on a lock that has no associated row).|
|LockIndexID||INTEGER||If the connection is waiting on a lock that is associated with a particular index, LockIndexID contains the identifier of that index (or -1 if the lock is associated with all indexes on the table in LockTable). LockIndexID is NULL if the connection is not waiting on a lock associated with an index (that is, it is not waiting on a lock, or it is waiting on a lock that has no associated index).|
|ParentConnection||INTEGER||If the connection is a temporary connection created by the database server, this property returns the connection ID that created the temporary connection. Otherwise, the value is NULL. See Temporary connections.|
If you specify the connection ID number, the sa_conn_info system procedure returns a result set consisting of connection properties for the supplied connection. If no connidparm is supplied, this system procedure returns information for all current connections to databases on the server. If connidparm is less than zero, option values for the current connection are returned.
In a block situation, the BlockedOn value returned by this procedure allows you to check which users are blocked, and who they are blocked on. The sa_locks system procedure can be used to display the locks held by the blocking connection.
For more information based on any of these properties, you can execute something similar to the following:
SELECT *, DB_NAME( DBNumber ), CONNECTION_PROPERTY( 'LastStatement', Number ) FROM sa_conn_info( );
The value of LockRowID can be used to look up a lock in the output of the sa_locks procedure.
The value in LockIndexID can be used to look up a lock in the output of the sa_locks procedure. Also, the value in LockIndexID corresponds to the primary key of the ISYSIDX system table, which can be viewed using the SYSIDX system view.
Every lock has an associated table, so the value of LockTable can be used to unambiguously determine whether a connection is waiting on a lock.
The following example uses the sa_conn_info system procedure to return a result set summarizing connection properties for all connections to the server.
CALL sa_conn_info( );
|46||Sybase Central 1||DBA||0||...|
The following example uses the sa_conn_info system procedure to return a result set showing which connection created a temporary connection.
SELECT Number, Name, ParentConnection FROM sa_conn_info();
Connection 8 created the temporary connection that executed a CREATE DATABASE statement.
Number Name ParentConnection ------------------------------------------------ 1000000048 INT: CreateDB 8 9 SQL_DBC_14675af8 (NULL) 8 SQL_DBA_152d5ac0 (NULL)
Discuss this page in DocCommentXchange.
|Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0|