Forum Discussion

FICO's avatar
FICO
Community Manager
13 years ago

Concurrent access with Database repository by RMA and Business application

Concurrent access with Database repository by RMA and Business application

Hi,

I have a blaze rules project which stores the Rules in a database repository. The RMA in the production and the application which consumes the rules point to the same database. This left us with the option to freeze the RMA when the application is consuming the rules. Due to this, the business users are not able to effectively utilise the RMA's power to add more rules as and when they needed to. They have been made to wait until the end application completes.

To redesign this, I am thinking of doing the below things:

1. Let the RMA alone point to Database repository and store the new rules being added.

2. Have a Database monitor kind of process, which will generate adb files as and when any check in happens in RMA.

3. Make changes to the application to point to adb files to fetch the rules and apply on their business objects rather than taking them directly from database.

Is this a good way to do it? or are there any simpler approaches to redesign this system.

Any immediate help on this would be greatly appreciated.

Thanks in advance,

Swaminathan Vetri

3 Replies

  • FICO's avatar
    FICO
    Community Manager

    What is the reason for freezing the RMA?

    *Is it a database-technical one?

    *Do you want to prevent reloading of the rules in the application until the RMA user is satisified with the changes made (i.e. you want to introduce versioning for the repository as a whole)?

    *Is the application consuming the rules by only one or several rule service invocations for each "consumption" you need to be atomic?

    Some additional questions:

    *Are you using adb files or direct repository access in your application server?

    *Are you using a deployment manager?

  • FICO's avatar
    FICO
    Community Manager

    Thanks for the response. I have tried to answer your questions below.

    It has been designed to check if the application is executing the rules and if yes, the RMA is locked for the business users to perform any further edits.

    I would want to decouple this activity, like the business users should be able to access RMA anytime they want and the application should continue to work with the version it had when the processing started. The application is a long running process say about half an hour or more, out of which a portion of the logic consumes the rules. So. the RMA users dont want to wait until the application completes its processing.

    There is only one rule service invocation from the application

    There are no adb files as of now, its a direct DB access.

  • FICO's avatar
    FICO
    Community Manager

    Hi

    I would take a step back and think about the deployment architecture.

    Are business users and production runtime accessing same rules ??

    If so, Not sure, why is business analyst/users given access to production application environment. This might allow unintended mistakes by users , untested , open for production runtime.  - unless there is a a reason for that.

    Business Users should 'play' / 'change' the rules in an 'what if' environment , once satisfied, the changes should be 'merged' to production.