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

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

Сообщение:
>в том то и дело что будет доступен пока Вы не закроете Лотус... :)
>даже если в клиенте закрыть базу данных, объект полученный и сохраненный в коллекцию будет доступен!
>меня и самого все это поразило до глубины души, но факт на лицо - работает!
мало спал, много думал ;)
1. создается сом inprocess объект
2. если дернуть любое свойство в vb у объекта помещенного в коллекцию, бейсик ругается object requered (значит скриптовые объекты ненастоящие, что логично, т.к. LS чистый интерпретатор. создавать COM session внутри из LS, в пятере заканчивалось гарантированно плохо, лотус падал)
3. почему не умирает объект, тоже понятно, лотус один раз юзнув dll\exe объект держит ее\его насмерть, пока сам не сгинет (это , кстати , минус - юзер один раз влез в БД и память хавнулась до перезагрузки клиента)
4. COM и OLE интерфейсы лотуса это пристройки, только когда мы зовем OLe снаружи мы получаем доступ к загруженному(с клиентом) инстансу ядра, соответственно единый доступ к инмемори образу документа. если мы дергаем COM, то загружаем в свой тред новый инстанс ядра LND, соответсвенно без связи с инмемори образами объектов живущих в клиентском ядре.
5. сам lotus script не оперирует OLE совместимыми объектами, ему в лом, он работает со своими интерпретируемыми подобиями объектов, но т.к. нотес ядро одно, то ole объект этого ядра и LS объект работают с одним инмемори образом документа.
6. COM не может работать с этими инмемори образами, т.к. у него свой инстанс ядра.

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

бессмысленно, см. выше

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

сорри, этой фразы я не догнал


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

см. выше


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

>Тоже вариант, но на сколько я понимаю по Resolve будет создан новый объект, не связанный с прародителем, так сказать...

не факт, это требует проверки, думаю, что лотус иногда "ошибается", нарушая единственность инмемори образа документа. если соблюдать опр. правила, то можно , видимо, получить два объекта ссылающихся на один инмемори образ.


> На самом деле, возможны и какие-то ограничения, их я еще не откопал просто...

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

кстати, можно скрестить две идеи. оформить этот коллектор как настоящий комсервер, запускать его через shell, получать на его объект ссылку GetObject
он создает свою сессию получает урл документа, резолвит его у себя и сохраняет( не уверен, но думаю, что урлы документов полученных через ключ и по юниду будут отличаться - у одного будет юнид вьюшки, а у второго 0 - типа дефолтная вьюшка), урл может сразу служить ключом коллекции, получиться такой управляемый кэш

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

Иерархия документов данной дискуссии:
Передача 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)


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