OGROCISession::~OGROCISession() { if( hDescribe != NULL ) OCIHandleFree((dvoid *)hDescribe, (ub4)OCI_HTYPE_DESCRIBE); if( hSvcCtx != NULL ) { OCISessionEnd(hSvcCtx, hError, hSession, (ub4) 0); if( hSvcCtx && hError) OCIServerDetach(hServer, hError, (ub4) OCI_DEFAULT); if( hServer ) OCIHandleFree((dvoid *) hServer, (ub4) OCI_HTYPE_SERVER); if( hSvcCtx ) OCIHandleFree((dvoid *) hSvcCtx, (ub4) OCI_HTYPE_SVCCTX); if( hError ) OCIHandleFree((dvoid *) hError, (ub4) OCI_HTYPE_ERROR); if( hSession ) OCIHandleFree((dvoid *) hSession, (ub4) OCI_HTYPE_SESSION); } CPLFree( pszUserid ); CPLFree( pszPassword ); CPLFree( pszDatabase ); }
static void yada_oracle_disconnect(yada_t *_yada) { yada_rc_t *yrc; /* invalidate all result sets associated with this connection */ for(yrc=_yada->_priv->rc_head; yrc; yrc=yrc->next) { if(yrc->t != YADA_RESULT) continue; ((extinfo*)yrc->data)->invalid = 1; OCIStmtRelease(((extinfo*)yrc->data)->stmt, _yada->_mod->err, NULL, 0, OCI_DEFAULT); OCIHandleFree(((extinfo*)yrc->data)->stmt, OCI_HTYPE_STMT); } /* cleanup OCI */ if(_yada->_mod->ses) OCISessionEnd(_yada->_mod->ctx, _yada->_mod->err, _yada->_mod->ses, OCI_DEFAULT); if(_yada->_mod->srv) OCIServerDetach(_yada->_mod->srv, _yada->_mod->err, OCI_DEFAULT); if(_yada->_mod->env) OCIHandleFree(_yada->_mod->env, OCI_HTYPE_ENV); /* re-initialize extended structure */ _yada->_mod->env = NULL; _yada->_mod->err = NULL; _yada->_mod->srv = NULL; _yada->_mod->ctx = NULL; _yada->_mod->ses = NULL; _yada->errmsg = _yada->_priv->errbuf; }
gboolean oracle_session_close (GSQLSession *session, gchar *buffer) { GSQL_TRACE_FUNC; /* End session and detach from server */ GSQLEOracleSession *o_session; o_session = (GSQLEOracleSession *) session->spec; gsql_session_close (session); OCISessionEnd (o_session->svchp, o_session->errhp, o_session->usrhp, OCI_DEFAULT); OCIServerDetach (o_session->srvhp, o_session->errhp, OCI_DEFAULT); OCIHandleFree ((dvoid *)o_session->errhp, OCI_HTYPE_ERROR); OCIHandleFree ((dvoid *)o_session->srvhp, OCI_HTYPE_SERVER); OCIHandleFree ((dvoid *)o_session->svchp, OCI_HTYPE_SVCCTX); OCIHandleFree ((dvoid *)o_session->usrhp, OCI_HTYPE_SESSION); OCIHandleFree ((dvoid *)o_session->envhp, OCI_HTYPE_ENV); g_free(o_session); return TRUE; }
int COracleDB::oracle_close( void ) { ORACLE_HANDLE* handle = ( ORACLE_HANDLE* ) _handle; if ( handle == NULL ) return DB_ERR_SUCCESS; int status; if ( handle->svchp != NULL ) { while ( ( status = OCISessionEnd( handle->svchp, handle->errhp, handle->authp, OCI_DEFAULT ) ) == OCI_STILL_EXECUTING ) { my_usleep(); } } if ( handle->srvhp != NULL ) { while ( ( status = OCIServerDetach( handle->srvhp, handle->errhp, OCI_DEFAULT ) ) == OCI_STILL_EXECUTING ) { my_usleep(); } } if ( handle->envhp != NULL ) { OCIHandleFree( ( dvoid * ) ( handle->envhp ), OCI_HTYPE_ENV ); } if ( handle != NULL ) { delete handle; handle = NULL; } return 0; }
static VALUE complex_logoff_execute(void *arg) { complex_logoff_arg_t *cla = (complex_logoff_arg_t *)arg; OCIError *errhp = oci8_errhp; sword rv = OCI_SUCCESS; OCITransRollback(cla->svchp, errhp, OCI_DEFAULT); if (cla->state & OCI8_STATE_SESSION_BEGIN_WAS_CALLED) { rv = OCISessionEnd(cla->svchp, oci8_errhp, cla->usrhp, OCI_DEFAULT); cla->state &= ~OCI8_STATE_SESSION_BEGIN_WAS_CALLED; } if (cla->state & OCI8_STATE_SERVER_ATTACH_WAS_CALLED) { rv = OCIServerDetach(cla->srvhp, oci8_errhp, OCI_DEFAULT); cla->state &= ~OCI8_STATE_SERVER_ATTACH_WAS_CALLED; } if (cla->usrhp != NULL) { OCIHandleFree(cla->usrhp, OCI_HTYPE_SESSION); } if (cla->srvhp != NULL) { OCIHandleFree(cla->srvhp, OCI_HTYPE_SERVER); } if (cla->svchp != NULL) { OCIHandleFree(cla->svchp, OCI_HTYPE_SVCCTX); } free(cla); return (VALUE)rv; }
// Очистка соединения int ora_disconnect(database *db) { t_ora *o = db->h; if (o) { int i; //ZUZUKA // OCISessionEnd(svchp, errhp, usrhp, (ub4)OCI_DEFAULT); if (o->blob) OCIDescriptorFree(o->blob, (ub4) OCI_DTYPE_LOB); if (o->dschp) OCIHandleFree(o->dschp,(ub4) OCI_HTYPE_DESCRIBE); if (o->stmt) OCIHandleFree( (dvoid *)o->stmt,OCI_HTYPE_STMT); if (o->authp) OCIHandleFree((dvoid *) o->authp, OCI_HTYPE_SESSION); if (o->srvhp) // Оракл сам не килит "соединение" { OCISessionEnd (o->svchp,o->errhp,0,OCI_DEFAULT); OCIServerDetach(o->srvhp,o->errhp, (ub4) OCI_DEFAULT); // OCIServerDetach(o->srvhp,o->errhp, (ub4) 0 ); OCIHandleFree( (dvoid *)o->srvhp, OCI_HTYPE_SERVER); // printf("SrvHandle freed?\n"); } if (o->svchp) { OCIHandleFree( (dvoid *)o->svchp, OCI_HTYPE_SVCCTX); } if (o->errhp) { //printf("Err handle=%d\n",o->errhp); OCIHandleFree((dvoid *)o->errhp, OCI_HTYPE_ERROR); // printf("ErrHandle freed?\n"); } //OCIHandleFree((dvoid *)o->envhp, OCI_HTYPE_ENV); //printf("EnvHandle freed?\n"); //if (o->blob_read) OCIDescriptorFree(o->blob_read, (ub4) OCI_DTYPE_LOB); //if (o->mypard) OCIHandleFree(o->mypard, OCI_HTYPE_ //for(i=0;i<256;i++) if (o->defs[i]) OCIHandleFree(o->defs[i],OCI_HTYPE_); // Дефайнеры для SELECT колонок(подвязывание) // OCIParam *mypard; // Обьектик для получения информациипо отселекченой колонке if (o->p) free(o->p); //printf("asize = %d\n",asize); //if (o->envhp) OCIHandleFree((dvoid *) o->envhp, OCI_HTYPE_ENV); free(o); } db->h = 0; Free(db->s); // Так как свои диспетчеры памяти, нужно вылить... Free(db->out.data); Free(db->out.blob); // Так как юзаем блобы - это вещь необходимая... Free(db->out.cols); Free(db->in.data); Free(db->in.blob); Free(db->in.cols); db->disconnect = 0; return 1; }
/* Freeing the allocated handles */ static void cleanup () { OCISessionEnd (svchp, errhp, sesnhp, OCI_DEFAULT ); OCIHandleFree((dvoid *) sesnhp, OCI_HTYPE_SESSION); OCIServerDetach(svrhp, errhp, OCI_DEFAULT ); OCIHandleFree((dvoid *) svrhp, OCI_HTYPE_SERVER); OCIHandleFree((dvoid *) svchp, OCI_HTYPE_SVCCTX); OCIHandleFree((dvoid *) errhp, OCI_HTYPE_ERROR); return; }/* End of cleanup() */
~connection() { OCISessionEnd(svcctx, error, session, OCI_DEFAULT); OCIServerDetach(server, error, OCI_DEFAULT); OCIHandleFree(session, OCI_HTYPE_SESSION); OCIHandleFree(svcctx, OCI_HTYPE_SVCCTX); OCIHandleFree(error, OCI_HTYPE_ERROR); OCIHandleFree(server, OCI_HTYPE_SERVER); }
void OraSession::endSession() { sword status; status = OCIHandleFree((dvoid *)ociHandles.stmthp, (ub4)OCI_HTYPE_STMT); status = OCISessionEnd(ociHandles.svchp, ociHandles.errhp, ociHandles.usrhp, (ub4)OCI_DEFAULT); status = OCIServerDetach(ociHandles.srvhp, ociHandles.errhp, (ub4)OCI_DEFAULT ); status = OCIHandleFree((dvoid *)ociHandles.srvhp, (ub4)OCI_HTYPE_SERVER); status = OCIHandleFree((dvoid *)ociHandles.svchp, (ub4)OCI_HTYPE_SVCCTX); status = OCIHandleFree((dvoid *)ociHandles.errhp, (ub4)OCI_HTYPE_ERROR); connectedUser = ""; }
void OracleConnection_free(T* C) { assert(C && *C); if ((*C)->svc) OCISessionEnd((*C)->svc, (*C)->err, (*C)->usr, OCI_DEFAULT); if ((*C)->srv) OCIServerDetach((*C)->srv, (*C)->err, OCI_DEFAULT); if ((*C)->env) OCIHandleFree((*C)->env, OCI_HTYPE_ENV); StringBuffer_free(&(*C)->sb); FREE(*C); }
void OracleConnection::Close() { StartTrace(OracleConnection.Close); if ( fStatus == eSessionValid ) { if ( OCISessionEnd( fSvchp.getHandle(), fErrhp.getHandle(), fUsrhp.getHandle(), 0 ) ) { SystemLog::Error( "FAILED: OCISessionEnd() on svchp failed" ); } } if ( fStatus >= eServerAttached ) { if ( OCIServerDetach( fSrvhp.getHandle(), fErrhp.getHandle(), OCI_DEFAULT ) ) { SystemLog::Error( "FAILED: OCIServerDetach() on srvhp failed" ); } } fStatus = eHandlesAllocated; }
void qdbl_oracle_session_stop(struct QdblOracleConnection* self) { /* variables */ sword status; status = OCISessionEnd(self->ocicontext, self->ocierr, self->ocisession, OCI_DEFAULT); qdbl_oracle_error(self->ocierr, status, self->logger, "end session"); /* release resources */ OCIHandleFree(self->ocisession, OCI_HTYPE_SESSION); self->ocisession = 0; OCIHandleFree(self->ocicontext, OCI_HTYPE_SVCCTX); self->ocicontext = 0; }
/* =begin --- OCISession#end(svc [, vmode]) terminate user Authentication Context :svc ((<OCISvcCtx>)). :mode ((|OCI_DEFAULT|)) only valid. Defalt value is ((|OCI_DEFAULT|)). correspond native OCI function: ((|OCISessionEnd|)) =end */ static VALUE oci8_session_end(int argc, VALUE *argv, VALUE self) { VALUE vsvc, vmode; oci8_handle_t *h; oci8_handle_t *svch; ub4 mode; sword rv; rb_scan_args(argc, argv, "11", &vsvc, &vmode); Get_Handle(self, h); /* 0 */ Check_Handle(vsvc, OCISvcCtx, svch); /* 1 */ Get_Int_With_Default(argc, 2, vmode, mode, OCI_DEFAULT); /* 2 */ rv = OCISessionEnd(svch->hp, h->errhp, h->hp, mode); if (rv != OCI_SUCCESS) oci8_raise(h->errhp, rv, NULL); return self; }
/* * Disconnect after network error */ void db_oracle_disconnect(ora_con_t* con) { sword status; switch (con->connected) { default: status = OCISessionEnd(con->svchp, con->errhp, con->authp, OCI_DEFAULT); if (status != OCI_SUCCESS) LM_ERR("driver: %s\n", db_oracle_error(con, status)); case 1: status = OCIServerDetach(con->srvhp, con->errhp, OCI_DEFAULT); if (status != OCI_SUCCESS) LM_ERR("driver: %s\n", db_oracle_error(con, status)); con->connected = 0; case 0: break; } }
void close_conn(OCI_CONNECTION *db_connection) { OCISessionEnd(db_connection->svchp, db_connection->errhp, db_connection->authp, OCI_DEFAULT); OCIServerDetach(db_connection->srvhp, db_connection->errhp, OCI_DEFAULT); OCIHandleFree(db_connection->authp, OCI_HTYPE_SESSION); OCIHandleFree(db_connection->srvhp, OCI_HTYPE_SERVER); OCIHandleFree(db_connection->svchp, OCI_HTYPE_SVCCTX); OCIHandleFree(db_connection->errhp, OCI_HTYPE_ERROR); OCIHandleFree(db_connection->envhp, OCI_HTYPE_ENV); free(db_connection); OCITerminate(OCI_DEFAULT); }
void oracle_session_reopen (GSQLSession *session) { GSQL_TRACE_FUNC; GSQLEOracleSession *oracle_session; gchar buffer[256]; GSQLWorkspace *workspace; gchar *username; gchar *database; gchar *password; g_return_if_fail (GSQL_IS_SESSION (session)); oracle_session = (GSQLEOracleSession *) session->spec; workspace = gsql_session_get_workspace (session); OCISessionEnd (oracle_session->svchp, oracle_session->errhp, oracle_session->usrhp, OCI_DEFAULT); OCIServerDetach (oracle_session->srvhp, oracle_session->errhp, OCI_DEFAULT); OCIHandleFree ((dvoid *)oracle_session->errhp, OCI_HTYPE_ERROR); OCIHandleFree ((dvoid *)oracle_session->srvhp, OCI_HTYPE_SERVER); OCIHandleFree ((dvoid *)oracle_session->svchp, OCI_HTYPE_SVCCTX); OCIHandleFree ((dvoid *)oracle_session->usrhp, OCI_HTYPE_SESSION); OCIHandleFree ((dvoid *)oracle_session->envhp, OCI_HTYPE_ENV); username = (gchar *) gsql_session_get_username (session); password = (gchar *) gsql_session_get_password (session); database = (gchar *) gsql_session_get_database_name (session); oracle_session_open (oracle_session, username, password, database, buffer); gsql_message_add (workspace, GSQL_MESSAGE_NORMAL, N_("Session reconnected")); }
OWConnection::~OWConnection() { OCIHandleFree( (dvoid*) hDescribe, (ub4) OCI_HTYPE_DESCRIBE); if( hSvcCtx && hError && hSession ) OCISessionEnd( hSvcCtx, hError, hSession, (ub4) 0); if( hSvcCtx && hError) OCIServerDetach( hServer, hError, (ub4) OCI_DEFAULT); if( hServer ) OCIHandleFree((dvoid *) hServer, (ub4) OCI_HTYPE_SERVER); if( hSvcCtx ) OCIHandleFree((dvoid *) hSvcCtx, (ub4) OCI_HTYPE_SVCCTX); if( hError ) OCIHandleFree((dvoid *) hError, (ub4) OCI_HTYPE_ERROR); if( hSession ) OCIHandleFree((dvoid *) hSession, (ub4) OCI_HTYPE_SESSION); }
// free the resources associated with a connection void tm_free_conn(TM_CONN_HNDL conn_hndl) { TM_CONNECTION *conn; conn = (TM_CONNECTION *)conn_hndl; OCISessionEnd(conn->svchp, conn->errhp, conn->authp, OCI_DEFAULT); OCIServerDetach(conn->srvhp, conn->errhp, OCI_DEFAULT); OCIHandleFree(conn->authp, OCI_HTYPE_SESSION); OCIHandleFree(conn->srvhp, OCI_HTYPE_SERVER); OCIHandleFree(conn->svchp, OCI_HTYPE_SVCCTX); OCIHandleFree(conn->errhp, OCI_HTYPE_ERROR); OCIHandleFree(conn->envhp, OCI_HTYPE_ENV); tman_free(conn_hndl); }
void db_close() { OCISessionEnd(mysvchp,myerrhp,myusrhp,OCI_DEFAULT); OCIServerDetach(mysrvhp,myerrhp,OCI_DEFAULT); OCIHandleFree((void *)myenvhp,OCI_HTYPE_ENV); }