Oracle connection pool issue in Devart [message #662008] |
Wed, 12 April 2017 05:19  |
 |
Raghupathi
Messages: 1 Registered: April 2017
|
Junior Member |
|
|
Hi
I'm using the Devrat.Data.Oracle (7.1.40.0) libray in my application getting an error in connection pool
Below is the error message which is logged in the dump file
Call Stack
ntdll!ZwWaitForSingleObject+a
ntdll!RtlpWaitOnCriticalSection+e8
ntdll!RtlEnterCriticalSection+d1
oracore11!sltsmna+1c
OraClient11!kpuhhfrh+5cb
OraClient11!kpufhndl0+17c5
OraClient11!kpufhndl+e
OraClient11!OCIHandleFree+15
oci!OCIHandleFree+71
DomainBoundILStubClass.IL_STUB_PInvoke(System.Runtime.InteropServices.HandleRef, Int32)+67
OciDynamicType.OCIHandleFree(System.Runtime.InteropServices.HandleRef, Int32)+29
Devart.Data.Oracle.a7.c()
Devart.Data.Oracle.bg.j()
Devart.Data.Oracle.OracleInternalConnection..ctor(Devart.Data.Oracle.ah, Devart.Data.Oracle.OracleInternalConnection)
clr!ExceptionTracker::CallHandler+c5
clr!ExceptionTracker::CallCatchHandler+78
clr!ProcessCLRException+2e2
ntdll!RtlpExecuteHandlerForUnwind+d
ntdll!RtlUnwindEx+539
clr!ClrUnwindEx+40
clr!ProcessCLRException+2b2
ntdll!RtlpExecuteHandlerForException+d
ntdll!RtlDispatchException+45a
ntdll!RtlRaiseException+22f
KERNELBASE!RaiseException+39
clr!RaiseTheExceptionInternalOnly+28b
clr!IL_Throw+e3
Devart.Data.Oracle.bg.a(Devart.Data.Oracle.ah, Devart.Data.Oracle.ao)
Devart.Data.Oracle.OracleInternalConnection..ctor(Devart.Data.Oracle.ah, Devart.Data.Oracle.OracleInternalConnection)
Devart.Data.Oracle.df.a(Devart.Common.i, System.Object, Devart.Common.DbConnectionBase)
Devart.Common.DbConnectionFactory.a(Devart.Common.DbConnectionPool, Devart.Common.i, Devart.Common.DbConnectionBase)
Devart.Common.DbConnectionPool.a(Devart.Common.DbConnectionBase)
Devart.Common.DbConnectionPool.GetObject(Devart.Common.DbConnectionBase)
Devart.Common.DbConnectionFactory.b(Devart.Common.DbConnectionBase)
Devart.Common.DbConnectionClosed.Open(Devart.Common.DbConnectionBase)
Devart.Common.DbConnectionBase.Open()
Devart.Data.Oracle.OracleConnection.Open()
DataConnectors.Oracle.OracleDataConnector.GetCommand(System.String)
DataConnectors.Oracle.OracleDataConnector.GetAllSynonymObjects()
DataConnectors.Oracle.OracleDataConnector.BuildSqlRetrieveTablesInDatabase()
.DataConnectors.Oracle.OracleDataConnector.Relations(Execution.IExecutionContext,.LogEntry)
clr!CallDescrWorkerInternal+83
clr!CallDescrWorkerWithHandler+4a
clr!CallDescrWorkerReflectionWrapper+1a
clr!RuntimeMethodHandle::InvokeMethod+40f
mscorlib_ni+54d28c
mscorlib_ni+54e2b1
mscorlib_ni+53491e
Below is the sample code
private OracleConnection GetConnection()
{
var connection = new OracleConnection(ConnectionString);
return connection;
}
protected override DbCommand GetCommand(string value)
{
var connection = GetConnection();
connection.Open();
var command = new OracleCommand(value, connection) {CommandType = CommandType.Text};
return command;
}
private IEnumerable<OracleDataObject> GetAllSynonymObjects()
{
var dataObjects = new List<OracleDataObject>();
var connectionUserId = SqlHelper.GetConnectionStringItem(ConnectionString, USER_ID_REG_EX_PATTERN);
var command = GetCommand(string.Format(ALL_SYNONYMS_SQL, connectionUserId));
using (IDataReader dataReader = command.ExecuteReader(CommandBehavior.CloseConnection))
{
while (dataReader.Read())
{
var dataObject = new OracleDataObject
{
Name = SqlHelper.ConvertToString(dataReader["SYNONYM_NAME"]),
DbLink = SqlHelper.ConvertToString(dataReader["DB_LINK"]),
OriginalName = SqlHelper.ConvertToString(dataReader["TABLE_NAME"]),
Owner = SqlHelper.ConvertToString(dataReader["OWNER"]),
TableOwner = SqlHelper.ConvertToString(dataReader["TABLE_OWNER"])
};
dataObject.Description = SqlHelper.ConvertToString(dataReader["TABLE_OWNER"]) + "." +
dataObject.Name + " => " +
SqlHelper.ConvertToString(dataReader["TABLE_NAME"]);
dataObjects.Add(dataObject);
}
}
return dataObjects;
}
|
|
|
|
|