nerdexam
SOA

S90-09A · Question #16

Service A is an entity service that provides a Get capability that returns a data value that is frequently changed. Service Consumer A invokes Service A in order to request this data value (1). For…

The correct answer is A. The Asynchronous Queuing pattern can be applied so that messaging queues are established. Option A is correct because the scenario involves two separate service communication links that can fail - between Service Consumer A and Service A, and between Service A and Service B - so multiple messaging queues (plural) must be established to buffer messages at each point…

Enterprise Integration Patterns

Question

Service A is an entity service that provides a Get capability that returns a data value that is frequently changed. Service Consumer A invokes Service A in order to request this data value (1). For Service A to carry out this request, it must invoke Service B (2), a utility service that interacts (3.4) with the database in which the data value is stored, Regardless of whether the data value changed. Service B returns the latest value to Service A (5), and Service A returns the latest value to Service Consumer A (6). The data value is changed when the legacy client program updates the database (7). When this change happens is not predictable. Note also that Service A and Service B are not always available at the same time. Any time the data value changes. Service Consumer A needs to receive it as soon as possible. Therefore, Service Consumer A initiates the message exchange shown in the Figure several times a day. When it receives the same data value as before, the response from Service A is ignored. When Service A provides an updated data value, Service Consumer A can process it to carry out its task. Because Service A and Service B are not always available at the same times, messages are getting lost and several invocation attempts by Service Consumer A fail. What steps can be taken to solve this problem?

Exhibit

S90-09A question #16 exhibit

Options

  • AThe Asynchronous Queuing pattern can be applied so that messaging queues are established
  • BThe Asynchronous Queuing pattern can be applied so that a messaging queue is established
  • CThe Asynchronous Queuing pattern can be applied so that a messaging queue is established
  • DNone of the above.

How the community answered

(29 responses)
  • A
    69% (20)
  • B
    10% (3)
  • C
    3% (1)
  • D
    17% (5)

Explanation

Option A is correct because the scenario involves two separate service communication links that can fail - between Service Consumer A and Service A, and between Service A and Service B - so multiple messaging queues (plural) must be established to buffer messages at each point, preventing data loss when either service is unavailable.

Options B and C are incorrect (and notably identical in the text provided) because they specify only a single messaging queue, which would only protect one communication link and leave the other vulnerable to message loss - insufficient for a chain where both services can independently be offline.

Option D is wrong because the Asynchronous Queuing pattern is precisely the appropriate SOA solution here: it decouples service availability from message delivery by persisting messages in durable queues until the receiving service comes online.

Memory tip: Count the service hops that can fail - if there are N unreliable links in the chain, you need N queues. "One queue per breakable link" keeps the plural vs. singular distinction easy to spot on exam questions.

Topics

#Asynchronous Queuing#message queue#decoupled messaging#entity service

Community Discussion

No community discussion yet for this question.

Full S90-09A Practice