Oracle Internet Directory Administrator's Guide Release 9.0.2 Part Number A95192-01 |
|
This chapter discusses the Oracle directory integration server and tells you how to configure and manage it. It contains these topics:
The Oracle directory integration server is the central component of the Oracle Directory Integration platform. It is a server process that does the following:
The directory integration server controls the time of data synchronization between OID and connected directories. If there is an agent, its execution time is also scheduled. All such scheduling information for each such directory is stored in its synchronization profile.
The directory integration server imports and exports changes into and out of Oracle Internet Directory. LDIF, LDAP, and tagged interfaces are supported.
The directory integration server includes a generic facility for filtering and mapping data to the connected directories. The directory integration server maps attributes while exporting data to a connected directory and when interpreting import data from a file or directory for input to Oracle Internet Directory.
You can run multiple directory integration server instances, on any host.
After installing the directory integration server, you must register it with Oracle Internet Directory by using the Oracle directory integration server registration tool (odisrvreg
). You must separately register each directory integration server installed on a different host, by running odisrvreg
on that host. To run this tool, you need the privileges of an Oracle Internet Directory administrator.
As part of the registration, the tool creates an entry in the directory. It sets the password for the directory integration server and stores it as an encrypted value in the registration entry. If the registration entry already exists, then you can use the tool to reset the existing password. The odisrvreg
tool also creates a local file called odisrvwallet
, at $
ORACLE_HOME/ldap/odi/conf
. This file acts as a private wallet for the directory integration server, which uses it on startup to bind to the directory. Table 30-1 describes the parameters odisrvreg
uses. You can also run odisrvreg
in SSL mode to make communication between the tool and the directory fully secure, using three additional parameters that are also in Table 30-1.
To register the directory integration server in non-SSL mode, enter this command:
odisrvreg -h hostname -p port -D binddn -w bindpasswd
To register the Oracle directory integration server in SSL mode, i.e., to run the registration tool in SSL mode, enter the following:
odisrvreg -h hostname -p port -D binddn -w bindpasswd
-U ssl_mode -W wallet -P wallet_password
The three additional parameters, shown here on a separate line for clarity, are actually used on the same command line as the others.
This section introduces structural and operational information about the directory integration server and contains these topics:
Each directory integration server can execute a set of connections supporting data synchronization between Oracle Internet Directory and connected directories. The set of connectors enabling the server to support these connections is listed in its configuration set and passed as one of the command-line arguments to the server.
Whenever a connector is scheduled to do synchronization, the directory integration server starts up a separate thread. This thread opens an LDAP connection to the directory server, then closes the connection before exiting.
The server has three types of threads of execution in the process:
This is the daemon thread of the Server. It starts up the Scheduler and periodically sends refresh signals to it, to look for changed profiles and to refresh its cache. This thread also looks for the shutdown signal from the Oracle Internet Directory Process Manager (oidmon). This signal causes the thread to shut itself down after it sends a signal to the Scheduler to shut down.
Schedules the connectors for synchronization based on their scheduling interval. On receipt of a refresh signal from the Main Thread, this Scheduler thread refreshes the synchronization profiles to the latest values.
Connector threads are spawned by the Scheduler at their individual scheduling intervals. Upon invocation, a connector thread invokes the connector executable named in the profile and performs the mapping and filtering of the attributes. A connector thread terminates when its synchronization cycle is over.
If no integration profiles are listed for the configuration set, the Oracle Directory Integration server waits indefinitely until integration profiles are added to that configuration set. (This wait also occurs if integration profiles are configured for the configuration set, but they are all disabled.)
If the configuration set specified in the command line does not exist in the directory, then the Oracle Directory Integration server logs this information in the log file and exits.
If the configuration set is not specified, then configuration set 0 is assumed, and all the provisioning profiles are considered for scheduling.
See Also:
|
The Oracle directory integration server is the central component of the Oracle Directory Integration Platform. Any specific instance of the Oracle Directory Integration Server supports either provisioning or synchronization. The directory integration server runs as a multi-threaded process while handling the synchronization and provisioning event propagations.
The three threads described in the previous section work together to create these typical process flow sequences:
As discussed above, a configuration set entry contains a list of all the integration profiles that the directory integration server is to execute. You can create, modify, and view configuration set entries by using either Oracle Directory Manager or the appropriate command line tools.
A configuration set is also a means of establishing an association between the host and the integration profile for synchronization. When a connector is registered, an integration profile is created and added to the configuration set. This configuration set entry determines the behavior of the directory integration server.
You can control the runtime behavior of the directory integration server by using a different configuration set entry when you start it. For example, you can start instance 1 of the directory integration server on host H1 with configset1
, and instance 2 of the directory integration server on host H1 with configset2
. The behavior of instance 1 of the directory integration server depends on configset 1, and that of instance 2 depends on configset2. By dividing different agents on host H1 between the two configuration set entries, you are distributing the load of running the agents on host H1 between the two directory integration server instances. Similarly, running different configuration sets and different instances on different hosts helps in balancing the load between the servers.
This section contains these topics:
The Oracle directory integration server executable, odisrv
, resides in the $
ORACLE_HOME/bin
directory.
The way you start the directory integration server depends on whether your installation includes the OID Monitor and the OID Control Utility. These tools--along with other server and client components--are parts of a typical server installation. In such installations, you start the directory integration server by using these tools.
Client-only installations do not include the OID Monitor and the OID Control Utility. In such installations, you start the directory integration server from the command line.
The directory server can be started in non-SSL mode, or in SSL mode for tighter security. Table 30-2 describes the parameters for each type of invocation.
To start the directory integration server in non-SSL mode:
ps -ef | grep oidmon
If OID Monitor is not running, then start it by following the instructions in "Task 1: Start the OID Monitor".
oidctl [connect=net_service_name] server=odisrv [instance=instance_number] [config=configuration_set_number] [flags="[host=hostname
] [port=port_number] [debug=debug_level] [refresh=interval-between-refresh]
[maxprofiles=number-of-profiles] "] start
Table 30-2 describes the arguments in this command.
Argument | Description |
---|---|
|
If you already have a |
|
Type of server to start. In this case, the server you are starting is |
|
Specifies the instance number to assign to the directory integration server. This instance number must be unique. OID Monitor verifies that the instance number is not already associated with a currently running instance of this server. If it is associated with a currently running instance, then OID Monitor returns an error message. |
|
Specifies the number of the configuration set that the the directory integration server is to execute. This argument is mandatory. |
|
Oracle directory server host name |
|
Oracle directory server port number |
|
The required debugging level of the directory integration server See Also: Table 30-4 for a description of the various debug levels |
refresh=interval-between-refresh |
Specifies the interval, in minutes, between server refresh for any changes in the integration profiles. |
maxprofiles=number-of-profiles |
Specifies the maximum number of profiles that can be executed concurrently for this server instance |
sslauth=ssl_mode |
SSL modes (0: NO Auth, 1: One Way) |
wloc=wallet |
SSL wallet. Enter the full path. For example, on Solaris, you could set this parameter as follows: file:/home/my_dir/my_wallet On Windows NT, you could set this parameter as follows: file:C:\my_dir\my_wallet |
wpass=wallet_password |
Password used for opening the SSL wallet |
To start the directory server in SSL mode, use the following command:
oidctl [connect=net_service_name] server=odisrv [instance=instance_number] [config=configuration_set_number] [flags="[host=hostname
] [port=port_number] [debug=debug_level] [refresh=interval-between-refresh] [maxprofiles=number-of-profiles]
[ sslauth=ssl_mode ] [ wloc=wallet ] [ wpass=wallet_password] "] start
As you can see, the only difference is the use of the SSL-related flags:
sslauth=ssl_mode, wloc=wallet, and wpass=wallet_password
The directory server can also be started without OID Monitor or OID Control Utility, either in non-SSL mode or, for tighter security, in SSL mode. The parameters described in Table 30-2 remain the parameters for each type of invocation.
To start the directory integration server in non-SSL mode, enter the following at the command line:
odisrv [host=host_name] [port=port_number]
config=configuration_set_number [instance=instance_number] [debug=debug_level] [refresh=interval-between-refresh] [maxprofiles=number-of-profiles]
To start the directory integration server in SSL mode, enter the following at the command line:
odisrv [host=host_name] [port=port_number] config=configuration_set_number [instance=instance_number] [debug=debug_level] [refresh=interval-between-refresh] [maxprofiles=number-of-profiles] [ sslauth=ssl_mode ] [ wloc=wallet ]
[ wpass=wallet_password]
Again you can see that the only difference is the use of the SSL-related flags:
sslauth=ssl_mode, wloc=wallet, and wpass=wallet_password
You stop the directory integration server using the same tool that you used to start it: by using OID Monitor and the OID Control Utility, or by using odisrv.
If you started the directory integration server by using OID Monitor and the OID Control utility, then you use them to stop it, as follows:
ps -ef | grep oidmon
If OID Monitor is not running, then start it by following the instructions in "Task 1: Start the OID Monitor".
oidctl [connect=net_service_name] server=odisrv instance=instance stop
In a client-only installation where the monitor and OIDCTL tools are not available, the Oracle directory integration server can be started without the OIDCTL tool. To stop the server without these tools, use the stopOdiServer.sh tool, which is located at$
ORACLE_HOME
/ldap/admin/stopodiserver.sh
.
Note: To run shell script tools on the Windows operating system, you need one of the following UNIX emulation utilities:
|
The stopOdiServer.sh tool is used as follows:
$ORACLE_HOME/ldap/admin/stopodiserver.sh \
[-LDAPhost <LDAP server host> ] [ -LDAPport <LDAP server port> ] \
[-binddn SuperUserDN (default cn=orcladmin ) ]\
[-bindpass Bindpassword (default=welcome) ]\
-instance <Instance NUmber to STOP>
where the arguments are explained in Table 30-3.
If you use OID Monitor and the OID Control utility, then you can both stop and restart the directory integration server in one command, namely, restart
. This is useful when you want to refresh the server cache immediately, rather than at the next scheduled time. When the directory integration server restarts, it maintains the same parameters it had before it stopped.
To restart the directory integration server:
ps -ef | grep oidmon
If OID Monitor is not running, then start it by following the instructions in "Task 1: Start the OID Monitor".
oidctl [connect=net_service_name] server=odisrv instance=instance_number restart
You can specify the kinds of server and profile events to be listed in a log file by using the debug
flag.
To specify multiple types of debugging:
484
:
oidctl server=odisrv flags="debug=7" start
The various types of debug events are listed in Table 30-4 and Table 30-5.
Debug Event Type (Server debugging) | Numeric Value |
---|---|
Starting and stopping of different threads. |
|
Detail level - shows the refresh details |
|
Debug Event Type (Profiles) | Numeric Value |
---|---|
Start and Stop of the thread |
|
Initialization, execution, and end details |
|
Details during execution |
|
Change Record |
|
Mapping Details |
|
If you do not set a value for the debug flag, then the default level is 0
(zero), and none of the debug events in the tables above are logged. (However, errors and exceptions are always logged.)
When a non-zero debug level is specified, each trace statement in the server log file includes:
The various trace-statement types are:
The log file is located in
the $
ORACLE_HOME/ldap/log/odisrv_
instance_number.log
directory.
For example, if the server was started as server instance number 3, then the log file would have this path name: $
ORACLE_HOME
/ldap/log/odisrv03.log
.
All the profile-specific debug events are stored in the profile-specific trace file in $
ORACLE_HOME
\ldap\odi\log\
profile_name.trc
.
While synchronization is in progress for an export operation, the server constantly updates the synchronization status attribute, orcllastappliedchangenumber
. In Oracle Directory Manager, this field is called OID last applied change number.
To change this attribute manually from Oracle Directory Manager:
When the directory integration server starts, it generates specific runtime information and stores it in the directory. This information includes:
You can view this information for the directory integration server by using either Oracle Directory Manager or ldapsearch.
To view runtime information for the directory integration server instance by using Oracle Directory Manager:
To view registration information for the directory integration server instance by using ldapsearch, perform a base search on its entry. For example:
ldapsearch -p 389 -h my_host -b cn=instance1,cn=odisrv,cn=subregistrysubentry -s base -v "objectclass=*"
This example search returns the following:
dn: cn=instance1,cn=odisrv,cn=subregistrysubentry cn: instance1 orcldiaconfigdns: "orclDIAName=HR,cn=subscriber profile,cn=changelog subscriber, cn=oracle internet directory" orcldiaconfigrefreshflag: 0 orclhostname: my_host orclconfigsetnumber: 1 objectclass: top objectclass: orclDIA
If you use the Oracle Directory Integration platform in a replicated environment with more than one node, then set the orcldiprepository
attribute in DSE root to 1
. This makes the OID server generate change log entries for changes from the other Oracle Internet Directory nodes. (By default, the directory server does not generate these change log entries.) The change log entries are required for directory data to be synchronized with third-party directories and metadirectories.
|
Copyright © 1999, 2002 Oracle Corporation. All Rights Reserved. |
|