OCILIB (C and C++ Driver for Oracle)  4.0.0
ocilib::Environment Class Reference

Static class in charge of library initialization / cleanup. More...

#include <ocilib.hpp>

Public Types

enum  HAEventSourceValues {
  SourceInstance = OCI_HES_INSTANCE, SourceDatabase = OCI_HES_DATABASE, SourceNode = OCI_HES_NODE, SourceService = OCI_HES_SERVICE,
  SourceServiceMember = OCI_HES_SERVICE_MEMBER, SourceASMInstance = OCI_HES_ASM_INSTANCE, SourcePreConnect = OCI_HES_PRECONNECT
}
 HA Event sources enumerated values. More...
 
enum  HAEventTypeValues { EventDown = OCI_HET_DOWN, EventUp = OCI_HET_UP }
 HA Event types enumerated values. More...
 
enum  EnvironmentFlagsValues { Default = OCI_ENV_DEFAULT, Threaded = OCI_ENV_THREADED, Events = OCI_ENV_EVENTS }
 Environment Flags enumerated values. More...
 
enum  ImportModeValues { ImportLinkage = OCI_IMPORT_MODE_LINKAGE, ImportRuntime = OCI_IMPORT_MODE_RUNTIME }
 OCI libraries import mode enumerated values. More...
 
enum  CharsetModeValues { CharsetAnsi = OCI_CHAR_ANSI, CharsetWide = OCI_CHAR_WIDE }
 Charset mode enumerated values. More...
 
enum  SessionFlagsValues { SessionDefault = OCI_SESSION_DEFAULT, SessionXa = OCI_SESSION_XA, SessionSysDba = OCI_SESSION_SYSDBA, SessionSysOper = OCI_SESSION_SYSOPER }
 Session flags enumerated values. More...
 
enum  StartModeValues { StartOnly = OCI_DB_SPM_START, StartMount = OCI_DB_SPM_MOUNT, StartOpen = OCI_DB_SPM_OPEN, StartFull = OCI_DB_SPM_FULL }
 Oracle instance start modes enumerated values. More...
 
enum  StartFlagsValues { StartDefault = OCI_DB_SPF_DEFAULT, StartForce = OCI_DB_SPF_FORCE, StartRestrict = OCI_DB_SPF_RESTRICT }
 Oracle instance start flags enumerated values. More...
 
enum  ShutdownModeValues { ShutdownOnly = OCI_DB_SDM_SHUTDOWN, ShutdownClose = OCI_DB_SDM_CLOSE, ShutdownDismount = OCI_DB_SDM_DISMOUNT, ShutdownFull = OCI_DB_SDM_FULL }
 Oracle instance shutdown modes enumerated values. More...
 
enum  ShutdownFlagsValues {
  ShutdowntDefault = OCI_DB_SDF_DEFAULT, ShutdowTrans = OCI_DB_SDF_TRANS, ShutdownTransLocal = OCI_DB_SDF_TRANS_LOCAL, ShutdownImmediate = OCI_DB_SDF_IMMEDIATE,
  ShutdownAbort = OCI_DB_SDF_ABORT
}
 Oracle instance shutdown flags enumerated values. More...
 
typedef Enum< HAEventSourceValuesHAEventSource
 Source of HA events. More...
 
typedef Enum< HAEventTypeValuesHAEventType
 Type of HA events. More...
 
typedef Flags
< EnvironmentFlagsValues
EnvironmentFlags
 Environment Flags. More...
 
typedef Enum< ImportModeValuesImportMode
 OCI libraries import mode. More...
 
typedef Enum< CharsetModeValuesCharsetMode
 Environment charset mode. More...
 
typedef Flags< SessionFlagsValuesSessionFlags
 Sessions flags. More...
 
typedef Enum< StartModeValuesStartMode
 Oracle instance start modes. More...
 
typedef Flags< StartFlagsValuesStartFlags
 Oracle instance start flags. More...
 
