2.10 Poll

Serviss Poll veic atbildes izgūšanu no Pieprasījumu servisa Asinhrono pieprasījumu krātuves. To nepieciešams izsaukt pēc „Submit” metodes izsaukuma, lai iegūtu atbildes ziņojumu. Vispirms ar „GetStatus” metodi ir jānoskaidro, vai atbilde jau ir sagatavota. Ja atbilde jau ir sagatavota, tad to var iegūt ar „Poll” metodi. „Poll” metodi var izsaukt vairākas reizes. Kamēr atbilde ar „Dispose” metodi nebūs dzēsta, to vēl joprojām varēs saņemt. Kā parametrs tai jānodod „CorrelationID”. „Poll” metode atgriež „IVISResponse” struktūru. Kļūdas gadījumā tiks aizpildīts <Errors> elements. Pieprasījuma servisa „Poll” metode izmantos Asinhrono pieprasījumu rezultātu krātuvi un izpildīs šādas darbības (skat. attēlā):

  1. Tiek pārbaudīts, vai padotais „CorrelationID” nav tukšs (not NULL)
  2. Tiek pārbaudīts vai lietotājs ir tiesīgs saņemt datus par attiecīgo pieprasījumu;
  3. Pieprasījumu stāvokļu datu bāzē pārbaudīs, vai atbilde jau ir saņemta;
  4. Ja atbilde nebūs saņemta vai citas kļūdas gadījumā, atgriezīs kādu no vērtībām, kas ir sniegtas zemāk esošajā tabulā;
  5. Ja atbilde ir saņemta, nolasīs ziņojumu no datu bāzes un atgriezīs izsaucējam.

Attēlā ir parādīta servisa darbības blokshēma.

Veiksmīga izsaukuma gadījumā <Result> elements saturēs „Success”, neveiksmīga izsaukuma gadījumā <Result> elements saturēs „Failure”, kā arī <Errors> struktūra saturēs kļūdas paziņojumus.

Iespējamie <ErrorCode> kodi neveiksmīga „Poll” izsaukuma gadījumā ir Pieprasījumu servisa kļūdas.

Sagatavotas atbildes “apjautāšanas” biežums ir atkarīgs no biznesa scenārija, bet tas nevar būt mazāks par 10 sek. Gadījumā, ja saskaņā ar biznesa scenāriju, atbilde netiek sniegta pakalpojumā sagaidāmajā laikā, nepieciešams izbeigt “apjautāšanas” procesu šim ievietotajam pieprasījumam.