We switched to direct connect and are experiencing different problems. One of them is, that the list of users, that are "currently" connected to database, is having orphaned entries. (ArcGIS 10.2.1 on oracle 11g)
To obtain the users we more or less followed the arctical here:How To: Obtain a listing of user processes and locks from a geodatabase when there is no ArcSDE serv...
Our current code lookes like that:
private static List<UserObject> ReadUsersFromOracle()
var result = new List<UserObject>();
using (var connection = new Oracle.DataAccess.Client.OracleConnection(ConnectionString))
var getuserCommand = "SELECT SDE_ID, OWNER, NODENAME, START_TIME, XDR_NEEDED, DIRECT_CONNECT FROM PROCESS_INFORMATION";
var command = new Oracle.DataAccess.Client.OracleCommand(getuserCommand, connection);
command.CommandType = System.Data.CommandType.Text;
var reader = command.ExecuteReader();
var sdeid = Convert.ToDecimal(reader);
var user = Convert.ToString(reader);
var nodeName = Convert.ToString(reader);
var connTime = Convert.ToDateTime(reader);
var xdr = Convert.ToString(reader);
var isDc = Convert.ToString(reader);
result.Add(new UserObject(sdeid, user, nodeName, connTime, xdr, isDc));
Does anyone has an idea, how to trigger any update so that the list returns only actually connected users?
I could execute the code given in How To: Remove orphaned keyset tables in Oracle with the same command. But I had to exchagne the "sde". by the current user schema that I am working with. Only problem is the user rights needed.