typedef Enum< ShutdownModeValuesShutdownMode
 Oracle instance shutdown modes. More...
 
typedef Flags
< ShutdownFlagsValues
ShutdownFlags
 Oracle instance shutdown flags. More...
 
typedef void(* HAHandlerProc )(Connection &con, HAEventSource eventSource, HAEventType eventType, Timestamp &time)
 User callback for HA event notifications.
 

Static Public Member Functions

static void Initialize (EnvironmentFlags mode=Environment::Default, const ostring &libpath=OTEXT(""))
 Initialize the OCILIB environment. More...
 
static void Cleanup ()
 Clean up all resources allocated by the environment. More...
 
static
Environment::EnvironmentFlags 
GetMode ()
 Return the Environment mode flags. More...
 
static Environment::ImportMode GetImportMode ()
 Return the Oracle shared library import mode.
 
static Environment::CharsetMode GetCharset ()
 Return the OCILIB charset type.
 
static unsigned int GetCompileVersion ()
 Return the version of OCI used for compiling OCILIB. More...
 
static unsigned int GetRuntimeVersion ()
 Return the version of OCI used at runtime. More...
 
static void EnableWarnings (bool value)
 Enable or disable Oracle warning notifications. More...
 
static void StartDatabase (const ostring &db, const ostring &user, const ostring &pwd, Environment::StartFlags startFlags, Environment::StartMode startMode, Environment::SessionFlags sessionFlags=SessionSysDba, const ostring &spfile=OTEXT(""))
 Start a database instance. More...
 
static void ShutdownDatabase (const ostring &db, const ostring &user, const ostring &pwd, Environment::ShutdownFlags shutdownFlags, Environment::ShutdownMode shutdownMode, Environment::SessionFlags sessionFlags=SessionSysDba)
 Shutdown a database instance. More...
 
static void ChangeUserPassword (const ostring &db, const ostring &user, const ostring &pwd, const ostring &newPwd)
 Change the password of the given user on the given database. More...
 
static void SetHAHandler (HAHandlerProc handler)
 Set the High availability (HA) user handler. More...
 

Detailed Description

Static class in charge of library initialization / cleanup.

Definition at line 551 of file ocilib.hpp.

Member Typedef Documentation

Source of HA events.

Possible values are Environment::HAEventSourceValues

Definition at line 591 of file ocilib.hpp.

Type of HA events.

Possible values are Environment::HAEventTypeValues

Definition at line 613 of file ocilib.hpp.

OCI libraries import mode.

Possible values are Environment::ImportMode

Definition at line 659 of file ocilib.hpp.

Environment charset mode.

Possible values are Environment::CharsetModeValues

Definition at line 681 of file ocilib.hpp.

Sessions flags.

Possible values are Environment::SessionFlagsValues

Definition at line 707 of file ocilib.hpp.

Oracle instance start modes.

Possible values are Environment::StartModeValues

Definition at line 733 of file ocilib.hpp.

Oracle instance start flags.

Possible values are Environment::StartFlagsValues

Definition at line 757 of file ocilib.hpp.

Oracle instance shutdown modes.

Possible values are Environment::ShutdownModeValues

Definition at line 783 of file ocilib.hpp.

Oracle instance shutdown flags.

Possible values are Environment::ShutdownFlagsValues

Definition at line 820 of file ocilib.hpp.

Member Enumeration Documentation

HA Event sources enumerated values.

Enumerator
SourceInstance 

The event has been generated by an Oracle instance

SourceDatabase 

The event has been generated by an Oracle database

SourceNode 

The event has been generated by an Oracle Node

SourceService 

The event has been generated by an Oracle service

SourceServiceMember 

The event has been generated by an Oracle service member

SourceASMInstance 

The event has been generated by an Oracle ASM instance

SourcePreConnect 

The event has been generated at service pre connecting stage

Definition at line 566 of file ocilib.hpp.

HA Event types enumerated values.

Enumerator
EventDown 

