The change is accepted and committed to storage in the Oracle Internet Directory
How Replication Works D-11
The directory replication server keeps the change entry in the retry queue, decrements the number of retries, and repeats the change application process.
If the change entry is not successfully applied on the last retry, then:
The directory replication server places the change entry in the human intervention queue and checks to see if it is a duplicate of the target entry.
If the change entry is a duplicate entry, then:
The directory replication server applies the following conflict resolution rules:
■
The entry with the older creation time stamp is used.
■
If both entries have the same creation time stamp, then the entry with the smaller GUID is used.
If the change entry is used, then the target entry is removed, the change entry is applied, and then placed in the purge queue.
If the target entry is used, then the change entry is placed in the purge queue.
If the change entry is not a duplicate entry, then:
The directory replication server places the change entry in the human intervention queue, and repeats the change application process at specified intervals.
If the change entry is not successfully applied after it has been placed in the human intervention queue:
The directory replication server keeps the change entry in this queue, and repeats the change application process at specified intervals while awaiting action by the
administrator. The administrator can use the Oracle Internet Directory Comparison and Reconciliation Tool and the Human Intervention Queue Manipulation Tool to
resolve the conflict.
How the Multimaster Replication Process Modifies a Distinguished Name
When the directory replication server modifies the DN of an entry in a consumer, it follows this change application process:
1.
The directory replication server looks in the consumer for the DN with a GUID that matches the GUID in the change entry.
The directory replication server also looks in the consumer for the parent DN with a GUID that matches the GUID of the new parent specified in the change entry.
2.
If both the DN and the parent DN of the target entry exist in the consumer, then the directory replication server modifies the DN of that entry and places the
change entry in the purge queue.
If the change entry is not successfully applied on the first try, then:
The directory replication server places the change entry in the retry queue, sets the number of retries to the configured maximum, and repeats the change application
process.
If the change entry is not successfully applied on all but the last retry, then:
The directory replication server keeps the change entry in the retry queue, decrements the number of retries, and repeats the change application process.
If the change entry is not successfully applied by the last retry, then:
The directory replication server places the change entry in the human intervention queue and checks to see if it is a duplicate of the target entry.
D-12 Oracle Fusion Middleware Administrators Guide for Oracle Internet Directory
If the change entry is a duplicate entry, then:
The directory replication server applies the following conflict resolution rules:
■
The entry with the older creation time stamp is used.
■
If both entries have the same creation time stamp, then the entry with the smaller GUID is used.
If the change entry is used, then the target entry is removed, the change entry is applied, and then placed in the purge queue.
If the target entry is used, then the change entry is placed in the purge queue.
If the change entry is not a duplicate entry, then:
The directory replication server places the change entry in the human intervention queue, and repeats the change application process at specified intervals.
If the change entry is not successfully applied after it has been placed in the human intervention queue:
The directory replication server keeps the change entry in this queue, and repeats the change application process at specified intervals while awaiting action by the
administrator. The administrator can use the Oracle Internet Directory Comparison and Reconciliation Tool and the Human Intervention Queue Manipulation Tool to
resolve the conflict.
E
Java Server Plug-in Developers Reference E-1
E
Java Server Plug-in Developers Reference
In response to both customer and internal requests, Oracle has added a Java API to the server plug-in framework for Oracle Internet Directory. Some of the new Oracle
Internet Directory features, such as server chaining, were developed using the Java plug-in API.
This chapter contains the following sections:
■
Advantages of Java Plug-ins
■
Setting Up a Java Plug-in
■
Java Plug-in API
■
Java Plug-in Error and Exception Handling
■
Java Plug-in Debugging and Logging
■
Java Plug-in Examples
Advantages of Java Plug-ins
In addition to the advantages of the Java language itself, Java server plug-ins offer the following advantages over PLSQL plug-ins:
■
Bidirectional communication between the server and the plug-in
■
The ability of the plug-in to return a search result
■
Support for the moddn operation
■
Better performance
■
No knowledge of database required
■
Enhanced security
■
Enhanced debugging capability
Setting Up a Java Plug-in
Set up a Java plug-in as follows:
1.
Create the standalone Java program using the pre-defined class definition and methods. You can implement the plug-in as a jar file or as a package.
2.
Compile the plug-in file or package. Before compiling, ensure that your CLASSPATH is set to ORACLE_HOMEldapjlibospf.jar. Make sure the
compilation completes without error.
E-2 Oracle Fusion Middleware Administrators Guide for Oracle Internet Directory
3.
Place the class file, jar, or package in the pre-defined class location ORACLE_ HOMEldapserverplugin.
4.
Register the Java plug-in by adding the plug-in configuration entry. You can add the entry by using the command line or by using Oracle Directory
Services Manager. For details, see Registering a Plug-in From the Command Line
on page 43-6 and Managing Plug-ins by Using Oracle Directory Services
Manager on page 43-9.
The jar file can have any name. The manifest file must contain the attribute Main-Class, followed by the name of the Java plug-in. For example:
Main-Class: myjavaplugin The value of the orclPluginName attribute in the plug-in configuration entry must
correspond with one of the following:
■
The name of a class in a class file
■
The fully qualified name of a class in a package
■
A jar file name. The value of the orclPluginName attribute determines where the server expects to
find the class or jar file. Table E–1
shows some examples.
After you perform these steps, the server invokes the plug-in whenever the invocation criteria are met.
The classes included in the jar file must not occur in the environment. If they do, unexpected errors might occur. To correct this problem, remove the classes from the
environment and restart the Oracle Internet Directory server. If the JAR or class file depends on other JAR files or class files, then append the dependent JAR files or paths
of the class files to the CLASSPATH and restart the Oracle Internet Directory server.
You can control whether the server reloads the Java plug-in class every time the plug-in executes. If the value of the attribute orclPluginClassReloadEnabled is
1, the server reloads the plug-in class every time. If it is 0, the server loads the class only the first time the plug-in executes.
The path of the Oracle Internet Directory Server Plug-in Framework jar file is ORACLE_HOMEldapjlibospf.jar.
Java Plug-in API
This section presents a high-level overview of the API and explains the role of the main classes and interfaces. For detailed information about all the Java server plug-in
classes and interfaces, please see the Javadoc Oracle Fusion Middleware Java API Reference for Oracle Internet Directory.
Table E–1 Plug-in Names and Corresponding Paths
orclPluginName Path
myjavaplugin ORACLE_
HOME ldapserverpluginmyjavaplugin.class
myjavaplugin.jar ORACLE_HOME
ldapserverpluginmyjavaplugin.jar my.package.myjavaplug
in ORACLE_
HOME ldapserverpluginmypackagemyjavaplugin