Замечание к документу "продолжаем разговор (+)"   >>>   
Тема: продолжаем... (+)

Создан:Cherepanov; lawdb 12/06/2005 12:09 PM
Папка:
01. Технические вопросы, 06. Разработка Notes-приложений, 99. Разное
Тип сообщения:
Мне лень заполнять это поле

Сообщение:

06.12.2005 15:20:06 Dmitry Akulov написал:

> 1. создается сом inprocess объект

ну в общем-то я не такой умный :) "сом inprocess" - мне ни чего неговорит...


> 2. если дернуть любое свойство в vb у объекта помещенного в коллекцию, бейсик
> ругается object requered (значит скриптовые объекты ненастоящие, что логично, т.
> к. LS чистый интерпретатор.

не понял... там в архиве был test.vbs, который прекрасно получал объект и получал доступ к свойствам и методам объекта...

т.е. я сохранял в коллекции базу и документ, а затем из vbs получал документ и выводил его UNID (если база открыта в нотсе и там COM-объект создан)

> создавать COM session внутри из LS, в пятере
> заканчивалось гарантированно плохо, лотус падал)

да, вроде не сильно замечал... хотя и не баловался особо с этим... :)


> 3. почему не умирает объект, тоже понятно, лотус один раз юзнув dll\exe объект
> держит ее\его насмерть, пока сам не сгинет (это , кстати , минус - юзер один
> раз влез в БД и память хавнулась до перезагрузки клиента)

Нет тут ActiveX.exe скомпилирован таким образом, что одна копия обслуживает все запросы к данному объекту, и как только последний "ушел" ActiveX выгружается и понятно, что все объекты сохраненные в коллекции уничтожаются. Именно поэтому я и писал что при открытии базы мы создаем "DCN_Obj.ObjCollection" и сохраняем его в глобальную переменную, дабы держать COM-объект в памяти пока открыта база, как только база закрывается глобальная переменная ссылающаяся на COM уничтожается и если к COM-объекту больше ни кто не обращается (нет открытых сессий к нему) то он выгружается из памяти компа...


> 4. COM и OLE интерфейсы лотуса это пристройки, только когда мы зовем OLe
> снаружи мы получаем доступ к загруженному(с клиентом) инстансу ядра,
> соответственно единый доступ к инмемори образу документа. если мы дергаем COM,
> то загружаем в свой тред новый инстанс ядра LND, соответсвенно без связи с
> инмемори образами объектов живущих в клиентском ядре.

но мы то сохраням объект из "инстанс ядра LND"... таким образом извне мы работаем с объектами загруженного клиента...


> 5. сам lotus script не оперирует OLE совместимыми объектами, ему в лом, он
> работает со своими интерпретируемыми подобиями объектов, но т.к. нотес ядро
> одно, то ole объект этого ядра и LS объект работают с одним инмемори образом
> документа.
> 6. COM не может работать с этими инмемори образами, т.к. у него свой инстанс
> ядра.

не совсем понял...
>
> >и во внешнем приложение можно ведь и проверить, а не null ли объект... :)
>
> бессмысленно, см. выше

имеет смысл см.выше... :)
>
> >на сколько я понимаю, при передаче в COM Notes создает COM-объект
> "notes.notesSession" и передает его, но при этом сам COM объект связывается с
> >нотсовским объектом и живут они совместно. :)
>
> сорри, этой фразы я не догнал

ну я имел ввиду что на самом деле мы сохраняем в ActiveX.exe не чистый объект NotesXXXX, а его преобразованную копию ввиде COM-объекта, которая связана с нотсовским объектом NotesXXXX.

>
>
> >Не совсем понял почему нельзя? Я получаю из ActiveX нормальный COM-объект,
> связанный с нотсовским объектом, могу делать с ним что угодно (что >дозволенно
> делать через COM)....
> см. выше