The source of the event is down

EventUp 

The source of the event is up (not generated yet by Oracle)

Definition at line 598 of file ocilib.hpp.

Environment Flags enumerated values.

Enumerator
Default 

Default mode

Threaded 

Enable support for multi-threading

Events 

Enable support for events related to subscriptions, HA and AQ notifications

Definition at line 620 of file ocilib.hpp.

OCI libraries import mode enumerated values.

Enumerator
ImportLinkage 

OCI libraries are linked at compile time

ImportRuntime 

OCI libraries are dynamically loaded at runtime

Definition at line 644 of file ocilib.hpp.

Charset mode enumerated values.

Enumerator
CharsetAnsi 

Environment is ANSI string or UTF8 string

CharsetWide 

Environment is UNICODE using wide character string

Definition at line 666 of file ocilib.hpp.

Session flags enumerated values.

Enumerator
SessionDefault 

Default session mode

SessionXa 

Requested session will be created through the XA interface

SessionSysDba 

the user is authenticated for SYSDBA access.

SessionSysOper 

the user is authenticated for SYSOPER access

Definition at line 688 of file ocilib.hpp.

Oracle instance start modes enumerated values.

Enumerator
StartOnly 

Start the instance without mounting and opening it

StartMount 

Mount (only) the instance

StartOpen 

Open (only) the instance

StartFull 

Start, mount and open the instance

Definition at line 714 of file ocilib.hpp.

Oracle instance start flags enumerated values.

Enumerator
StartDefault 

Default start flags

StartForce 

Shuts down a running instance (if needed) using ABORT command and starts a new instance

StartRestrict 

Allows database access only to users with both CREATE SESSION and RESTRICTED SESSION privileges

Definition at line 740 of file ocilib.hpp.

Oracle instance shutdown modes enumerated values.

Enumerator
ShutdownOnly 

Shutdown the instance

ShutdownClose 

Close (only) the instance

ShutdownDismount 

Dismount (only) the instance

ShutdownFull 

Shutdown, close and dismount the instance

Definition at line 764 of file ocilib.hpp.

Oracle instance shutdown flags enumerated values.

Enumerator
ShutdowntDefault 
  • Further connects are prohibited.
    • Waits for users to disconnect from the database
ShutdowTrans 
  • Further connects are prohibited
    • No new transactions are allowed.
ShutdownTransLocal 
  • Further connects are prohibited
    • No new transactions are allowed.
    • Waits for active transactions to complete
ShutdownImmediate 
  • Does not wait for current calls to complete or users to disconnect from the database.
    • All uncommitted transactions are terminated and rolled back
ShutdownAbort 
  • Does not wait for current calls to complete or users to disconnect from the database.
    • All uncommitted transactions are terminated and are not rolled back.
    • This is the fastest possible way to shut down the database, but the next database startup may require instance recovery.
    • Therefore, this option should be used only in unusual circumstances

Definition at line 790 of file ocilib.hpp.

Member Function Documentation

void ocilib::Environment::Initialize ( EnvironmentFlags  mode = Environment::Default,
const ostring libpath = OTEXT("") 
)
inlinestatic

Initialize the OCILIB environment.

Parameters
mode- Environment mode
libpath- Oracle shared library path (optional)
Note
This function must be called before any other OCILIB library function.
Warning
It should be called ONCE per application
  • The parameter 'libpath' is only used if OCILIB has been built with the option OCI_IMPORT_RUNTIME
  • If the parameter 'lib_path' is NULL, the Oracle library is loaded from system environment variables

Definition at line 706 of file ocilib_impl.hpp.

References ocilib::Check(), OCI_HandleGetEnvironment(), and OCI_Initialize().

void ocilib::Environment::Cleanup ( )
inlinestatic

Clean up all resources allocated by the environment.

Note
This function must be the last OCILIB library function call.
  • It deallocates objects not explicitly freed by the program (connections, statements, ...)
  • It unloads the Oracle shared library if it has been dynamically loaded
