Автор Тема: блокировки. Exclusive but not cumulative lock 'X  (Прочитано 4789 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Martha

  • Newbie
  • *
  • Сообщений: 51
  • Репутация: +2/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
блокировки. Exclusive but not cumulative lock 'X
« : Август 20, 2009, 03:36:29 pm »
совершенно не понимаю, в каком случае используется этот режим блокировки. если можно с примерами.
спасибо

Exclusive but not cumulative lock 'X'
Exclusive locks can be requested by the same transaction more than once and handled successively, but an exclusive but not cumulative lock can only be requested once by a given transaction. All other lock requests are rejected.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 761
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: блокировки. Exclusive but not cumulative lock 'X
« Ответ #1 : Август 20, 2009, 04:26:08 pm »
Ну у меня сложилось впечатление, что различия заключаются в следующем:

E (Exclusive) - Скажем так, у меня программа в рамках одной транзакции имеет два модуля, который могут вызваться как последовательно так и по отдельности. Пусть они обрабатывают изменение документа. Так вот чтобы не заморачиваться, я в каждом из модулей первой командой вызываю блокирование документа, при этом при последовательном вызове этих модулей в рамках одной транзакции, когда второй модуль запросит блокирование этого же документа ему будет возвращен sy-subrc = 0, т.е. типа блокирование прошло успешно, т.е.такая блокировка защищает объект от блокирования другими транзакциями и другими пользователями, но в рамках одной транзакции я могу в разных местах вызывать блокировку одного и того же объекта и если объект при первом вызове блокирован успешно, то все повторные вызовы будут успешными.

X (eXclusive non-cumulative) - Этот метод более ответственно требует относится к блокированию. Если рассматривать первый пример, то при последовательном вызове второго модуля, в рамках одной транзакции я получу ошибку блокирования объекта и как результат завершение работы модуля 2.

Для примера в поставьте два вызова подряд, в одной программе, блокирования одного и того же объекта. По режиму E (Exclusive) и по X (eXclusive non-cumulative), в первом случае, второй вызов блокирования объекта будет успешным, во втором случае вам будет возвращена ошибка блокирования.

Теперь когда что использовать. Ну скажем так тут многое завязано на логику работы приложения в целом, например если это два функциональных модуля, каждый из которых вызывается для изменения документа, при этом модули могут в вашей программе вызваться как последовательно так и по отдельности, то я бы использовал блокировку типа X, так как при блокировке типа E, хорошо если вы во второй модуль, передадите все измененные данные из первого модуля, а если это разные поля, но при этом для простоты обработки вы обновляете всю запись целиком в виде MODIFY <запись таблицы с ключами>, то изменения из второго модуля перезапишут изменения первого. Если же поля разные и обновляются точечно в виде UPDATE <> SET <поле> = <значение> WHERE <ключ>, то можно использовать блокировку типа E.

PS: Ну как-то типа так, если не прав исправляете...  ::)

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 761
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: блокировки. Exclusive but not cumulative lock 'X
« Ответ #2 : Август 20, 2009, 04:29:09 pm »
Типа вообще про блокировки You are not allowed to view links. Register or Login, но там много и по английски, при этом иногда все слова вроде как ясны, но вот смысл иногда почему-то в тумане  ::)

Оффлайн Martha

  • Newbie
  • *
  • Сообщений: 51
  • Репутация: +2/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: блокировки. Exclusive but not cumulative lock 'X
« Ответ #3 : Август 24, 2009, 09:21:53 pm »
Цитата: Uukrul  link=topic=766.msg4757#msg4757 date=1250774949
Типа вообще про блокировки You are not allowed to view links. Register or Login, но там много и по английски, при этом иногда все слова вроде как ясны, но вот смысл иногда почему-то в тумане  ::)

именно.  тот абзац, который я привела выше специально письменно перевела и тумана меньше не стало. после Вашего объяснения все стало понятно.