Changes between Version 4 and Version 5 of Transactions


Ignore:
Timestamp:
09/04/25 05:11:41 (42 hours ago)
Author:
222003
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Transactions

    v4 v5  
    9696}}}
    9797
    98 Методот *checkout* е транзакциски метод за атомско креирање/поврзување на плаќањето, нарачката, и корекциите на залихи, кој врши промена на состојва на 4 различни ентитета. Кодот пресметува цена според опционален попуст (со клуб-картичка), отвора плаѓање „во тек“, ја гради нарачката за секој брендиран лек од кошничката, ги намалува залихите по објектите и на крај го финализира плаќањето и ја празни кошничката.
     98Методот **checkout** е транзакциски метод за атомско креирање/поврзување на плаќањето, нарачката, и корекциите на залихи, кој врши промена на состојва на 4 различни ентитета. Кодот пресметува цена според опционален попуст (со клуб-картичка), отвора плаѓање „во тек“, ја гради нарачката за секој брендиран лек од кошничката, ги намалува залихите по објектите и на крај го финализира плаќањето и ја празни кошничката.
    9999
    100100Транзакција обезбедува да нема ситуација во која залихата е намалена без валидна нарачка или плаќање, бидејќи секој неуспех фрла исклучок што иницира ROLLBACK.
    101101
    102 * rollbackFor = Exception.class осигурува Rollback на проверени исклучоци, не само на runtime, за да нема полузавршени нарачки или плаќања.
    103 * isolation = READ_COMMITED - забранува dirty reads за време на паралелни операции, ова е важно при намалување на залихата од брендирани лекови.
    104 * timeout = 30 - прекинува долги транзакции за да спречи предолко или бесконечно извршеување на методот кој можеби има грешка.
     102* **rollbackFor = Exception.class** - осигурува Rollback на проверени исклучоци, не само на runtime, за да нема полузавршени нарачки или плаќања.
     103* **isolation = READ_COMMITED** - забранува dirty reads за време на паралелни операции, ова е важно при намалување на залихата од брендирани лекови.
     104* **timeout = 30** - прекинува долги транзакции за да спречи предолко или бесконечно извршеување на методот кој можеби има грешка.
    105105
    106106По успех на транзакцијата, се прави COMMIT по што промените остануваат трајни.
     
    227227}}}
    228228
    229 Методот *saveAll* се користи за зачувуање/ажурирање на брендиран лек, и сликите кои се поврзани со дадениот лек.
     229Методот **saveAll** се користи за зачувуање/ажурирање на брендиран лек, и сликите кои се поврзани со дадениот лек.
    230230Во методот се вчитува или креира ентитетот, се верифицира производителот, се зачувуваат нови или се бришат постоечки слики, и се избира една главна слика. Ако настане грешка,
    231 * ROLLBACK правилото ќе ја поништи целата работа во рамките на транзакцијата.
    232 * isolation = READ_COMMITTED забранува dirty reads, ова е важно кога се менуваат повеќе поврзани табели.
    233 * Тimeout е 30 секунди за транзакцијата да не троши ресурси предолго време.
     231* **ROLLBACK** правилото ќе ја поништи целата работа во рамките на транзакцијата.
     232* **isolation = READ_COMMITTED** забранува dirty reads, ова е важно кога се менуваат повеќе поврзани табели.
     233* **Тimeout** е 30 секунди за транзакцијата да не троши ресурси предолго време.
    234234
    235235Методот е транзакциски за цел да се избегне ситуација каде се креираат слики без постоечки лек. Сите ентитети во транзакцијата се третираат како една атомска целина.
     
    255255}}}
    256256
    257 Методот *approve* е транзакциски за атомско одобрување на барањето и верификација на клиентот, со правило за Rollback, изолација READ_COMMITED и ограничување на извршување 10 секунди. Методот е транзакциски за да се обезбеди конзистентост меѓу статусот на апликацијата и ознаката за верификација на клиентот. Ако се изврши само одобрување на апликацијата, тогаш клиентот би останал неверифициран.
     257Методот **approve** е транзакциски за атомско одобрување на барањето и верификација на клиентот, со правило за **Rollback**, **изолација READ_COMMITED** и **ограничување на извршување 10 секунди**. Методот е транзакциски за да се обезбеди конзистентост меѓу статусот на апликацијата и ознаката за верификација на клиентот. Ако се изврши само одобрување на апликацијата, тогаш клиентот би останал неверифициран.