Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lotus Notes/Domino: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/116: Рейтинг темы: голосов - 116, средняя оценка - 4.56
1

Метод Notesdatabase.search

16.08.2010, 15:41. Просмотров 20830. Ответов 15
Метки нет (Все метки)

Добрый день.

Не подскажите есть ли какой нибудь способ ограничить метод Search по времени? чтобы при продолжительном поиске (зависании) он прекращал поиск.

Может есть какие то иные способы реализации этой идеи..

Заранее спасибо за ответы.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2010, 15:41
Ответы с готовыми решениями:

метод Notesdatabase.search
Я столкнулся с проблемой следующего содержания: нужно с помощью метода...

Notesdatabase.search
сабж NotesDatabase.Search не находит документы по параметру а документ в...

метод Search
Не могу написать корректную формулу в параметре метода Search класса...

Метод Search
Народ, помогите найти серчем по числовому полю (Form = "ContractACC" & Kod =...

проблемка с Notesdatabase.ftsearch
При реализации поиска для одной базки, наткнулся на одну проблемку. Не работает...

15
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.08.2010, 16:27 2
Ctrl-Break ? :(
0
omykotymx
0 / 0 / 0
Регистрация: 06.04.2008
Сообщений: 151
16.08.2010, 16:29 3
[just joke]
1. ctrl + break
2. killnotes.exe
[/just joke]

А вообще, в тонкости не сильно посвящен, но по превышении определенного таймаута он сам вроде как сваливается - были случаи, когда агент вылетал именно из-за тормозов фт-поиска (нагрузка сервера, не успевал ответить на запрос или что-то в этом роде)
0
16.08.2010, 16:33 4
А какой метод соответствует ctrl + break? Мне из кода нужно подобное сделать..
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.08.2010, 16:38 5
Цитата Сообщение от Рамиль
А какой метод соответствует ctrl + break? Мне из кода нужно подобное сделать..
зачем это "из кода" ?
прервать поиск не получив резалт - и что дальше?
0
omykotymx
0 / 0 / 0
Регистрация: 06.04.2008
Сообщений: 151
16.08.2010, 16:40 6
эммм, никакой не соответствует, ибо и "даром не нать"...
попытайтесь зайти с другой стороны, оптимизировав и сузив формулу поиска, cutoff date урежьте, maxdocs пропишите, вобщем как можно сильнее урежьте ему область для зависания, разбив по возможности поиск на куски что ли...
0
16.08.2010, 16:43 7
поиск делается по ФИО, с указанием любой части этого ФИО. Если долго ищет, то следовательно надо бы конкретизировать запрос. А порой он просто подвисает....

Добавлено:


Цитата Сообщение от amigolinx
эммм, никакой не соответствует, ибо и "даром не нать"...
попытайтесь зайти с другой стороны, оптимизировав и сузив формулу поиска, cutoff date урежьте, maxdocs пропишите, вобщем как можно сильнее урежьте ему область для зависания, разбив по возможности поиск на куски что ли...
жаль что не соответствует. Урезать увы не могу, нужно делать поиск по всем данным базы. А поводу зависания, он порой зависает и на элементарных запросах, то что раньше обрабатывал за доли секунды. Почему так, не понимаю..
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.08.2010, 16:44 8
-сделать индекс на мультивалюйное поле и не юзать Search
-сделать адресную книгу и пользовать штатный эхиад
0
16.08.2010, 16:48 9
Цитата Сообщение от lmike
-сделать индекс на мультивалюйное поле и не юзать Search
-сделать адресную книгу и пользовать штатный эхиад
программа на C#. К лотусу подключаюсь "как есть". Запрос только для подтягивания данных и отображения со своими. Так что индексы построить не в моей компетенции...
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.08.2010, 16:51 10
опять костыли...
мда
тогда ответ для вас - НИКАК, либо рвать сессию в глюкавой КОМе
пущайте отдельно тредой и прибивайте её
0
16.08.2010, 16:54 11
Цитата Сообщение от lmike
опять костыли...
мда
тогда ответ для вас - НИКАК, либо рвать сессию в глюкавой КОМе
да мне и самому надоели эти костыли, а куда денешься....

можно про "рвать сессию" поподробнее плиз. Искал инфу на эту тему, не нашел..
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.08.2010, 16:58 12
ну выж сессию открываете...?
делайте в отдельной нити, на шарпее (я не знаю его синтаксиса и библиотек)
дальше - join (это в джава) нити, по таймауту
как на такое "закрытие" откинется нотусовая КОМа - я не знаю... (возможно стрепит)
0
16.08.2010, 17:05 13
я пробывал запускать поиск в потоке, и в случае зависания убивать его. однако же Abort() не убивает запущенный поиск. поток переходит в состояние ожидания.

Все равно спасибо, ответ на главный вопрос получен: на Search нельзя поставить тайм-аут, буду искать другие решения.
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.08.2010, 17:17 14
не понимаю - почему треда не прибивается
но это могут быть корявости шарпея или не Abort надо (или параметры какие)
0
16.08.2010, 17:28 15
честно говоря сам не понимаю, поток не завершится пока не выполнится Seach. И только когда Seacrh выполнится будет выполнено завершение потока Abort. Соответствено при зависании получается трабл....
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
16.08.2010, 17:34 16
http://stackoverflow.com/questions/263116/...ads-to-complete
вот join с таймаутом
0
16.08.2010, 17:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2010, 17:34

Search
Для примера: searchFormula$ = {Form = "Project"} Set collection =...

Глобальный Search
по темам покапался, мало что нашел.. Вот такая задача, сделать по архивным...

Вопрос по Db.search
Доброго времени суток! Возник такой вопрос, как написать запрос на просмотр...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru