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…
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
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)- A69% (20)
- B10% (3)
- C3% (1)
- D17% (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
Community Discussion
No community discussion yet for this question.
