Is Oracle AQ / Streams any use in my situation?

I am writing a workflow system that is fully managed at every step by explicit human interaction. That is, the task is assigned to a person, this person selects from several limited options {approve, reject, forward}, and then it is either sent to the next person or completed.

Curiously, Oracle Streams / AQ offers something compared to flat tables managed by the regular web application code. The processing volume after each action is quite limited, and the volume is not very high, so there is no need to throttle things, throwing them in the queue. What are some of the benefits of implementing a queue structure, or is it too complicated for my situation?

+3
source share
3 answers

There are many reasons why a queuing system is useful, but I'm not sure if they are applicable in your situation. It looks like you have one system stored in one database. Thus, I do not think that ordering will provide any advantage over regular tables.

Situations in which AQ provide benefits include: - as a mechanism for different systems (multiple databases) to communicate with each other

  • when you have loosely coupled systems - a producer of messages sending an unknown number of subscribers

As a way to manage state in one system, as you describe, I think Streams / AQ would be redundant.

+3
source

- concurrency, ( ) . , , .

10g Oracle dequeue SKIP LOCKED, . 11g , ( ), AQ .

AQ , .

AQ - 7 /IOT /, , DBMS_AQ DBMS_AQADM.

+4

If your application is really so small that a few minutes of latency are acceptable, I would avoid both and use old-school triggers to populate my own logging tables. Then I will process them using jobs. Everything to avoid the additional features / difficulties that AQ brings.

0
source

Source: https://habr.com/ru/post/1737050/


All Articles