/* 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 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 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::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; }
/* =begin --- OCIServer#detach([mode]) detach from the database. :mode ((|OCI_DEFAULT|)) only valid. Default value is ((|OCI_DEFAULT|)). correspond native OCI function: ((|OCIServerDetach|)) =end */ static VALUE oci8_server_detach(int argc, VALUE *argv, VALUE self) { VALUE vmode; oci8_handle_t *h; ub4 mode; sword rv; rb_scan_args(argc, argv, "01", &vmode); Get_Handle(self, h); /* 0 */ Get_Int_With_Default(argc, 1, vmode, mode, OCI_DEFAULT); /* 1 */ rv = OCIServerDetach(h->hp, h->errhp, 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); }
int db_init(char *servername, char *username, char *passwd) { OCIEnvCreate(&myenvhp, OCI_THREADED|OCI_OBJECT, (dvoid *)0, 0, 0, 0, (size_t)0, (dvoid **)0); OCIHandleAlloc((dvoid *)myenvhp, (dvoid **)&mysrvhp, OCI_HTYPE_SERVER, 0, (dvoid **)0); OCIHandleAlloc((dvoid *)myenvhp, (dvoid **)&myerrhp, OCI_HTYPE_ERROR, 0, (dvoid **)0); /* 服务名 */ status = OCIServerAttach(mysrvhp, myerrhp, (const OraText*)servername, strlen(servername), OCI_DEFAULT); if (status != OCI_SUCCESS && status != OCI_SUCCESS_WITH_INFO) { checkerr(status, myerrhp); OCIServerDetach(mysrvhp, myerrhp, OCI_DEFAULT); return -1; } OCIHandleAlloc((dvoid *)myenvhp, (dvoid **)&mysvchp, OCI_HTYPE_SVCCTX, 0, (dvoid **)0); OCIAttrSet((dvoid *)mysvchp, OCI_HTYPE_SVCCTX, (dvoid *)mysrvhp, (ub4)0, OCI_ATTR_SERVER, myerrhp); OCIHandleAlloc((dvoid *)myenvhp, (dvoid **)&myusrhp, OCI_HTYPE_SESSION, 0, (dvoid **)0); OCIAttrSet((dvoid *)myusrhp, OCI_HTYPE_SESSION, (dvoid *)username, (ub4)strlen(username), OCI_ATTR_USERNAME, myerrhp); OCIAttrSet((dvoid *)myusrhp, OCI_HTYPE_SESSION, (dvoid *)passwd, (ub4)strlen(passwd), OCI_ATTR_PASSWORD, myerrhp); if(OCISessionBegin((dvoid *)mysvchp, myerrhp, myusrhp, OCI_CRED_RDBMS, OCI_DEFAULT) != OCI_SUCCESS) { DEBUG("Build the talking fail!\n"); OCIHandleFree((void *)myenvhp, OCI_HTYPE_ENV); return -1; } OCIAttrSet((dvoid *)mysvchp, OCI_HTYPE_SVCCTX, (dvoid *)myusrhp, (ub4)0, OCI_ATTR_SESSION, myerrhp); INFO("Oracle connect successful!\n"); return 0; }
// 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); }