Oracle® Database PL/SQL Packages and Types Reference 11g Release 2 (11.2) Part Number E16760-05 |
|
|
PDF · Mobi · ePub |
The DBMS_SERVICE
package lets you create, delete, activate, and deactivate services for a single instance.
The chapter contains the following topics:
Overview
Security Model
Constants
Exceptions
Summary of DBMS_SERVICE Subprograms
See Also:
Oracle Real Application Clusters Administration and Deployment Guide for administering services in Oracle Real Application Clusters.This section contains topics which relate to using the DBMS_SERVICE
package.
DBMS_SERVICE
supports the management of services in the RDBMS for the purposes of workload measurement, management, prioritization, and XA/and distributed transaction management.
Oracle Real Application Clusters (Oracle RAC) has a functionality to manage service names across instances. This package allows the creation, deletion, starting and stopping of services in both Oracle RAC and a single instance. Additionally, it provides the ability to disconnect all sessions which connect to the instance with a service name when Oracle RAC removes that service name from the instance.
See Also:
For more information about Oracle Real Application Clusters, Oracle Real Application Clusters Administration and Deployment Guide.The client using this package must have the ALTER
SYSTEM
execution privilege and the V$SESSION
table read privilege.
This package must be installed under SYS
schema.
The EXECUTE
privilege of the package is granted to the DBA
role only.
For Oracle Real Applications Clusters (Oracle RAC) databases, the following DBMS_SERVICE
procedures are deprecated in 11.2, and srvctl
used instead:
The same is true for single-instance databases managed by Oracle Restart or Oracle Clusterware.
This is because the service attributes are stored in CRS and those attributes overwrite those specified by DBMS_SERVICE
. The DBMS_SERVICE
procedures do not update the CRS attributes.
The DBMS_SERVICE
package uses the constants shown in following tables
Constants used in calling arguments are described in Table 130-1, "Constants used in Calling Arguments"
Constants used in connection balancing goal arguments are described inTable 130-2, "Constants used in Connection Balancing Goal Arguments"
Constants used TAF failover attribute arguments are described inTable 130-3, "Constants used in TAF Failover Attribute Arguments"
Table 130-1 Constants used in Calling Arguments
Name | Type | Value | Description |
---|---|---|---|
|
|
|
Disables Load Balancing Advisory |
|
|
|
Load Balancing Advisory is based on elapsed time for work done in the service plus available bandwidth to the service |
|
|
|
Load Balancing Advisory is based on the rate that work is completed in the service plus available bandwidth to the service |
Table 130-2 Constants used in Connection Balancing Goal Arguments
Name | Type | Value | Description |
---|---|---|---|
|
|
|
Connection load balancing uses Load Balancing Advisory, when Load Balancing Advisory is enabled (either |
|
|
|
Balances the number of connections per instance using session count per service. This setting is recommended for applications with long connections such as forms. This setting can be used with Load Balancing Advisory when the connection pool is sized to accommodate gravitation within the pool itself (without adding or removing connections). The latter is the most efficient design. |
Table 130-3 Constants used in TAF Failover Attribute Arguments
Name | Type | Value | Description |
---|---|---|---|
|
|
|
Server side TAF is not enabled for this service |
|
|
|
|
|
|
Server side TAF type is |
|
|
|
Server side TAF failover type is |
|
|
|
Server side TAF failover type is |
|
|
|
Number of retries to use during a failover. Specifies the number of times for TAF to attempt the re-connect and re-authenticate pair. The value must be integral and greater than 0. The maximum value is |
|
|
|
Number of seconds delay before trying to fail over. Specifies the delay (in seconds) that TAF will incur if the re-connect / re-authentication fails. The value must be integral and greater than 0. The maximum value is |
If a TAF callback has been registered, then the failover retries and failover delay are ignored. If an error occurs, TAF will continue to re-attempt the connect and authentication as long as the callback returns a value of OCI_FO_RETRY
. Any delay must be coded into the callback logic
Server side TAF settings override client-side counterparts that might be configured in TNS connect descriptors. If TAF is not configured on the client side, then at a minimum, the failover type must be set to enable TAF. If the failover type is set on the server side, then the failover method will default to BASIC
. Delay and retries are optional and may be specified independently.
The following table lists the exceptions raised by DBMS_SERVICE
package.
Table 130-4 DBMS_SERVICE Exceptions
Exception | Error Code | Description |
---|---|---|
|
44301 |
The service name argument was found to be |
|
44302 |
The network name argument was found to be |
|
44303 |
This service name was already in existence |
|
44304 |
The specified service was not in existence |
|
44305 |
The specified service was running |
|
44306 |
The service name was too long |
|
44307 |
The network name, excluding the domain, was too long |
|
44308 |
The services layer was not yet initialized |
|
44309 |
There was an unknown failure |
|
44310 |
The maximum number of services has been reached |
|
44311 |
The specified service was not running |
|
44312 |
The database was closed |
|
44313 |
The instance name argument was not valid |
|
44314 |
The network name was already in existence |
|
44315 |
All attributes specified were |
|
44316 |
Invalid argument supplied |
|
44317 |
The database is open read-only |
|
44318 |
The total length of all running service network names exceeded the maximum allowable length |
Table 130-5 DBMS_SERVICE Package Subprograms
Subprogram | Description |
---|---|
Creates service |
|
Deletes service |
|
Disconnects service |
|
Modifies service |
|
Activates service |
|
Stops service |
This procedure creates a service name in the data dictionary. Services are also created in the data dictionary implicitly when you set the service in the service_name
parameter or by means of the ALTER
SYSTEM
SET
SERVICE_NAMES
command.
Note:
This procedure is deprecated in databases managed by Oracle Clusterware and Oracle Restart with Release 11.2. While the procedure remains available in the package, Oracle recommends usingsrvctl
to manage services. This is because the service attributes are stored in CRS by srvctl
, and overwrite those specified by DBMS_SERVICE
. The DBMS_SERVICE
procedures do not update the CRS attributes.Note:
The functionality associated with theedition
argument is available starting with Oracle Database 11g Release 2 (11.2.0.2).DBMS_SERVICE.CREATE_SERVICE( service_name IN VARCHAR2, network_name IN VARCHAR2, goal IN NUMBER DEFAULT NULL, dtp IN BOOLEAN DEFAULT NULL, aq_ha_notifications IN BOOLEAN DEFAULT NULL, failover_method IN VARCHAR2 DEFAULT NULL, failover_type IN VARCHAR2 DEFAULT NULL, failover_retries IN NUMBER DEFAULT NULL, failover_delay IN NUMBER DEFAULT NULL, clb_goal IN NUMBER DEFAULT NULL, edition IN VARCHAR2 DEFAULT NULL);
Table 130-6 CREATE_SERVICE Procedure Parameters
Parameter | Description |
---|---|
|
Name of the service limited to 64 characters in the Data Dictionary |
|
The network name of the service as used in SQLNet connect descriptors for client connections. This is limited to the NET |
|
The workload management goal directive for the service. Valid values:
|
|
Declares the service to be for DTP or distributed transactions including XA transactions |
|
Determines whether HA events are sent through AQ for this service |
|
The TAF failover method for the service |
|
The TAF failover type for the service |
|
The TAF failover retries for the service |
|
The TAF failover delay for the service |
|
Method used for Connection Load Balancing (see Table 130-2, "Constants used in Connection Balancing Goal Arguments") |
|
If this argument has a non- During service creation or modification, no validation is performed on this parameter. At connection time, if the connecting user does not have |
DBMS_SERVICE.CREATE_SERVICE('ernie.us.oracle.com','ernie.us.oracle.com');
This procedure deletes a service from the data dictionary.
Note:
This procedure is deprecated in databases managed by Oracle Clusterware and Oracle Restart with Release 11.2. While the procedure remains available in the package, Oracle recommends usingsrvctl
to manage services. This is because the service attributes are stored in CRS by srvctl
, and overwrite those specified by DBMS_SERVICE
. Unless the service is also deleted with srvctl
, it will be re-created in the database when CRS next starts the service.DBMS_SERVICE.DELETE_SERVICE( service_name IN VARCHAR2);
Table 130-7 DELETE_SERVICE Procedure Parameters
Parameter | Description |
---|---|
|
Name of the service limited to 64 characters in the Data Dictionary |
DBMS_SERVICE.DELETE_SERVICE('ernie.us.oracle.com');
This procedure disconnects sessions with the named service at the current instance.
DBMS_SERVICE.DISCONNECT_SESSION( service_name IN VARCHAR2, disconnect_option IN NUMBER DEFAULT POST_TRANSACTION);
Table 130-8 DISCONNECT_SESSION Procedure Parameters
Parameter | Description |
---|---|
|
Name of the service limited to 64 characters in the Data Dictionary |
disconnect_option |
There are two options, package constants expressed as
Note: |
This procedure can be used in the context of a single instance as well as with Oracle Real Application Clusters.
This subprogram does not return until all corresponding sessions are disconnected. Therefore, use the DBMS_JOB
package or put the SQL session in background if the caller does not want to wait for all corresponding sessions to be disconnected.
This disconnects sessions with service_name
'ernie.us.oracle.com'
.
DBMS_SERVICE.DISCONNECT_SESSION('ernie.us.oracle.com');
This procedure modifies an existing service.
Note:
This procedure is deprecated in databases managed by Oracle Clusterware and Oracle Restart with Release 11.2. While the procedure remains available in the package, Oracle recommends usingsrvctl
to manage services. This is because the service attributes are stored in CRS by srvctl
, and overwrite those specified by DBMS_SERVICE
. The DBMS_SERVICE
procedures do not update the CRS attributes and therefore are not persistent, though they do take effect immediately, until the service is next started with srvctl
.Note:
The functionality associated with theedition
and modify_edition
arguments is available starting with Oracle Database 11g Release 2 (11.2.0.2).DBMS_SERVICE.MODIFY_SERVICE( service_name IN VARCHAR2, goal IN NUMBER DEFAULT NULL, dtp IN BOOLEAN DEFAULT NULL, aq_ha_notifications IN BOOLEAN DEFAULT NULL, failover_method IN VARCHAR2 DEFAULT NULL, failover_type IN VARCHAR2 DEFAULT NULL, failover_retries IN NUMBER DEFAULT NULL, failover_delay IN NUMBER DEFAULT NULL, clb_goal IN NUMBER DEFAULT NULL, edition IN VARCHAR2 DEFAULT NULL, modify_edition IN BOOLEAN DEFAULT FALSE);
Table 130-9 MODIFY_SERVICE Procedure Parameters
Parameter | Description |
---|---|
|
Name of the service limited to 64 characters in the Data Dictionary |
|
The workload management goal directive for the service. Valid values:
|
|
Declares the service to be for DTP or distributed transactions including XA transactions |
|
Determines whether HA events are sent through AQ for this service |
|
The TAF failover method for the service |
|
The TAF failover type for the service |
|
The TAF failover retries for the service |
|
The TAF failover delay for the service |
|
Method used for Connection Load Balancing (see Table 130-2, "Constants used in Connection Balancing Goal Arguments") |
|
If this argument has a non- During service creation or modification, no validation is performed on this parameter. At connection time, if the connecting user does not have |
|
If |
If you are using Clustered Managed Services with Oracle Clusterware, or using Oracle Restart with your single instance database, you must modify services using the srvctl
command rather than DBMS_SERVICE
. When the service is started by Oracle Clusterware or Oracle Restart, the service will be modified in the database to match the resource defined to either Oracle Clusterware or Oracle Restart. Any changes made with DBMS_SERVICE
will be lost unless they are also made with the corresponding srvctl
command. Service attribute modifications take effect immediately starting with 11.2.0.2 when the service is started or modified by srvctl
.
Although the edition attribute can be modified while the service is up and running, it may not be safe to do so. Users must proceed with caution since this will cause new connections to be connected at the new edition, while existing connection will not be affected. This can in turn cause mid-tier operations to connect to the wrong edition.
This procedure starts a service. This procedure alters the service_name
IOP to contain this service_name
. In Oracle RAC, implementing this option will act on the instance specified.
Note:
This procedure is deprecated in databases managed by Oracle Clusterware and Oracle Restart with Release 11.2. While the procedure remains available in the package, Oracle recommends usingsrvctl
to manage services.DBMS_SERVICE.START_SERVICE( service_name IN VARCHAR2, instance_name IN VARCHAR2);
Table 130-10 START_SERVICE Procedure Parameters
Parameter | Description |
---|---|
|
Name of the service limited to 64 characters in the Data Dictionary |
|
Name of the instance where the service must be activated (optional). The instance on which to start the service. |
DBMS_SERVICE.START_SERVICE('ernie.us.oracle.com');
This procedure stops a service, altering the service_name
IOP to remove this service_name
.
Note:
This procedure is deprecated in databases managed by Oracle Clusterware and Oracle Restart with Release 11.2. While the procedure remains available in the package, Oracle recommends usingsrvctl
to manage services.DBMS_SERVICE.STOP_SERVICE( service_name IN VARCHAR2, instance_name IN VARCHAR2);
Table 130-11 STOP_SERVICE Procedure Parameters
Parameter | Description |
---|---|
|
Name of the service limited to 64 characters in the Data Dictionary |
|
Name of the instance where the service must be stopped (optional). The instance on which to stop the service. |
DBMS_SERVICE.STOP_SERVICE('ernie.us.oracle.com');