ORA
driver support for Oracle 11g features
In addition to support for Oracle 11g session pooling and connection
pooling, the ORA driver adds support for other 11g features.
Client result cache
The PowerBuilder ORA driver supports Oracle Client Cache, however
this feature depends on your Oracle Server and Client configuration. You
can configure the Oracle Client Cache with an init.ora or sqlnet.ora file.
Cached queries are annotated with “/*+ result_cache */” hints to indicate
that results are stored in the query result cache. You enable OCI
statement caching from PowerBuilder applications with the StatementCache
DBPARM parameter.
Application driver name
An OCI application can choose its own name and set it as a
diagnostic aid. The AppDriverName DPBARM parameter allows you to set your
own client driver name for the PowerBuilder ORA interface. The maximum
length of the name is 8 characters. You can display the client driver name
with the V$SESSION_CONNECT_INFO or GV$SESSION_CONNECT_INFO dynamic
performance view queries.
Client access through a proxy (Oracle 10.2
feature)
The PowerBuilder ORA driver supports the proxy authentication
feature that was introduced in Oracle 10.2. With proxy authentication, the
end user typically authenticates to a middle tier (such as a firewall),
that in turn logs into the database on the user’s behalf as a proxy user.
After logging into the database, the proxy user can switch to the end
user’s identity and perform operations using the authorization accorded to
that user.
The ConnectAs DBParm parameter allows you to take advantage of this
proxy connection feature. For example, if the user’s Transaction object
LogID is “Scott” and you set the ConnectAs DBParm parameter to “John”, the
OCI client logs in to database as the proxy user (“Scott”), then switches
to the end user identity (“John”).
If you are using connection or session pooling, the proxy user name
is the connection or session pooling creator (which you can provide in the
PoolCreator and PoolPwd DBParm parameters), and the Transaction object’s
LogID is ignored. No proxy session can be created if pooling is set to
HomogeneousSession mode.
Limitation on proxy connection without pooling
When using a proxy connection without pooling, you must set the
NLS_Charset DBPARM to “Local” or to another non-Unicode character set.
If you do not change the “Unicode” default value for this DBPARM, the
connection fails because the Oracle Client Interface does not accept a
Unicode name string for its proxy client attribute.
Load balancing
The Oracle Real Application Clusters (RAC) database option allows a
single database to be hosted in multiple instances on multiple nodes of
the database server. This adds high availability and failover capacity to
the database. Availability is improved since, if one node fails, another
node can assume its workload. All instances have access to the whole
database. The shared disk method of clustering databases used by the RAC
option increases scalability because nodes can be added or freed as
required.
In RAC environments, session pools can use service metrics received
from the RAC load balancing advisory to balance application session
requests. The work requests coming into the session pool can then be
distributed across the instances of RAC based on current service
performance.
Connect time load balancing
Balancing of work requests occur at two different times: connect
time and runtime. Connect time load balancing occurs when a session is
first created by the application. This ensures that sessions that are part
of the pool are well distributed across RAC instances, and that sessions
on each of the instances get a chance to execute work.
For session pools that support services at one instance only, the
first available session in the pool is adequate. When the pool supports
services that span multiple instances, there is a need to distribute the
work requests across instances so that the instances that are providing
better service or have greater capacity get more requests.
Runtime connection load balancing
Runtime connection load balancing basically routs work requests to
the sessions in a session pool that best serve the work. Runtime
connection load balancing is enabled by default when an Oracle 11.1 or
higher client is connected to a 10.2 or higher Oracle server using OCI
session pooling.
The DBPARM parameter, RTConnBalancing, supports the runtime
connection load balancing feature. It is available only when the Pooling
parameter is set to Session Pooling, and it can be set before connection
only. By default, when you select Session Pooling for the pooling type,
the RTConnBalancing value is true.