Error ORA-01000: numero maximo de cursores abiertos excedido
Publicado por Jesus (1 intervención) el 13/01/2020 18:01:45
Buenas tardes, tengo un método en C++ donde estoy usando OCCI (Oracle C++ Call Interface) al que se le hacen varias llamadas desde un servicio TUXEDO, y despues de varias llamadas al método me salta el error ORA 01000 - numero maximo de cursores abiertos excedido, cuando en el metodo estoy cerrando los ResultSet y los Statements. Pongo código de método:
Sabéis a que puede ser debido el error ORA-01000??? No logro dar con la solución, no deja de saltarme el error.
Saludos
Jesús
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
TsdConsultaF* TscOrmConsultaF::getNuConsultasDetRes(const TsdConsultaF& oEstCons){
string sSQL="";
Statement* stmt=NULL;
ResultSet* rs=NULL;
TsdConsultaF *pEstCons=null;
try {
// ---------------------------------------------
// Componer la sentencia SQL
// ---------------------------------------------
sSQL=(string) "SELECT COUNT(*) FROM TSI_CONSULTAF ";
sSQL+=" WHERE CO_ENT_CONSULTA = :1 AND FH_INI_CONSULTA BETWEEN TO_DATE(:2,'yyyymmdd') AND TO_DATE(:3,'yyyymmdd') ";
sSQL+=" AND TIPO_CONSULTA = :4 ";
if (oEstCons.getGrupo() != "Todos")
sSQL+=" AND CO_GRUPO = :5";
log().debug("[orm] SQL: [%s]",sSQL.c_str());
stmt=db().createStatement(sSQL);
stmt->setString(1,oEstCons.getEntidad());
stmt->setString(2,oEstCons.getFechaInicio().format(FwDate::YYYYMMDD,false));
stmt->setString(3,oEstCons.getFechaFinal().format(FwDate::YYYYMMDD,false));
stmt->setString(4,oEstCons.getTipoConsulta());
if (oEstCons.getGrupo() != "Todos")
stmt->setString(5,oEstCons.getGrupo());
rs=stmt->executeQuery();
// ---------------------------------------------
// Volcar los datos
// ---------------------------------------------
if(rs->next()==ResultSet::DATA_AVAILABLE){
pEstCons = new TsdConsultaF();
pEstCons->setNuConsultas(rs->getInt(1));
//pEstCons->setNuConsultasTirea(rs->getInt(2));
//pEstCons->setNuConsultasFondo(rs->getInt(3));
}
// ---------------------------------------------
// Close resources
// ---------------------------------------------
stmt->closeResultSet(rs);
db().terminateStatement(stmt);
return pEstCons;
}catch(SQLException& e){
log().error("[orm] Error recuperando de TSI_CONSULTAF");
log().error("[orm] %s",e.getMessage().c_str());
oEstCons.toLog(log());
if (rs) stmt->closeResultSet(rs);
if (stmt) db().terminateStatement(stmt);
throw FwException("Error recuperando de TSI_CONSULTAF.","TscOrmConsultaF::getNuConsultasdetRes",99);
return null;
}
}
Sabéis a que puede ser debido el error ORA-01000??? No logro dar con la solución, no deja de saltarme el error.
Saludos
Jesús
Valora esta pregunta


0