см.выше... :)
>
> > проще, с теме же очередями. т.к. наконец стало работать свойство
> > Notesxxx.NotesURL и метод NotesSession.Resolve делаем просто засовываем в
> > очередь урл (правда, док надо сохранить перед этим), а когда надо достаем и
> > делаем resolve. что мне не нравиться, надо много ставить клиенту.
>
> >Тоже вариант, но на сколько я понимаю по Resolve будет создан новый объект, не
> >связанный с прародителем, так сказать...
> не факт, это требует проверки, думаю, что лотус иногда "ошибается", нарушая
> единственность инмемори образа документа. если соблюдать опр. правила, то можно
> , видимо, получить два объекта ссылающихся на один инмемори образ.

Возможно... но где гарантия... + а, как вы NotesDocumentCollection передадите?
>
>
> > На самом деле, возможны и какие-то ограничения, их я еще не откопал просто...
>
> например коллекцию в vb , лучше\легче создать визардом, а потом немного
> поправить, тогда не надо у процедур выставлять атрибуты, чтобы , например , по
> айтемам forall-ом ходить можно было, и т.д.

ну я же простеший тестовый ActiveX сделал... понятно, что если подойти к этому уже более серьезно (а не на уровне эксперемента), то делаться будет по другому...
>
> Кстати, зовут меня Андрей... :))
> ОЧень приятно ;) это мне известно, но теперь тут приняты псевдонимы, и
> трансвестизм, такая путаница... и посему, единственное, что я себе позволил,
> это транслитирацию постящегося, так, на всяк случай ;)

нуууууууу.... с ориентацией у меня все нормально... :)))

а в Авторе только фамилия поскольку работаю под своей IDшкой, а у нас админ завел всех без имен, только фамилии, так что...


Иерархия документов данной дискуссии:
Передача Notes-объектов между модулями... (Cherepanov; lawdb) (05.12.2005 14:02:54)
.... а Вы проверяли, или только в теории (+) (Dmitry Akulov) (05.12.2005 15:35:58)
........ работает, это я лажанулся. и тем не менее (+) отредактировано (Dmitry Akulov) (05.12.2005 16:02:12)
............ Re... (+) (Cherepanov; lawdb) (06.12.2005 8:32:05)
................ продолжаем разговор (+) (Dmitry Akulov) (06.12.2005 11:20:06)
.................... продолжаем... (+) (Cherepanov; lawdb) (06.12.2005 12:09:04)
.... +некоторые наблюдения... (Cherepanov; lawdb) (06.12.2005 11:56:29)
........ Как говорит Дмитрий "мало спал, много думал ;)"... (+) (Cherepanov; lawdb) (07.12.2005 7:33:45)
............ не уверен , правильна ли такая физкультура :) (Dmitry Akulov) (07.12.2005 22:11:38)
................ а кому легко? (+) (Cherepanov; lawdb) (08.12.2005 7:27:30)
.................... Андрей, я так понял, из Ваших слов, что вы запросто используете из скрипта обращение к COM, т.е. (+) (Dmitry Akulov) (08.12.2005 12:31:24)
........................ а почему нет... (+) (Cherepanov; lawdb) (09.12.2005 6:58:39)
............................ сорри Андрей, мы не понимаем друг-друга (+) (Dmitry Akulov) (09.12.2005 15:22:32)
................................ хм... :) (+) (Cherepanov; lawdb) (12.12.2005 8:20:48)
.................................... сдаюсь (+) (Dmitry Akulov) (12.12.2005 10:28:31)
............ COM Together - with Domino (-) (Denis Samoylovich) (07.12.2005 16:31:12)
........ наблюдения за наблюдателем + (Dmitry Akulov) (06.12.2005 13:26:21)
............ Re... (+) (Andrey N Cherepanov) (06.12.2005 13:53:33)
.... ... а вот с DCOM облом.... :(( (+) (Cherepanov; lawdb) (06.12.2005 9:16:31)


Разработчикам и администраторам: курсы, книги, сертификация