Luckily I stumbled across $ORACLE_HOME/plugins/oracle.sysman.db.agent.plugin_*/scripts/cmanresp.pl.
Another question I raised (and could not answer before) was if or how the Password was used. In this script it's quite easy visible:
This script seem to check if cman is available at all. To understand the meaning of these properties, the code is quite useful. Here some relevant parts:
my $oracleHome = $ENV{CMAN_ORACLE_HOME};
my $executable = $ENV{CMAN_ORACLE_HOME} . "/bin/cmctl";
my $name = $ENV{CMAN_NAME};
my $cmanOraDir = $ENV{CMAN_ORA_DIR};
my $machine = $ENV{CMAN_MACHINE};
my $protocol = $ENV{CMAN_PROTOCOL};
my $port = $ENV{CMAN_PORT};
my $password = $ENV{CMAN_PASSWORD};
#set default protocol
if(!defined($protocol) or $protocol eq "")
{
$protocol = "TCP";
}
#Set environment variable ORACLE_HOME
$ENV{ORACLE_HOME} = $oracleHome;
my $address = "(ADDRESS=(PROTOCOL=$protocol)(HOST=$machine)(PORT=$port))";
my $responseTime;
#----------------------------------------------
#Execute tnsping and see if cman is reachable.
#-----------------------------------------------
#check tnsping availability
if ( !-x "$oracleHome/bin/tnsping" )
{
print "em_result=|0|tnsping not found in $oracleHome/bin\n";
exit;
}
Connection Protocol, Machine Name and Port Number should match exactly the values as in cmans connection string - they are combined to (ADDRESS=(PROTOCOL=$protocol)(HOST=$machine)(PORT=$port)).
The default Protocol is TCP - as it's a required field, this should be entered there.
#Command to get the cman status
if($password eq "")
{
$command = "$executable show status -c $name";
}
else
{
$command = "$executable show status -c $name -p $password";
}
If no password is given, cmctl is used without the -p parameter.
The properties Oracle Home (ORACLE_HOME) and cman.ora directory (TNS_ADMIN) are obvious, even for me.
That's a short post, at least my documentation-to-self.
Keine Kommentare:
Kommentar veröffentlichen