This post describes a performance enhancement available in the 10.1.3.3 and 10.1.3.4 releases which can significantly speed up the repository access, particularly in dictionaries with large numbers of rulesets.
By default in 10.1.3, the rules repository stores each ruleset in a separate XML document. In a file-based repository, these documents are stored within a zip file. In a WebDAV repository, these documents are stored in a WebDAV-visible directory. This default mode for storing the rulesets is known as "multiple document format". This format was first used in the 10.1.3.1 release, and continued through to the 10.1.3.3 and 10.1.3.4 releases for backwards compatibility. However, multiple document format has negative performance ramifications, particularly with large numbers of rulesets in a WebDAV repository. The 10.1.3.3 and 10.1.3.4 releases also have the option of storing all rulesets in a single document to provide better performance. Multiple document format repositories must be manually converted to single document format to take advantage of these performance benefits.
The following utility will convert a rule repository to single document format. All dictionaries that are not in single document format are converted. Once the repository is converted, all new dictionaries that are created will be in single document format. This utility is contained in the rulesdk.jar file.
These classes are required on the classpath when running these commands: xmlparserv2.jar, xmlmesg.jar, xml.jar, orai18n.jar, oraclepki.jar, ojpse.jar, http_client.jar, rl.jar, rulesdk.jar, jr_dav.jar, webdavrc.jar.
java oracle.rules.sdk.repository.SingleDocumentFormat
-type repository_type
-path file_path | -url webdav_url [-wallet wallet_path]
where
repository_type is either file or webdav
file_path is the path to a file repository
webdav_url is the URL for a WebDAV repository
wallet_path is the path to an Oracle wallet containing WebDAV credentials
A file_path or a webdav_url must be provided.
Additionally, there is a similar utility that converts a rule repository from single document format to the multiple document format. All dictionaries that are not in multiple document format are converted. Once the repository is converted, all new dictionaries that are created will be in multiple document format.
java oracle.rules.sdk.repository.MultipleDocumentFormat
-type repository_type
-path file_path | -url webdav_url [-wallet wallet_path]
where
repository_type is either file or webdav
file_path is the path to a file repository
webdav_url is the URL for a WebDAV repository
wallet_path is the path to an Oracle wallet containing WebDAV credentials
A file_path or a webdav_url must be provided.