Please see my other blog for Oracle EBusiness Suite Posts - EBMentors

Search This Blog

Note: All the posts are based on practical approach avoiding lengthy theory. All have been tested on some development servers. Please don’t test any post on production servers until you are sure.

Sunday, December 19, 2010

Troubleshooting Guide for the CMAN in 10g

These are the most common problems you face when using a 10g CMAN:










TNS-04012: Unable to start Oracle Connection Manager instance


When starting the CMAN on Windows machine you are receing the errors:
CMCTL:CMAN_indl040ad> startup
Failed to start service, error 997.
TNS-04012: Unable to start Oracle Connection Manager instance.
CMCTL:CMAN_indl040ad>
Or on Unix machine you are receiving the errors:
CMCTL:CMAN_incq048ad.idc.oracle.com> startup
TNS-04012: Unable to start Oracle Connection Manager instance.
CMCTL:CMAN_incq048ad.idc.oracle.com>

You receive this error usually when there is some syntax errors in the cman.ora file.
The usual causes are:
1.1:
The rule_list missing the line that is used to accept administration commands
from the local host. Either of the following entries in the RULE_LIST must exist  in order to start the cman.
(rule=(src=indl040ad)(dst=127.0.0.1)(srv=cmon)(act=accept))
            or
(rule=(src=*)(dst=*)(srv=*)(act=accept))

1.2:
The TRACE_LEVEL parameter in PARAMETER_LIST is configured with a      numeric value. Fact is that in earlier releases cman tracing was enabled by the parameter TRACING=YES | NO under the PARAMETER_LIST in cman.ora. From 10g onwards, the tracing is enabled as done for listener or client or server sqlnet tracing. i.e the parameter TRACE_LEVEL in the PARAMETER_LIST has to be included for this. The parameter TRACING = YES | NO has been stopped.

But again, there is one more interesting fact about this.
The allowed values for this are  “off | user | admin | support
Note: only the above string values are allowed and the numeric equivalent of these values are not allowed.
If the numeric values equivalent for these are used in cman.ora, the cman service doesnot startup

1.3:
The ADDRESS_LIST parameter is used in the cman.ora file as below:
(ADDRESS_LIST=
                      (ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1630))
            )
This clause is not needed. Change it to the entry as below:

                      (ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1630))

TNS-04006: Invalid password


CMCTL> administer
Enter CMAN Password:
TNS-04006: Invalid password
CMCTL>

            This is the error that you receive when you are attempting to administer a cman instance that is password protected, is already up and running and enter an invalid password for this operation.
However, if the CMAN is not started yet, the administer command succeeds but when the startup command is issued it prompts for the password. If an incorrect password is entered, it starts up the CMAN service but also throws the above error.

TNS-04005: Unable to resolve address for


If you give an instance name that doesnot exist or if you commit a typo when issuing an ADMINISTER command you receive the following error.

CMCTL> administer test
TNS-04005: Unable to resolve address for test
CMCTL>

TNS-12538 when administering a CMAN


If you have the word PROTO instead of the key word PROTOCOL in the cman.ora file, you receive the error message as below:

CMCTL> administer
TNS-12538: TNS:no such protocol adapter
CMCTL>

The keyword has to be the complete word PROTOCOL and not just PROTO

NL-00857 when Administer using command


The ADMINISTER command is used to choose an instance of Oracle Connection Manager.

Syntax
From the Oracle Connection Manager Control utility:
CMCTL> ADMINISTER [-c instance_name] using [password]

Strangely this does not work as below:

CMCTL> administer -c cman_indl040ad using jayu123
NL-00857: wrong number (0 - 3 needed) of arguments to "administer"
           
            Correct syntax that works is:
            CMCTL> administer cman_indl040ad using jayu123
Current instance cman_indl040ad is already started
Connections refer to (address=(protocol=TCP)(host=indl040ad)(port=1560)).
The command completed successfully.
CMCTL:cman_indl040ad>
           
A bug 4297538 has been filed for the same to make modifications

Starting CMAN on windows just hangs with no errors on Win2k


Sometimes the starting of CMAN from a command prompt hangs without returning any errors on windows platform.

CMCTL> administer cman_indl040ad using jayu123
Current instance cman_indl040ad is already started
Connections refer to (address=(protocol=TCP)(host=indl040ad)(port=1560)).
The command completed successfully.
CMCTL:cman_indl040ad> shutdown
The command completed successfully.
CMCTL:cman_indl040ad> startup

