вторник, 20 октября 2015 г.

1С: Эксперт. Решение билета №1

Этой заметкой начинаю мини цикл по решению билетов к экзамену 1с: эксперт по технологическим вопросам крупных внедрений. Не помню точно где в сети нашел несколько билетов (точно говоря 10). Многие вопросы с самого начала могут быть совершенно непонятными (так и было со мной когда я первый раз их увидел), так что может случится что для понимания необходимо будет разобраться теме. Вопросы связанные с подготовкой к экзамену меня на данный момент (20.10.15) особо интересуют так что буду рад вашим вопросам и замечаниям в комментариях.


Вопрос 1.1
В метаданных определены две константы:
  • Конст1
  • Конст2

Будут ли перечисленные пары операций выполняться параллельно из разных сессий?


Ответ:
Ответ будет зависеть от версии платформы. Дело в что начиная с версии 8.2.14 каждая константа стала хранится в отдельной таблице, а в более ранних версиях все константы хранились в одной таблице.
Таким образом если версия ниже 8.2.14 или используется режим совместимости с версией 8.2.14 и  ниже, то ответ будет следующим:


Параллельность       Действие 1             Действие 2
            -                   Чтение Конст1        Запись Конст 1
            -                   Запись Конст1        Запись Конст2
           +                  Чтение Конст1        Чтение Конст1


в случае 8.2.14 и выше
Параллельность        Действие 1             Действие 2
             -                      Чтение Конст1        Запись Конст 1
            +                      Запись Конст1        Запись Конст2
            +                      Чтение Конст1        Чтение Конст1



Вопрос 1.2

Ответ:
Так как не сказано  какой режим управления блокировками установлен для конфигурации, то примем что транзакция  будет выполняется в управляемом режиме. 
Будут установлены следующие блокировки:
1) В строке Номенклатура = ВыбраннаяНоменклатура.ПолучитьОбъект() 
Будет установлена S блокировка на уровне СУБД при чтении объекта, которая снимется после ПолучитьОбъект();
Управляемая блокировка установлена не будет.
2) При выполнении команды Номенклатура.Записать() будут установлены как управляемая исключительная блокировка так и X блокировка СУБД.
Обе блокировки будут держатся до конца транзакции.

Если несколько пользователей одновременно будут изменять одну и туже номенклатуру возможна ситуация когда одна из транзакций получит
сообщение об ошибке о том, что данные изменены или удалены.

Вопрос 1.3
Ответ:
Указанные избыточные блокировки характерны только для автоматического режима управления блокировками. Следовательно необходимо перевести конфигурацию в управляемый режим. Делается это так: сначала  необходимо установить режим для конфигурации "Управляемый и автоматический" и затем постепенно переводить на  упр. режим для документы и регистры.


Комментариев нет:

Отправить комментарий