# US 7,613,741 B2 · Utilizing rules in a distributed information sharing system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,613,741 B2
- Document ID: US7613741B2
- Status: Granted
- Kind: B2
- Application number: 10/449,873
- Filed: 2003-05-30
- Published: 2004-02-19
- Granted: 2009-11-03
- Earliest claimed: 2002-08-01
- Assignees: Oracle International Corporation
- Inventors: Edwina Lu; Lik Wong; Sanjay Kaluskar; James Stamos; Neerja Bhatt; Wei Wang
- Web page: https://patentgrep.com/patent/US7613741B2

## CPC

- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- Y10S 707/99953: Recoverability
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

Described herein are various approaches that allow rules to be used to specify actions, that alleviate the complexity and burden of developing and maintaining rules in a rules-based messaging system, and that provide more efficient ways of evaluating rules. The approaches allow rules to specify user-defined transformation functions for transforming messages, to specify when and how to perform row migration, and to specify other types of actions. Rules are grouped into rule sets. Several types of rule sets, referred to as positive and negative rule sets, allow users to use rules that are less complex to develop and maintain. Rule sets are evaluated more efficiently by attempting to evaluate the rule set with less information than is needed to evaluate all the rules in the rule set. Also, the results of rules evaluations that are based on a set of values are cached for later retrieval.

## Claims

### Claim 1

A method for controlling a capture process running on a source database server, the method comprising the steps of:
said capture process propagating messages between said source database server and a destination database server;
said capture process scanning one or more records from a redo log that records changes made at said source database server;
said capture process generating a particular message that includes data from said one or more records;
said capture process calling a rules engine to make an evaluation of a set of rules based on said data from said one or more records, wherein each rule of said set of rules is associated with a condition and first data that identifies an action;
for a particular rule of said set of rules whose corresponding condition is satisfied based on said evaluation, said rules engine returning said first data for said particular rule; and
said capture process performing the action identified by the first data returned by said rules engine.

### Claim 2 (depends on 1)

The method of claim 1,
wherein the particular message describes an update to a row in a table at the source database server; and
wherein the action identified is an insertion or deletion of a row in a table at the destination database server.

### Claim 3 (depends on 2)

A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 2.

### Claim 4 (depends on 1)

The method of claim 1, wherein the action is an invocation of a function.

### Claim 5 (depends on 4)

The method of claim 4, wherein the function is registered by a user with a database server.

### Claim 6 (depends on 5)

A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 5.

### Claim 7 (depends on 4)

A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 4.

### Claim 8 (depends on 1)

The method of claim 1, wherein the action is to propagate the particular message to a message queue.

### Claim 9 (depends on 8)

A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 8.

### Claim 10 (depends on 1)

The method of claim 1, wherein the action is a procedure to invoke in conjunction with discarding said particular message.

### Claim 11 (depends on 10)

A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 10.

### Claim 12 (depends on 1)

The method of claim 1, wherein the capture process performs a particular action for said particular message only if said set of rules evaluates to FALSE.

### Claim 13 (depends on 12)

A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 12.

### Claim 14 (depends on 1)

The method claim 1, wherein the capture process performs a particular action for said particular message only if said set of rules evaluates to FALSE and a second set of rules evaluates to TRUE.

### Claim 15 (depends on 14)

The method of claim 14, wherein the second set of rules is not evaluated if said set of rules evaluates to TRUE.

### Claim 16 (depends on 15)

A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 15.

### Claim 17 (depends on 14)

A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 14.

### Claim 18 (depends on 1)

The method of claim 1, wherein:
said set of rules includes multiple rule sets;
said capture process receives evaluation results for each rule set of said multiple rule sets; and
said capture process determines whether to perform a particular action based on a boolean combination of said multiple rule sets.

### Claim 19 (depends on 18)

A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 18.

### Claim 20 (depends on 1)

A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 1.
