Конференция "Базы" » ненадёжность связи и TpFIBDatabase.Execute [D7, firebird]
 
  • Медвежонок Пятачок © (10.09.08 14:45) [20]
    Пока все не отрапортуют никакого реального коммита нет. Атомарная операция

    Ой ли?
    То есть я вызвал коммит, сервер мне ответил, все окей, убедился, что я принял его ответ, затем приступил к реальному закоммичиванию?
    А если он при этом обломается?
  • Медвежонок Пятачок © (10.09.08 14:50) [21]
    Атомарная операция

    Если бы она была атомарной, у автора не возникали бы описанные симптомы.
    Она атомарна логически, в категориях реляционной теории.

    А этажом ниже передаются биты и байты (не один байт) по неустойчивым каналам связи.
  • Sergey Masloff (10.09.08 14:51) [22]
    Медвежонок Пятачок ©   (10.09.08 14:43) [19]
    Нет. Она получает ответ и посылает чек что она его получила.  И если сервер этот чек не получил то реального коммита нет. Чтобы убедиться 100% надо смотреть исходники FB (я в этой части не смотрел) но ситуации когда коммит не прошел на клиенте а запись вставилась мне добиться не удалось при проведении стресс-тестов.
  • Медвежонок Пятачок © (10.09.08 14:53) [23]
    И как тогда объяснить случай со свершившейся вставкой на сервере и тем что exec на клиенте вернул false?
  • Sergey Masloff (10.09.08 14:54) [24]
    Медвежонок Пятачок ©   (10.09.08 14:50) [21]
    >Если бы она была атомарной, у автора не возникали бы описанные >симптомы.
    Симптомы пока только у автора ;-)
    Если бы все было так плохо они были бы у всех и постоянно.
  • Николай 2 (10.10.08 13:54) [25]
    Уникальное поле - пока не нужно.
    Заменил pFIBDatabase.Execute на pFIBQuery с ручным управлением транзакциями. Похоже, помогло.
    Не зря в одном факе настоятельно рекомендовали управлять вручную.
 
Конференция "Базы" » ненадёжность связи и TpFIBDatabase.Execute [D7, firebird]
Есть новые Нет новых   [134474   +34][b:0][p:0.001]