03.09.2004, 17:40 | #1 |
MCITP
|
Sessions
Привет всем!
Где-то про это что-то читал, но не помню точно что и где... Имеем Аксапту 3 + Оракл 9 Каждый 2-tier клиент стабильно порождает (как минимум) две сессии Оракловые. Вопрос: зачем? Бывает ли их больше или меньше чем, две? Спасибо! |
|
03.09.2004, 17:48 | #2 |
Moderator
|
Цитата:
Вопрос: зачем?
Цитата:
Бывает ли их больше или меньше чем, две?
|
|
03.09.2004, 17:51 | #3 |
MCITP
|
Цитата:
открывается новая сессия с более щадящим уровнем изоляции
И как эти две сессии взаимодействуют (в смысле используются)? Можно чуть подробнее? Или где читнуть? |
|
03.09.2004, 17:56 | #4 |
Moderator
|
Цитата:
И как эти две сессии взаимодействуют (в смысле используются)?
Правда все эти сведения еще по 2.5 На 3.0 не проверял, поэтому было бы хорошо - если бы кто-то подтвердил или опроверг это. |
|
03.09.2004, 17:59 | #5 |
Модератор
|
For each 2-tier session Axapta starts at least three (3) connections against
the database: • Session used primarily for sequence-number generation and other system management tasks. This connection is referred to as the system connection. Reason for this session is to avoid update of “SystemSequences” to be part of a current active transaction, which would make it sequence-number generation a bottleneck in the system. • Application connection, which generally is used for running the business logic of the application. • Read-only connection, which is similar to the application connection, but no data manipulation operations are executed on this type of connections. Clients browsing data in Forms will typically use a read-only connection. • Optional user connections. The X++ language provides a number of ways to have “user defined” connections, which is accomplished by instantiating classes of type Connection, UserConnection, or OdbcConnection (refer to the “Axapta Developer’s Guide” for details). (c) Databases advanced |
|
03.09.2004, 18:03 | #6 |
Moderator
|
Она не с более шадащим уровнем изоляции. Она просто другая со своим отдельным контекстом транзакций. И это не только для Оракла, это и для MS SQL.
Если совсем коротко: Представим ситуацию при которой у нас а) все документы ГК родятся из одной номерной серии б) механизм использования отдельной сессии для номерных серий не включен (Допустим MBS его не сделал в) идет разноска очень толстой закупки допустим на 10000 строк Весь журнал - само собой- разносится в одной транзакции. В начале транзакции у нас обновляется следующее значение в строке таблиц номерных серий. (Система генерирует новый номер документа ГК). А потом до самого конца транзакции, которая может часочек продлится, эта запись остается заблокированной, а другие рабочие станции которым тоже хочется получить очередной домер документа ГК, весь час просто стоят в очереди к этой записи. Соответственно - в MBS для ЛЮБЫХ операций с номерными сериями используется отдельная сессия. И все транзакции внутри этой сессии ГАРАНТИРОВАНО короткие. По принципу - начали транзакцию, прочитали,заблокировали, обновили, завершили транзакцию. Но вообще-то все равно при очень большом количестве пользователей конкуренция за доступ к записи таблицы номерных серий дает о себе знать и немножко снижает производительность. На глаз это не заметно, но факт остается фактом. |
|
03.09.2004, 18:11 | #7 |
MCITP
|
Всем спасибо!
Заодно и вспомнил где читал... |
|
03.09.2004, 18:13 | #8 |
MCITP
|
Слушайте, а раскажите ка заодно, какую смысловую нагрузку несёт номер сессии (Аксаптовский). Его можно увидеть в списке активных пользователей... И что за хитрый алгоритм, по которому этот номер сессиям присваивается?
|
|
03.09.2004, 21:31 | #9 |
Участник
|
Спасибо за отличные ответы.
Перенес в базу знаний. |
|