Переключение на Главную Страницу Страницы: 1 [2] 3 4 ... 6 ОтправитьПечать
Очень популярная тема (более 25 ответов) ТП: ПоставщикДанныхИндексированнаяТаблица (число прочтений - 24402 )
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #15 - 18. Декабря 2006 :: 19:31
Печать  
Uzhast писал(а) 18. Декабря 2006 :: 19:26:
Да и какие могут быть проблемы?

Известно какие: фантомы, грязное чтение и неповторимое чтение (не помню как оно по-русски, nonrepeatable).
А как провайдер себя ведет, если параллельно удаляют? Это должно быть актуально для таблиц регистров.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #16 - 18. Декабря 2006 :: 19:32
Печать  
mssql выбрасывает исключение при параллельном удалении, если используется хинт NOLOCK.
Тут получается тоже самое - NOLOCK (read uncommitted).
  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #17 - 18. Декабря 2006 :: 19:39
Печать  
spock писал(а) 18. Декабря 2006 :: 19:31:
Известно какие: фантомы, грязное чтение и неповторимое чтение (не помню как оно по-русски, nonrepeatable).
А как провайдер себя ведет, если параллельно удаляют? Это должно быть актуально для таблиц регистров.

Эти проблемы, ИМХО, гораздо актуальнее для СКЛ, чем для ДБФ. Помню, 1С еще специальное разъяснение давала про отличия работы транзакций в скуле и ДБФ. Мол, что в скуле изменения в транзакции видны другим пользователям, а в ДБФ не видны. Собственно, в этом легко убедиться, если вставить "Предупреждение" в конец модуля проведения расходной накладной. Пока висит предупреждение, прямой запрос не видит никаких изменений в БД. Как только жмешь "ОК", сразу становится видно.

Что касается грязного чтения, то точно таким же образом (читая заблокированные таблицы) работает сама 1С и никого это особо не пугает.

При проведении документов проблем вообще нет, т.к. все равно в этот момент никто не может проводить документы. (Хотя, если "правильно" написать модуль проведения, то и здесь можно создать проблемы)

Момент прямого запроса и параллельного удаления, к сожалению, поймать не могу. Удаление движений при проведении происходит крайне быстро. И как совместить эти моменты для теста, я пока не придумал.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #18 - 18. Декабря 2006 :: 19:49
Печать  
Может так, как вариант:
В одной сессии в цикле проводить документ.
В другой сессии читать движения этого документа, предварительно узнав какие должны быть данные.
И после каждой итерации проверять с эталоном (или в коце теста). Если сходится или равно нулю, то все ОК.
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #19 - 18. Декабря 2006 :: 19:54
Печать  
Uzhast писал(а) 18. Декабря 2006 :: 19:08:
В нем патчем отключены вызовы LockFile. Поэтому поставщик будет читать даже заблокированные 1С таблицы.


А не найдено ли подобное решение для монопольного режима?  Подмигивание
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #20 - 18. Декабря 2006 :: 20:50
Печать  
spock писал(а) 18. Декабря 2006 :: 19:49:
Может так, как вариант:
В одной сессии в цикле проводить документ.
В другой сессии читать движения этого документа, предварительно узнав какие должны быть данные.
И после каждой итерации проверять с эталоном (или в коце теста). Если сходится или равно нулю, то все ОК.


Сделал тестовую конфигурацию. На документе с двумя движениями либо все нормально, либо нет движений. На документе, где движений - 200, иногда запрос получает не все движения (30, 102, 108 и т.д.). Такое вот грязнючее чтение Улыбка

sedmin писал(а) 18. Декабря 2006 :: 19:54:
А не найдено ли подобное решение для монопольного режима?  Подмигивание


Это было бы очень неплохо, но, ИМХО, здесь придется патчить либо 1С, либо ОС Улыбка
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #21 - 18. Декабря 2006 :: 20:54
Печать  
Да, по поводу результатов теста. ИМХО, в случае прямого запроса в модуле документа, такое поведение проблем не вызовет. Сложности только с отчетами, но, учитывая то, что 1С ведет себя точно так же, ИМХО, можно смириться  Улыбка
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #22 - 18. Декабря 2006 :: 21:24
Печать  
Uzhast писал(а) 18. Декабря 2006 :: 20:50:
sedmin писал(а) 18. Декабря 2006 :: 19:54:
А не найдено ли подобное решение для монопольного режима?  Подмигивание


