![]() |
#1 |
Участник
|
Различные пользователи на стороне СУБД
Добрый день.
Используем СУБД SQL Server 2000, Axapta 3.0, трёхзвенная архитектура. Возможно ли настроить систему так, чтобы АОС для каждого пользователя открывал с сервером БД соединение от имени этого пользователя, а не от bmssa? Возможно ли это реализовать при помощи конфигурационных файлов? Необходим ли в таком случае запуск отдельного АОС под каждый конфигурационный файл, в котором прописывается отдельный Database user id? Какие есть ещё способы реализации? |
|
![]() |
#2 |
Гость
|
аос работает по 1 (или двум) соединениям.
Соответственно - нельзя. |
|
![]() |
#3 |
Участник
|
Если для какого-то пользователя будет свой конфигурационный файл, где будет прописан отличный от bmssa Database User ID, приведёт ли это в текущем АОСе к созданию нового соединения с БД?
Кстати, программно с использованием объекта UserConnection можно открыть новое соединение с сервером БД. Может быть, используя ODBCConnection, можно как-то подменять открытое от имени bmssa соединение на своё, открытое от имени нужного пользователя? |
|
![]() |
#4 |
Гость
|
нельзя. Только подключившись толстым клиентом/двузвенным клиентом
|
|
![]() |
#5 |
Участник
|
А то, что описано в статье, тоже относится к двухзвенке? Если да, тогда в силе вопрос о программной подмене/настройке текущего подключения
|
|
![]() |
#6 |
Модератор
|
Предположим на секунду, что можно. А зачем ?
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#7 |
Гость
|
используйте "толстого" клиента в трехзвенке
Последний раз редактировалось otkudao; 16.03.2011 в 16:20. |
|
![]() |
#8 |
Участник
|
Для того, чтобы на стороне сервера БД можно было бы однозначно идентифицировать пользователя. Это даст удобство при использовании средств мониторинга текущей активности сервера БД (которые функциональнее, чем включенные в Аксапту, да и не требуют запущенной Аксапты на машине администратора и следовательно дополнительной лицензии), к которым можно отнести и Профайлер.
|
|
![]() |
#9 |
Модератор
|
Цитата:
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: CDR (1), DSPIC (-2). |
![]() |
#10 |
Участник
|
Наверное, прийти к Васе и спросить, а што это было?
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#11 |
Moderator
|
Если уж помечтать, то хорошо было бы чтобы в Аксапте был какой-то отладочный режим (включемый и выключаемый динамически), который бы запрещал повторно использовать SPIDs пользователей. Тогда можно было бы посмотреть текущий SPID в Users Online и тупо трассировать SQL Profiler, зная, что при смене контекста транзации, этот SPID не будет назначен какому-то другому пользователю.
|
|
![]() |
#12 |
Участник
|
Цитата:
Сообщение от fed
![]() Если уж помечтать, то хорошо было бы чтобы в Аксапте был какой-то отладочный режим (включемый и выключаемый динамически), который бы запрещал повторно использовать SPIDs пользователей. Тогда можно было бы посмотреть текущий SPID в Users Online и тупо трассировать SQL Profiler, зная, что при смене контекста транзации, этот SPID не будет назначен какому-то другому пользователю.
Хотя для случае когда несколько человек отладку ведут - это несильно поможет. |
|
![]() |
#13 |
Участник
|
Цитата:
Наверное, прийти к Васе и спросить, а што это было?
Ещё хорошо было бы сгруппировать затраты процессорного ресурса и количество операций ввода-вывода из трассы по пользователям и выяснить, какой функционал больше нагружает систему и нуждается в оптимизации. Также для задач администрирования (скажем просмотра блокировок) можно было бы не входить в Аксапту (не использовать лицензию), а пользоваться только средствами сервера БД. Т.е. такая возможность была бы весьма полезна. Цитата:
который бы запрещал повторно использовать SPIDs пользователей
Но опять-таки, в чём тогда смысл в конфигурационном файле указывать Database User ID, если его процесс может быть передан другому пользователю? |
|
![]() |
#14 |
Гость
|
все-таки мануал читать лишним не бывает
|
|
![]() |
#15 |
Участник
|
|
|
![]() |
#16 |
Модератор
|
Цитата:
- Руководство администратора в части "толстого" трехуровнего клиента - Help по Query profiler-у аксапты - Если найдете, посмотрите в сторону спрятанного в конфигурационной утилите параметра -allowntauth Цитата:
Предположим, у меня есть трасса, собранная Профайлером. Из трассы я выбираю запросы, требующие больше других ресурсов сервера. Чтобы разобраться, в каком функционале реализованы эти запросы, надо провести расследование
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#18 |
Участник
|
Цитата:
в чем разница между User ID и Process ID
Т.о. в одном соединении пользователя может быть несколько серверных процессов, объединённых одним UserID. Но один серверный процесс не может относиться к разным соединениям, а следовательно и пользователям. Номера (SPID) процессам, создающимся позже, могут присваиваться из числа уже освободившихся, поэтому одинаковые номера вовсе не свидетельствуют о том, что процесс один и тот же. Т.к. АОС соединяется с сервером БД под одним пользователем, понятно, что в АОСе может храниться несколько соединений от имени этого пользователя, и когда от клиентских приложений в АОС поступают запросы, АОС выбирает объект-команду, ассоциированный с одним из соединений, и используя его отправляет запрос к серверу БД. Поэтому я и предположила, что если с использованием конфигурационного файла открывается соединение от имени указанного в утилите Database User ID, а потом механизм АОСа использует это соединение для выполнения команд другого пользователя Аксапты, то это привело бы к путанице и мне бы не подошло ![]() Возможно, предположение и было ошибочным. Толстый трёхуровневый клиент не подойдёт нам для массового использования. Справку по Профайлеру читала. Параметр -allowntauth буду искать Администрирование Axapta 3.0 - как раз по нему и изучала конфигурационную утилиту. Читала весь от начала до конца, возможно не заметила ссылки, где говорится об использовании параметра Database User ID только для толстых клиентов? |
|
![]() |
#19 |
Гость
|
там указано, что толстый клиент имеет свое отдельное соединение с базой.
У тонкого такой возможности нет. И это тоже явно прописано. И, кажется, закладка с Database User ID у него блокируется при переходе 2-узвенный/толстый -> тонкий. Если не блокируется, то увы ![]() |
|
![]() |
#20 |
Moderator
|
Цитата:
Vadik:Зачем? Допустим, в приложении кривой код, который каждый раз инициирует table scan или открывает диалог в транзакции - решение этих проблем как-то зависит от того, кто этот код запустил? Если разноска Васей накладных занимает 80% процессорного времени, надо
|
|
|
|