30.09.2008, 00:29 | #1 |
----------------
|
Ax3sp3 vs Ax4sp2 на примере
Решил зафиксировать результаты небольших опытов, проведенных на приложениях Ax3sp3 и Ax4sp2 подключенных к серверу MS SQL2005 с БД в режиме 90.
В опытах принимают участие: табличка aTable с полями Id - int с уникальным индексом Value - int без индекса и 2 жобика X++: static void Job_b1(Args _args) { aTable aTable; ; ttsbegin; aTable = aTable::find(12, true); // такая запись есть aTable.Value = timenow(); aTable.update(); ttscommit; } static void Job_b2(Args _args) { aTable aTable; ; select aTable where aTable.Value == 200; // такой записи нет ttsbegin; select aTable where aTable.Value == 200; aTable = aTable::find(12, true); aTable.Value = timenow(); aTable.update(); ttscommit; } Запускаем 2 клиента аксапты. В одном из них ставим точку останова на строке aTable.update(); первого джобика и выполняем. Во втором выполняем джобик2 по шагам. Ax3sp3 - джобик2 вешается на строке aTable = aTable::find(12, true); до тех пор пока не закончится джоб1. Ax4sp2 - джоб2 отрабатывает до конца, однако при попытки продолжить джоб1 получаем ошибку: Невозможно отредактировать запись в aTable (aTable). Возник конфликт обновления из-за того, что другой пользовательский процесс выполняет удаление записи или изменение одного или нескольких полей в записи. Опыт 2 Запускаем 2 клиента аксапты. В одном из них ставим точку останова на строке ttscommit; первого джобика и выполняем. Во втором выполняем джобик2 по шагам. Ax3sp3 - на этот раз джобик2 вешается на строке select aTable where aTable.Value == 200; (которая после ttsbegin) до тех пор пока не закончится джоб1. Ax4sp2 - теперь и здесь джоб2 вешается, но на строке aTable.update(); до тех пор пока не закончится джоб1, а потом выдает туже ошибку: Невозможно отредактировать запись в aTable (aTable). Возник конфликт обновления из-за того, что другой пользовательский процесс выполняет удаление записи или изменение одного или нескольких полей в записи. Последний раз редактировалось Wamr; 30.09.2008 в 00:33. |
|
Теги |
производительность, ax3.0, ax4.0 |
|
|