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