Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
Как это через XML?а если через XML сравнить элементы дизайна?
выгрузить вручную из дизайнера.
Права видимости к элементам дизайна выставлены отдельно?
Выгрузил я в dxl и первое впечатлениеМыш
да зачем DXLExporter...
Надо выгрузить из Дизайнера, руками Tools- Export.
Из шаблона и из "базы-цели", которую хотите обновить и сравнить.
UPD: Я не предлагаю обновлять через XML, это ад... Просто сравнить, может флаги или поля служебные разные.
<noteinfo noteid='2ffa' unid='9F42E17BA67A855D46257B120031D0B8' sequence='1'>
<created><datetime>20130214T150406,96+06</datetime></created>
<modified><datetime>20130214T150407,02+06</datetime></modified>
<revised><datetime>20130214T150407,01+06</datetime></revised>
<lastaccessed><datetime>20130214T150407,02+06</datetime></lastaccessed>
<addedtofile><datetime>20130214T150407,02+06</datetime></addedtofile></noteinfo>
<noteinfo noteid='1946' unid='DC2BB46F511772F5462577BC00360BF7' sequence='-2147483561'>
<created><datetime>20101014T155020,07+06</datetime></created>
<modified><datetime>20130214T123638,78+06</datetime></modified>
<revised><datetime>20121029T175503,77+06</datetime></revised>
<lastaccessed><datetime>20130214T123638,78+06</datetime></lastaccessed>
<addedtofile><datetime>20130214T123638,78+06</datetime></addedtofile></noteinfo>
Если скопировать элемент который не виден в другую БД и попробовать получить через NotesNoteCollection он становится видимым. Если честно уже устал от таких вот вещей лотуса, тот способ с крахом провалился, теперь тут вот такие проблемы. Не представляю, если бы сначала все получилось, а уже где нибудь при работе на реальных базах вышло что нибудь подобное(хм.. всего лишь поле отвечающее за репликацию и сохранение...
Кривой элемент... как побился интересно... вырезать - вставить? Станет виден?
backup должен быть на такие случаи, тем более что его сделать непосредственно перед обновлением не сложно.Не представляю, если бы сначала все получилось, а уже где нибудь при работе на реальных базах вышло что нибудь подобное(
Когда дизайн накатываешь на такую кривую БД то это не спасает. Но почему то снимая шаблон с кривой БД и когда его накатываешь на нормальную БД то это тоже не влияет на нормальную БД.backup должен быть на такие случаи, тем более что его сделать непосредственно перед обновлением не сложно.
ты писал про Replace что "запуск локально агента прекрасно обновил БД." Почему бы не использовать его?
Пусть и локально, для первого раза, дизайн придет в порядок, а потом уже использовать первый способ.
В общем по теме дизайна, с IBM ответили что это проблема в элементах дизайна, то что я показал sequence указывает что элемент поврежденный, он должен быть порядковым, а у меня кривой. Посоветовали найти бэкап с нормальными sequence. Либо вообще пересоздать. Я вспомнил что у нас была проблемка, когда у кого то клиент 8.5.3 у нас дизайн БД полетел как раз на этой базе где этот пользователь побывал, и IBM выпустили FP1 который это исправил. Скорее всего из-за этого и некоторые элементы дизайна повредились.DamirUrazov
Зачем на сервере? Если тебе надо делать такие накаты периодично, то лучше настроить службу сервера для тиражирования дизайна, настроить все шаблоны.
У нас делается локально, на один сервак происходит накат, с этого сервака служба сама кидает на все реплики.
Если интересует вопрос подписи дизайна, то можно сервером подписать, сразу после локального обновления. причем программно.
Делается все это через наших админов, так как права у них, зато мы спокойны.
Было дело - голый клиент 8.5 вообще базу ломал на 6.5-м сервере...дизайн БД полетел как раз на этой базе где этот пользователь побывал
If destServer = "" Or LCase(destServer) = "local" Then
destServer = Db4Sign.Server ' Сервер на котором подписать
Else
Set Db4Sign = DBT_GetDbOnServer(ServerName,Db4Sign) ' получение DB на нужном сервере
End if
If Db4Sign Is Nothing Then Error 5001, "Не получена ИC для подписи на сервере: " & destServer
Set adminp = session.CreateAdministrationProcess(destServer)
noteid = adminp.SignDatabaseWithServerID(destServer,Db4Sign.Filepath)
Немного не понял, для чего нужно запускать эту консольную команду?Добавлено: еще после подписания можно попросить админпроцесс отработать - например, с помощью консольной команды tell adminp process all
принудительно пнуть админпроцесс (ибо он запускается "не часто")Немного не понял, для чего нужно запускать эту консольную команду?
Tell Adminp Process All Processes all new and modified immediate, interval, daily, and delayed requests.
This command doesn't override timed requests execution time.
On Error GoTo eh
Dim db As NotesDatabase
Dim s As New NotesSession
Dim destServer As String
Dim adminp As Variant
Dim noteid As Variant
Dim sr1 As String
Set db = s.Currentdatabase
Print "asdad"
destServer = db.Server
Set adminp = s.CreateAdministrationProcess(destServer)
noteid = adminp.SignDatabaseWithServerID(destServer,db.Filepath)
sr1 = s.Sendconsolecommand(destServer, {tell adminp process all})
ex:
Exit Sub
eh:
Print Error + " on line "+CStr(Erl)
Resume ex
Обучение наступательной кибербезопасности в игровой форме. Начать игру!