|Oracle Ultra Search Online Documentation
Ultra Search can crawl on one fixed node or on any node, depending on the storage access configuration of the Real Application Clusters system. PL/SQL APIs are provided to configure which node should run the crawler, if needed. For Ultra Search administration and the Ultra Search query application, you can configure the connection string to connect to any node of Real Application Clusters.
See the documentation for Oracle9i Real Application Clusters for detailed information on Oracle Real Application Clusters.
The disk of any node in a Real Application Clusters system can be shared (cluster file system) or not shared (raw disk). For Real Application Clusters on a cluster file system (CFS), the cache files generated by the crawler on any node are visible to any Oracle instance and can be indexed by any Oracle instance that performs index synchronization. If the disk is not shared, the crawler must run on one particular Oracle instance to ensure that all cache files can be indexed.
This is due to the nature of Oracle Text indexing, where rows inserted to one table by different sessions go to the same pending queue, and whoever initiates index synchronization will attempt to index all of the inserted rows. Because of this limitation, on a CFS, Ultra Search is configured to launch the crawler on any database instance. If it is not on a CFS, Ultra Search launches the crawler on the database instance where INSTANCE_NUMBER = 1.
The Ultra Search administrator can configure which instance to run the crawler with the following PL/SQL API:
where instance_name is the name of the launching instance (or the database name if it is to be launched on any node) and connect_url is the connect descriptor.
For connection to a single database instance, the descriptor can be in the short form "<host>:<port>:<SID>" or the connect descriptor (Oracle Net keyword-value pair). For example:
To connect to any database instance, the full database connect descriptor must be used. For example:
(DESCRIPTION=(LOAD_BALANCE=yes)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=cls02a)(PORT=3999 ))(ADDRESS=(PROTOCOL=TCP)(HOST=cls02b)(PORT=3999)))(CONNECT_DATA=(SERVICE_NAME=acme.us.com) ))
See JDBC Developer's Guide and Reference for configuration details.
Note: You cannot configure Ultra Search to launch the crawler on any node on a non-cluster file system.
To query on the existing launching instance configuration, use the following PL/SQL API:
WK_ADM.GET_LAUNCH_INSTANCE RETURN VARCHAR2
This returns the name of the launching instance or the database name if any node can launch the crawler.
The Ultra Search remote crawler requires that the remote file system be mounted on the Oracle instance for indexing.
All components of Ultra Search use the JDBC thin driver with the connect string consisting of "<host name>:<port number>:<SID> or the full connect descriptor as seen in tnsname.ora.
The administration middle tier connects to the Oracle database with a JDBC connection specified in the ultrasearch.properties file. If the client serving node is down, you must manually edit the ultrasearch.properties file to connect to a different Oracle instance.
Query components should fully utilize Real Application Clusters. You can specify the JDBC connection string as a database connect descriptor so that it can connect to any Oracle instance in Real Application Clusters. For example:
"jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=yes)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=cls02a)(PORT=3999 ))(ADDRESS=(PROTOCOL=TCP)(HOST=cls02b)(PORT=3999)))(CONNECT_DATA=(SERVICE_NAME=acme.us.com) ))"
See JDBC Developer's Guide and Reference for details.
The connect string used by Ultra Search crawler is initialized during installation and can be changed with the WK_ADM.SET_LAUNCH_INSTANCE API. When there is a system configuration change, like adding or dropping a node, the connect string is changed automatically.
The Ultra Search administrator can also configure the local crawler to use the JDBC OCI driver to log on to the database. This is done with the following PL/SQL API:
This API requires the WKADMIN privilege. The change affects all Ultra Search instances.
Note: The OCI driver requires that environment variables, like LD_LIBRARY_PATH and NLS_LANG, be set properly on the launching database instance. The crawler inherits the environment setting from Oracle process. Therefore, you must set them up appropriately before starting up Oracle.
See JDBC Developer's Guide and Reference for configuration details on using the OCI driver.
The following PL/SQL API finds out what kind of JDBC drivers are used currently:
WK_ADM.GET_JDBC_DRIVER RETURN NUMBER