Skip Headers

Oracle® Business Rules User's Guide 10g Release 3 (10.1.3) B15986-01 |
| Home | Solution Area | Contents | Index

Previous | Next |

# C Oracle Business Rules Frequently Asked Questions

This appendix contains frequently asked questions about Oracle Business Rules. Answers to each question are provided in each of the following categories:

- Frequently Asked Questions About Rules Operations

- What JAR Files are Required for Working with Oracle Business Rules?

## C.1 Frequently Asked Questions About Rules Operations

This section addresses frequently asked questions relating to the semantics of Rules operations in Oracle Business Rules.

### C.1.1 Why is the State of a Fact in a Rule Action Inconsistent with the Rule Condition?

The object was modified between the time the rule was activated and the time the rule was fired (executed), and the object was not re-asserted in the Rules Engine.

Objects (Java or RL) must be asserted as facts in the Rules Engine before they are used in rule evaluations. When an object that has been asserted as a fact is modified, either in the action of a rule or by something external to the Rules Engine (presumably by the application), the object must be re-asserted in the Rules Engine in order for the current object state to be reflected in the Rules Engine and thus in the rule evaluation. If this is not done, the application and Rules Engine are in an inconsistent state which can lead to unexpected behavior.

A Java bean may be written to support `PropertyChangeListener` so that the Rules Engine can automatically maintain a consistent state when a bean property us update. For more information, see Section 1.3.4.1, "Java Fact Type Definitions".

The one exception to this rule is for an object whose content is not being evaluated; that is, the Rules Engine does not contain a rule that tests or accesses any method or property of that object. One example of such a case is an object used to accumulate results from rule evaluations.

Tip: Suppose you have a rule that produces a sum from a collection of facts. Re-asserting the facts whose values are being summed yields an incorrect result in the fact containing the sum. Make sure you also re-assert the rule that produces the sum.

### C.1.2 A Changed Java Object was Asserted as a Fact, but no Rules Fired. Why?

The object must be re-asserted in the Rules Engine. Therefore, the Rules Engine did not re-evaluate any rule conditions and did not activate any rules. For more information, refer to Section C.1.1.

### C.1.3 What are the Differences Between Oracle Business Rules RL Language and Java?

See Appendix A in Oracle Business Rules Language Reference Guide.

## C.2 What JAR Files are Required for Working with Oracle Business Rules?

Oracle Business Rules support requires the JAR files listed in Table C-1. All paths are relative to `$ORACLE_HOME`.

Table C-1 Oracle Business Rules Required JAR Files

JAR File | Description
--- | ---
`rules/lib/rl.jar` | The Oracle Business Rules Rules Engine library. This is the Java API used to instantiate and interact with the Rules Engine.
`rules/lib/rl_dms.jar` | Rules Engine Dynamic Monitoring Service (DMS) support. This file is required if DMS is enabled for a `RuleSession`.
`rules/lib/rulesdk.jar` | The Oracle Business Rules SDK. This is the Java API used to programatically author rules.
`rules/lib/webdavrc.jar` | The Oracle Business Rules SDK library for support of WebDAV repositories. This file is required when using the SDK with a WebDAV repository.
`rules/lib/jr_dav.jar` | The WebDAV client library. This file is required when using the SDK with a WebDAV repository.
`jlib/oraclepki.jar` | This file is required to support authentication with a repository such as a WebDAV repository.
`jlib/ojpse.jar` | This file is required to support authentication with a repository such as a WebDAV repository.
`rules/lib/jsr94.jar` | The standard JSR-94 library.
`rules/lib/jsr94_obr.jar` | The Oracle Business Rules JSR-94 implementation.
`LIB/xml.jar` | This file is required by the Rules SDK.
`LIB/xmlparserv2.jar` | This file is required by the Rules SDK.
`j2ee/home/lib/http_client.jar` | This file is required when using the Rules SDK with a WebDAV repository.