Oracle package after successful compiling every time gives error "ORA-06508: PL/SQL: could not find program unit being called" until recycling IIS application pool. Application every time creating new connection to use this package and disposing,closing successful. Also tried "Validate Connection=True;Pooling=False;" in connection string, but not helps.
public void ExecuteProcedure(string precoureName, OracleConnection conn, object parameters, Dictionary<string, object> output)
{
using (OracleConnection connmain = GetOracleConnection(conn))
{
OracleCommand cmd = new OracleCommand(precoureName, connmain) { CommandType = CommandType.StoredProcedure };
AddParametersToCommand(cmd, string.Empty, parameters, false);
List<OracleParameter> outparams = GetOutputParams(output, cmd);
cmd.ExecuteNonQuery();
for (int i = 0; i < outparams.Count; i++)
{
if (outparams[i].OracleDbType == OracleDbType.Clob)
{
output[outparams[i].ParameterName] = DBNull.Value;
if (outparams[i] != null)
{
Oracle.ManagedDataAccess.Types.OracleClob res = (Oracle.ManagedDataAccess.Types.OracleClob)outparams[i].Value;
if (res != null && !res.IsNull)
{
output[outparams[i].ParameterName] = res.Value;
}
}
}
else
{
output[outparams[i].ParameterName] = outparams[i].Value;
}
}
CloseOracleConnection(conn, connmain);
}
}
private void CloseOracleConnection(OracleConnection conn, OracleConnection connmain)
{
if (conn == null && connmain.State != ConnectionState.Closed)
{
if (AutoClearPool)
{
OracleConnection.ClearPool(connmain);
}
connmain.Close();
}
}
private OracleConnection GetOracleConnection(OracleConnection conn)
{
OracleConnection connmain;
if (conn == null)
{
connmain = new OracleConnection(ConnectionString); connmain.Open();
}
else { connmain = conn; }
return connmain;
}