Worklight Студия v6.2
MySQL Community Server 5.6.21Может ли SQL-Adapter обрабатывать транзакцию (begin/insert/roolback)?
Я сделал простой эксперимент для этого. Я создал 4 процедуры в адаптере sql.
Процедура «начать», которая вызывает «BEGIN;»; заявление.
процедура «совершить», которая вызывает только «COMMIT»; заявление.
Процедура «отката», которая вызывает только «ROLLBACK»; заявление.
Процедура «insert», которая вызывает оператор «INSERT», который вставляет строку в таблицу.
В дополнение, я создал гибридное приложение, которое имеет кнопки. Каждая кнопка выполняет описанную выше процедуру.
Я открыл его браузером для тестирования. Выполняю «begin -> insert -> commit» и «begin -> insert -> rollback». Оба работают нормально.
Далее я открываю приложение из двух браузеров (A/B). И я выполняю ниже.
1.From браузер A: начать
2.В браузера A: вставить
3.From браузер B: совершить
Это совершено.
База данных не может отличить, что каждый запрос поступает от этого пользователя.
Любые решения?
Заранее спасибо.
Спасибо, Идан. Я добавил атрибуты «SecrutyTest» и «connectAs =» endUser »для своих предварительных версий и протестировал его. Но результаты такие же. В нем говорится: «[ПРЕДУПРЕЖДЕНИЕ] FWLSE0195W: Игнорирование атрибута connectAs процедуры startprocedure в адаптере testSQL. ConnectAs не поддерживается этим типом адаптера». Могу ли я использовать атрибут connectAs = "endUser" в sql-адаптере? – satohiro
А, действительно, вы правы - connectAs не поддерживается в SQL-адаптерах; то, что вы могли бы попробовать, возможно, отправит параметр userId с помощью вашей процедуры SQL, чтобы SQL знал об этом, так что вызовы будут специфическими для одного пользователя. –
@satohiro, см. Мой обновленный ответ. –