Это было бы очень неплохо, но, ИМХО, здесь придется патчить либо 1С, либо ОС Улыбка


А может действительно пропатчить 1С? Кто скажет адрес, который надо патчить, тому приз.  Подмигивание

А еще лучше пропатчить через 1С++! Как вам такая идея? Релизация - это мелочи.  Очень довольный
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #23 - 18. Декабря 2006 :: 21:33
Печать  
sedmin писал(а) 18. Декабря 2006 :: 21:24:
А может действительно пропатчить 1С? Кто скажет адрес, который надо патчить, тому приз.  Подмигивание

А еще лучше пропатчить через 1С++! Как вам такая идея? Релизация - это мелочи.  Очень довольный

Тут сложность в том, чтобы монопольный режим остался монопольным. Т.е. чтобы никто другой не мог модифицировать БД в монопольном режиме. А пропатчим, а в результате монопольный режим превратится в обычный сетевой (то-то 1С обрадуется, когда этот патч сработает и для локальных версий Улыбка). Вообще, действительно можно попробовать. Например, чтобы файлы открывались не в полностью эксклюзивном режиме, а в режиме запрета записи для других. Тогда другие 1С будут отваливаться при попытке открытия базы, а простое чтение из БД будет работать.

Правда, при этом может усложниться использование прямых запросов. Обычно соединение устанавливают в режиме "ReadWrite". А тут придется учитывать, что запись не доступна, поэтому придется, например, думать, что делать с временными таблицами.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #24 - 18. Декабря 2006 :: 21:42
Печать  
Теоретически, можно даже обойтись без патча. Например, можно найти дескрипторы открытых файлов в памяти 1С, закрыть их, а на их место записать новые, открытые в нужном режиме. Но это будет несколько сложнее простого патча. Кстати, при этом получается возможность как в 8-ке программно переключать режим 1С: "Монопольно/Немонопольно" Улыбка
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #25 - 19. Декабря 2006 :: 00:05
Печать  
Uzhast писал(а) 18. Декабря 2006 :: 21:42:
Теоретически, можно даже обойтись без патча. Например, можно найти дескрипторы открытых файлов в памяти 1С, закрыть их, а на их место записать новые, открытые в нужном режиме. Но это будет несколько сложнее простого патча. Кстати, при этом получается возможность как в 8-ке программно переключать режим 1С: "Монопольно/Немонопольно" Улыбка

Ну... Искать дескрипторы, кмк задолбаешься.
А вот в момент открытия слегка помочь - это можно Подмигивание

Но вообще, это жуткая, жуткая утопичная идея Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #26 - 19. Декабря 2006 :: 05:53
Печать  
Имхо, офтопик развели.

По теме ветки.
Имхо если уж делать, то вместо отдельного объекта ПоставщикДанныхИндексированнаяТаблица нужно чтобы ИндексированнаяТаблица была сама поставщиком данных для ТП (или если будут проблемы в реализации, то специальный отдельный объект реализовать внутренне).
Собственно с ТЗ можно сделать тоже самое.
  
Наверх
ICQ  
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #27 - 19. Декабря 2006 :: 06:20
Печать  
Цитата:
Имхо, офтопик развели.


Оно может и так, но до чего идея заманчивая Подмигивание
  
Наверх
wwwICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #28 - 19. Декабря 2006 :: 06:30
Печать  
И так вывод.
К чему приходим?
Господа я за поставщика ИТЗ и за поставщика ОЛЕДБ.
потому как по определенным причинам сижу на ДБФ и использую ИТЗ и ОЛЕДБ по полной программе.
Посему всеми руками и ногами за то чтоб появились эти два поставщика для ТП.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: ПоставщикДанныхИндексированнаяТаблица
Ответ #29 - 19. Декабря 2006 :: 06:45
Печать  
DmitrO писал(а) 19. Декабря 2006 :: 05:53:
Имхо если уж делать, то вместо отдельного объекта ПоставщикДанныхИндексированнаяТаблица нужно чтобы ИндексированнаяТаблица была сама поставщиком данных для ТП (или если будут проблемы в реализации, то специальный отдельный объект реализовать внутренне).
Собственно с ТЗ можно сделать тоже самое.

Да, по ИТЗ сделать подобное можно.
А вот по ТЗ как? что-то не пойму, объясни подробнее.
Все-таки ТЗ ведь встроенный объект 1С и мы не можем добавить к нему методы С++, необходимые для того, чтобы он мог выступать в качестве провайдера ТП.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 ... 6
ОтправитьПечать