You have to issue a CTRL + C for coming out of this.
The services panel indicates that the services are started for this instance but show all command from CMCTL gives the output that instance is not running as illustrated below:

CMCTL> administer
Current instance CMAN_indl040ad is not yet started
Connections refer to (address=(protocol=TCP)(host=indl040ad)(port=1560)).
The command completed successfully.
CMCTL:CMAN_indl040ad> show all
TNS-04011: Oracle Connection Manager instance not yet started.
CMCTL:CMAN_indl040ad>
The trace files aslo doesnot indicate any errors:
Excerpt from Cmadmin trace file:
[05-JAN-2005 13:23:50:374] sntpinherit: Attempting to make pipe \\.\PIPE\ORANTP50C.3B0.w
[05-JAN-2005 13:23:50:374] sntpinherit: Listening on pipe \\.\PIPE\ORANTP50C.3B0.w
[05-JAN-2005 13:23:50:374] sntpinherit: Attempting to make pipe \\.\PIPE\ORANTP50C.3B0
[05-JAN-2005 13:23:50:374] sntpinherit: Listening on pipe \\.\PIPE\ORANTP50C.3B0
[05-JAN-2005 14:53:40:613] nttaddr2bnd: entry
[05-JAN-2005 14:53:40:623] nttaddr2bnd: exit
[05-JAN-2005 14:53:40:623] nsgllsn: Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=indl040ad.idc.oracle.com)(PORT=1560)))
and goes on in a loop with entries similar to below:

[05-JAN-2005 14:53:40:623] nsiorecv: entry
[05-JAN-2005 14:53:40:623] nttmrd: entry
[05-JAN-2005 14:53:40:623] nttrd: entry
[05-JAN-2005 14:53:40:623] ntt2err: entry
[05-JAN-2005 14:53:40:623] ntt2err: soc 396 error - operation=5, ntresnt[0]=524, ntresnt[1]=36, ntresnt[2]=0
[05-JAN-2005 14:53:40:623] ntt2err: exit
[05-JAN-2005 14:53:40:623] nttrd: exit
[05-JAN-2005 14:53:40:623] nsiorecv: exit (0)
….
[05-JAN-2005 14:53:40:623] nsiorecv: entry
[05-JAN-2005 14:53:40:623] nttmrd: entry
[05-JAN-2005 14:53:40:623] nttrd: entry
[05-JAN-2005 14:53:40:623] ntt2err: entry
[05-JAN-2005 14:53:40:623] ntt2err: soc 396 error - operation=5, ntresnt[0]=524, ntresnt[1]=36, ntresnt[2]=0
[05-JAN-2005 14:53:40:623] ntt2err: exit
[05-JAN-2005 14:53:40:623] nttrd: exit
[05-JAN-2005 14:53:40:623] nsiorecv: exit (0)

The services cannot be stopped, gives an error and status remains as STOPPING.
We will have to reboot the machine for this so that the services are either started automatically if properties are set to AUTOMATIC or not started if set to MANUAL option.
But if this operation is tried by just issuing administer, no problem is encountered as below:

CMCTL> administer
Enter CMAN Password:
Current instance CMAN_indl040ad is already started
Connections refer to (address=(protocol=TCP)(host=indl040ad)(port=1560)).
The command completed successfully.
CMCTL:CMAN_indl040ad> startup
Starting Oracle Connection Manager instance CMAN_indl040ad. Please wait...
Enter CMAN Password:
CMAN for 32-bit Windows: Version 10.1.0.3.0 - Production
Status of the Instance
….
The command completed successfully.
CMCTL:CMAN_indl040ad> exit

Though it indicates that it is administering the proper instance, the reason why the startup hang as indicated above example is due to the fact that the case used for cman_instance in the administer command is different than in cman.ora. This indicates that cman.ora is case sensitive for the instance name.

This works if proper case is given for the command as illustrated below:

CMCTL> administer CMAN_indl040ad using jayu123
Current instance CMAN_indl040ad is not yet started
Connections refer to (address=(protocol=TCP)(host=indl040ad)(port=1560)).
The command completed successfully.
CMCTL:CMAN_indl040ad> startup
Starting Oracle Connection Manager instance CMAN_indl040ad. Please wait...
CMAN for 32-bit Windows: Version 10.1.0.3.0 - Production
Status of the Instance
The command completed successfully.
CMCTL:CMAN_indl040ad> shutdown
The command completed successfully.
CMCTL:CMAN_indl040ad> exit

This case sensitiveness behaviour is not shown in unix platform (linux tested).

Ref: 305220.1
 






No comments: