NAME TYPE VALUE
------------------------------------ -------------------------------- ------------------------------
dispatchers string (PROTOCOL=TCP)(DISPATCHERS=8)
[oracle@hpejxjgdbcheck ~]$ ps -ef|grep d00
oracle 24751 1 0 Dec09 ? 00:00:06 ora_d000_jk
oracle 24753 1 0 Dec09 ? 00:00:06 ora_d001_jk
oracle 24755 1 0 Dec09 ? 00:00:06 ora_d002_jk
oracle 24757 1 0 Dec09 ? 00:00:06 ora_d003_jk
oracle 24759 1 0 Dec09 ? 00:00:06 ora_d004_jk
oracle 24761 1 0 Dec09 ? 00:00:06 ora_d005_jk
oracle 24763 1 0 Dec09 ? 00:00:06 ora_d006_jk
oracle 24765 1 0 Dec09 ? 00:00:06 ora_d007_jk
oracle 24767 1 0 Dec09 ? 00:00:06 ora_d008_jk
oracle 24769 1 0 Dec09 ? 00:00:06 ora_d009_jk
alter system set dispatchers=' (PROTOCOL=TCP)(DIS=0)';
SOLUTION
The problem here is a configuration issue where the _DGB services have dispatchers registered against them and the TNS alias used to establish the broker configuration and used by the broker processes to obtain database information are not forcing the use of a dedicated server connection.
The TNS Alias you are using to connect to the primary and standby sites are resolving to a service that has both dedicated and shared server processes available to handle the connection.
The TNS Alias alias bnt00p_dgb for example is connecting to a service_name of BNT00P and has not specified that it is to be a dedicated server connection.
TNS Ping Utility for Solaris: Version 11.2.0.3.0 - Production on 27-FEB-2014 17:02:20
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = YOURNODENAME.YOURCO.COM)(PORT = 1530))) (CONNECT_DATA = (SERVICE_NAME = BNT00P)))
OK (10 msec)
The listener service listing shows that connections are indeed being made to the _DGB service used by the brokers through dispatchers and shared servers.
Instance "BNT00P", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:6 refused:0
LOCAL SERVER
Instance "BNT00P", status READY, has 9 handler(s) for this service...
Handler(s):
"D007" established:13 refused:0 current:1 max:1022 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=YOURNODENAME)(PORT=33262))
To correct this issue perform the following:
1. Create a new TNS Alias that forces the use of dedicated server based sessions within your database.
For example:
2. Change the broker configuration alias that is used to establish sessions
3. You also need to make sure that no dispatchers are being registered against the listener service BNT00P_DGB as this will also be used by the broker. While the use of dispatchers is fine for end users, SYSDBA based connections should always be performed through dedicated server processes.
For example the example database below has only got dispatchers registered against the service rs1XDB. There are no dispatcher registered for the BNT00P_DGB service specifically.
dispatchers string (PROTOCOL=TCP) (SERVICE=rs1XDB )
Once the changes above have been implemented disable the broker configuration and re-enable it once more.
4. Disable the configuration and re-enable it again
In the Primary site
SQL> alter system set dg_broker_start=false
SQL> alter system set dg_broker_start=true
DGMGRL> enable configuration