Abstract:
An approach migrates database sessions from a database server on which performance and resource availability requirements are not being met to another database server. Because workload is removed from the database server not meeting these requirements, improved performance there is promoted. Furthermore, the approach switches the users in a way that attempts to keep performance and resource availability levels at the database server receiving the database sessions within goals for performance and resource availability.
Abstract:
An approach efficiently and dynamically allocates and de-allocates database instances and nodes between databases. The approach performs this function in a way that accounts for the users of and services hosted by multiple databases.
Abstract:
A server side connection pool provides pooling of server connections. Thus, client side processes do not create groups of dedicated resources. Clients are provided the capability to communicate to a server side connection broker process to GET a pooled server connection comprising connection state plus a thread of execution for doing some work, whereby requesting the work can bypass the connection broker process and go directly to the assigned pooled connection. Once the client issues a RELEASE to release the pooled connection back to the pool, a completely different client process on potentially a different client middle tier machine can reuse the same pooled connection. The server-side connection pool can be logically partitioned into sub-pools that correspond to connection classes that typically correspond to respective applications. A client process can request a pooled connection having a particular state, where a stored procedure can be executed to generate such state.
Abstract:
Techniques are provided for creating dynamic connections to objects on remote database clusters. Service-to-instance mapping information is provided to a listener process for a cluster database. The service-to-instance mapping indicates the current provider instance(s) of each object within the cluster database. To establish a connection to a remote object, a sending process uses an object link. The object link identifies the desired destination object, but not the provider instance of the object. The object link also contains a authentication information and other connection information that exists in regular database links. The global listener for the cluster database uses the service-to-instance mapping to determine which instance is the current provider of the specified object, and dynamically distinguishes the appropriate database instance as the endpoint of the connection.
Abstract:
A method and system for implementing an improved access interface infrastructure is disclosed. In one approach, an access interface methods is directly supported by an application. The directly supported access interface method corresponds to an access interface implementation. Other access interface methods are transparently processed by being converted or mapped into a generic interface format, which is then translated into the directly supported format.
Abstract:
A method and system for implementing scrollable cursors is described. A multi-tier caching structure is maintained, in which a partial result set is cached at the client computer and a more-complete result set is cached at the server computer. If the cursor is scrolled in either the forward or backward directions, the partial result set cached at the client computer is first checked to see if requested data is present. If so, then the requested data is fetched from the client cache and the current position of the cursor is moved to the appropriate position in the result set. If the requested data is not present in the client cache, then those data items are fetched from the cache at the server computer.
Abstract:
An approach efficiently and dynamically places services within a multi-node system when expanding or contracting services, that is, increasing and decreasing the number of instances that host a service. Service placement decisions are made in a way that accounts for performance and availability requirements of both the service being placed and other services.
Abstract:
One embodiment of the present invention provides a system that modifies a function defined within an application programming interface (API) so that the function includes additional code. The system receives an additional code module to be integrated into the function within the API. The system also receives a command to integrate the additional code module into the function. This command is received through a pre-defined function within the API for integrating additional code into functions within the API. In response to the command, the system links the additional code into the function so that the additional code module is executed when the function is called. In one embodiment of the present invention, linking the additional code module into the function involves linking the additional code module as an entry function that is executed at the beginning of the function. In one embodiment of the present invention, linking the additional code module into the function involves linking the additional code module as an exit function that is executed at the end of the function. In one embodiment of the present invention, linking the additional code module into the function involves linking the additional code module as a replacement for original code for the function.
Abstract:
Memory for complex objects is maintained in pools of dynamic memory on a “per-duration” basis. Each duration is assigned its own area or areas of the heap, and all the memory allocation for a specific duration comes from those assigned areas of the heap. Memory allocation for a complex object is performed with respect to a single duration and, hence, memory is allotted for the complex object from the corresponding memory pool. When a duration is terminated, the memory allocated for its corresponding heap is freed, thereby releasing memory for all the complex object using the memory from the memory pool for that duration. Management of other resources for complex objects such as opening and closing files may also be duration-based. In one aspect, the memory management of complex objects is located in an automatically generated client stub routine for a remote procedure call. Accordingly, the interface description language (IDL) for the remote procedure call is extended to incorporate the duration idea for out parameters.