Warning
It should be called ONCE per application

Definition at line 717 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_Cleanup().

Environment::EnvironmentFlags ocilib::Environment::GetMode ( )
inlinestatic

Return the Environment mode flags.

Note
It returns the value of the parameter 'mode' passed to Initialize()

Definition at line 726 of file ocilib_impl.hpp.

unsigned int ocilib::Environment::GetCompileVersion ( )
inlinestatic

Return the version of OCI used for compiling OCILIB.

Note
  • with linkage build option, the version is determined from the oci.h header through different ways
  • with runtime loading build option, the version is set to the highest version of OCI needed by OCILIB, not necessarily the real OCI version

Definition at line 741 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_GetOCICompileVersion().

unsigned int ocilib::Environment::GetRuntimeVersion ( )
inlinestatic

Return the version of OCI used at runtime.

Note
  • with linkage build option, the version is determined from the oci.h header through different ways
  • with runtime loading build option, the version determined from the symbols dynamically loaded.

Definition at line 746 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_GetOCIRuntimeVersion().

void ocilib::Environment::EnableWarnings ( bool  value)
inlinestatic

Enable or disable Oracle warning notifications.

Parameters
value- enable/disable warnings
Note
Default value is false

Definition at line 751 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_EnableWarnings().

void ocilib::Environment::StartDatabase ( const ostring db,
const ostring user,
const ostring pwd,
Environment::StartFlags  startFlags,
Environment::StartMode  startMode,
Environment::SessionFlags  sessionFlags = SessionSysDba,
const ostring spfile = OTEXT("") 
)
inlinestatic

Start a database instance.

Parameters
db- Oracle Service Name
user- Oracle User name
pwd- Oracle User password
startFlags- Start flags
startMode- Start mode
sessionFlags- Session Flags
spfile- Client-side spfile to start up the database (optional)
Note
The only valid modes for sessionFlags are SessionSysDba and SessionSysOper.
Start modes and flags parameters values can be combined.
External credentials are supported by supplying a empty strings for the 'user' and 'pwd' parameters If the parameter 'db' is empty then a connection to the default local DB is done.
If the client side spfile is not provided, the database is started with its server-side spfile.

Definition at line 758 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_DatabaseStartup().

void ocilib::Environment::ShutdownDatabase ( const ostring db,
const ostring user,
const ostring pwd,
Environment::ShutdownFlags  shutdownFlags,
Environment::ShutdownMode  shutdownMode,
Environment::SessionFlags  sessionFlags = SessionSysDba 
)
inlinestatic

Shutdown a database instance.

Parameters
db- Oracle Service Name
user- Oracle User name
pwd- Oracle User password
shutdownFlags- Shutdown flags
shutdownMode- Shutdown mode
sessionFlags- Session flags
Note
The only valid modes for sessionFlags are SessionSysDba and SessionSysOper.
Shutdown modes values can be combined.
Shutdown flag values are exclusive.
External credentials are supported by supplying a empty strings for the 'user' and 'pwd' parameters If the param 'db' is empty then a connection to the default local DB is done.

Definition at line 765 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_DatabaseShutdown().

void ocilib::Environment::ChangeUserPassword ( const ostring db,
const ostring user,
const ostring pwd,
const ostring newPwd 
)
inlinestatic

Change the password of the given user on the given database.

Parameters
db- Oracle Service Name
user- Oracle User name
pwd- Oracle User password
newPwd- Oracle User New password

Definition at line 772 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_SetUserPassword().

void ocilib::Environment::SetHAHandler ( HAHandlerProc  handler)
inlinestatic

Set the High availability (HA) user handler.

Parameters
handler- HA handler procedure
Note
See POCI_HA_HANDLER documentation for more details
EnvMode::Events flag must be passed to Initialize() to be able to use HA events
Warning
This call is supported from Oracle 10gR2.

Definition at line 777 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_SetHAHandler().