powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Проблема с процессингом через DSO
12 сообщений из 12, страница 1 из 1
Проблема с процессингом через DSO
    #32081452
Alex Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин вроде опублиуовал кудато пропало-повторяю...
Что имеем:
Источник данных MS SQL 2K Ent/SP2 + на этом же сервере MS AS/SP2.
Есть n-сколько кубов со всеми прилагающимися прибамбасами (shared dim, кубы побиты по partition, настоены права доступа и т.д.) всё красиво и сверкает. Есть ряд пакетов которые через DTS готовят исходные данные и запускают репроцес shared dim и partitions. Именно репроцес стартует при помощи ActiveX Script - создается объект DSO ну и используя его методы лопатится.
Какое то время все шуршало - любо дорого глянуть. Но видать зведы не так стали или запросы корявые или у пользователей прикус не тот - начала возникать во время процеса ошибка #-2147221411, а описания никакого.
Упрощенный пример кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Set dsoServer=CreateObject( "DSO.Server" )
dsoServer.Connect  "Имя_сервера_AS" 
Set dsoDB = dsoServer.MDStores( "Имя_БД" )
Set dsoCube=dsoDB.MDStores( "Имя_куба" )
Set dsoPart=dsoCube.MDStores( "Имя_partition" )
dsoPart.LockObject  4 ,  "Locked for processing." 
if Err.Number<> 0  then....  ''''Обработка ошибки
dsoPart.Process
if Err.Number<> 0  then....  ''''Обработка ошибки
dsoPart.UnlockObject
if Err.Number<> 0  then....  ''''Обработка ошибки
Set dsoPart=Nothing
Set dsoCube = Nothing
Set dsoDB = Nothing
dsoServer.CloseServer
Set dsoServer = Nothing

В данный момент "Обработка ошибки" это просто логирование событий.
Так вот после команды Process сервер делает глубокий вдох, считает что ему положено (я надеюсь) и потом либо все OK либо вылетает по ошибке Err.Number=-2147221411 и Err.Description="...ни фига, ни какого описания..."
Никакой закономерности пока не обнаружил. Ошибки возникают и в ночной утренний период (когда никто не работает) и днем (когда безумная тяга)
Буквально сегодня добавилась новая фишка - после UnLock Err.Number=-2147417848 и Err.Description="...таже информативность..."
Самое интересное что тут же запускаю тот же репроцес вручную в AM и само собой все прекрасно.
Есть хоть какие то мысли по этому поводу ?
Заранее благодарен.
...
Рейтинг: 0 / 0
Проблема с процессингом через DSO
    #32081466
DeAmon2K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Примерно аналогичная проблема у меня возникла, AS Сервис паком 2, кубики обновлялись через ДТС, а один куб я редко обновлял и как то раз зашел что бы месяц в ДТС исправить, смотрю, а куба то нет. Т.е. в папке cubes ничего нету. Если в Манагере смотреть то все прекрасно есть и обновляется ручками, а в ДТС не видно. Остальные кубы регулярно обновляющиеся остались видны отовсюду.
...
Рейтинг: 0 / 0
Проблема с процессингом через DSO
    #32084387
Alex Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по огромному количеству мнений у всех все в порядке и таких проблем не возникало. Искрене рад!
Но всёже. Может не из личного опыта, может где кто что слыхал краем уха.
Еще одна закономерность в этом геморе:
Репроцес начинается на 30-й минуте каждого часа в период с 5-30 до 22-30 (ночью крутится ряд других задач и все равно никто не работает). Так вот начинается значит день с ошибок. Прихожу, процесую вручную, и о чудо до конца дня не знаю проблем.
Может есть какоето радикальное отличие между процесом через DSO и процесом запускаемым в AM?

Надежд все меньше, но все равно заранее пасибо...
...
Рейтинг: 0 / 0
Проблема с процессингом через DSO
    #32084394
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ряд пакетов которые через DTS готовят исходные данные и запускают репроцес shared dim и partitions. Именно репроцес стартует при помощи ActiveX Script - создается объект DSO ну и используя его методы лопатится.

А почему вы не используете для процессинга стандартные таски DTS-а ?
...
Рейтинг: 0 / 0
Проблема с процессингом через DSO
    #32084427
Alex Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему вы не используете для процессинга стандартные таски DTS-а ?

Всё очень просто. Куб(ы) побит(ы) по partitions-каждый part свой временной диапазон. Данные могут изменится в любом диапазоне. В скрипте я могу программно указать какой part обрабатывать. А в DTS-е, будь добр, укажи ручками чё процесим. Или там тоже можно повлиять из вне на процес процесинга? Может подскажете?
...
Рейтинг: 0 / 0
Проблема с процессингом через DSO
    #32084434
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в DTS-е, будь добр, укажи ручками чё процесим. Или там тоже можно повлиять из вне на процес процесинга? Может подскажете?

По-моему через Dynamic Properties Task можно поменять все что угодно (ну или почти все).
...
Рейтинг: 0 / 0
Проблема с процессингом через DSO
    #32085796
Alex Fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему через Dynamic Properties Task можно поменять все что угодно (ну или почти все).

АБСОЛУТНО ПРАВЫ !!!
Переписал чтоб использовались стандартные пакеты DTS. И вот почти неделя прошла - полет нормальный.
Огромное спасибо за совет.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Проблема с процессингом через DSO
    #33016681
NikoA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выход конечно найден.

Но все же вернемся к ошибке Err.Number=-2147221411
Если в DTS её обойти получается, то как быть в приложениях в которых не предусмотрена работа с DTS пакетами?

И проблема такая, что при созданиии партиции её не получается процесить программно. Это становится возможным только после того как в менеджере сделать процесс один раз и в дальнейшем выполняй процесс куба сколько тебе вздумается. И так каждый раз для новой партиции.

Может кто подскажет в чем собственно причина. На подобную ошибку ответа не нашел ни у кого.
...
Рейтинг: 0 / 0
Проблема с процессингом через DSO
    #33022583
Фотография Валек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче расскажу гдето краем уха читал/слышал/пробовал сам
фишка в том от какого аккаунта запускаються процессы если ручками, то от пользователя запустившего, если DTS то от пользователя создавшего или владельца, ну а в случае автоматического типа программного, тут может как угодно хорошо если еще от системы, а может и пустой пользователь.
Это подтвердилось косвенно собственным печальным опытом. Пользуем DTS пакеты уже более года
...
Рейтинг: 0 / 0
Проблема с процессингом через DSO
    #33022639
Eldar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А может привести кто-нибудь код создания в ActiveX-скрипте в DTS-пакете Partition, где период будет браться из глобальной переменной
...
Рейтинг: 0 / 0
Проблема с процессингом через DSO
    #33022716
NikoA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Валеккороче расскажу гдето краем уха читал/слышал/пробовал сам
фишка в том от какого аккаунта запускаються процессы если ручками, то от пользователя запустившего, если DTS то от пользователя создавшего или владельца, ну а в случае автоматического типа программного, тут может как угодно хорошо если еще от системы, а может и пустой пользователь.
Это подтвердилось косвенно собственным печальным опытом. Пользуем DTS пакеты уже более года

Тут дело скорее всего даже не в аккаунте.
Может в инициализации каких либо свойств перед процессингом партиции.
Я упомяну ещё раз, что если выполнить процесс партиции ручками из менеджера, то после этого сколько угодно раз можно процессить и программно через DSO.
Но я выставлял ручками все важные свойства и потому не пойму в чем дело.
Может кто уже сталкивался с подобной проблемой и нашел решение?

А пример вот:
Function Main()
Set Conn = CreateObject("ADODB.Connection")
Conn.CommandTimeout = 0
Conn.Open "Provider=sqloledb;Server=" & DTSGlobalVariables("SQL_SERVER") & ";Database=<???????>;Trusted_Connection=yes"

Set RS = CreateObject("ADODB.Recordset")
RS.Open "SELECT count(*) FROM ???????",Conn

If not(RS.EOF and RS.BOF) then
Rows_Count = RS.Fields(0)
Work_Year = DTSGlobalVariables("YEAR")
Work_Month = DTSGlobalVariables("MONTH")

Partition_Name = "?????????_" & Work_Year & "_" & Work_Month

Set dsoServer = CreateObject("DSO.Server")
Set dsoDatabase = CreateObject("DSO.MDStore")
Set dsoCube = CreateObject("DSO.MDStore")
Set dsoPartition = CreateObject("DSO.MDStore")
Set dsoPartition_new = CreateObject("DSO.MDStore")

'=============== connect to OLAP server ===============
dsoServer.Connect DTSGlobalVariables("OLAP_SERVER")

'=============== connect to the database OLAP ===============
Set dsoDatabase = dsoServer.MDStores.Item(DTSGlobalVariables("OLAP_DB"))

If <Условия некие> then
ProcessPartition DTSGlobalVariables("OLAP_CUBE")
End If

ProcessPartition DTSGlobalVariables("OLAP_CUBE_ARC")
end if
Set dsoDatabase = Nothing
dsoServer.CloseServer
Set dsoServer = Nothing

Main = DTSTaskExecResult_Success
End Function

Function ProcessPartition (CubeName)
'=============== connect to the Cube ===============
Set dsoCube = dsoDatabase.MDStores.Item(CubeName)

If not(dsoCube.MDStores.Find(Partition_Name)) then
'=============== Select first partition ===============
Set dsoPartition = dsoCube.MDStores.Item(1)

'=============== Add new partition ===============
Set dsoPartition_new = dsoCube.MDStores.AddNew(Partition_Name)

dsoPartition.Clone dsoPartition_new
Set dsoPartition = Nothing
Else
Set dsoPartition_new = dsoCube.MDStores.Item(Partition_Name)
End If

'=============== Full Process Partition ===============

dsoPartition_new.EstimatedRows = Rows_Count
dsoPartition_new.AggregationPrefix=Partition_Name

dsoPartition_new.Process ProcessFull

Set dsoCube = Nothing
Set dsoPartition_new = Nothing

End Function
...
Рейтинг: 0 / 0
Проблема с процессингом через DSO
    #33027173
Фотография Валек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так вродебы нормальный код.
пошукаю статью про программные процессинги кубов, было там очень детально описано
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Проблема с процессингом через DSO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]