Author Topic: не обновляется локальный ростер  (Read 5751 times)

0 Members and 1 Guest are viewing this topic.

Offline malcolmTopic starter

  • Newbie
  • *
  • Posts: 8
  • Karma: 0
всем привет) у нас домен с АД, опенфайр 3.9.3. берет из АД только включенных пользователей, отключенных - фильтрует. клиенты логинятся автоматом с доменным паролем, все ок. 
 
подскажите, пожалуйста, в чем может быть проблема? ситуация такая:
одного пользователя я перевел из одного подразделения в другое в АД (у нас миранда берет группы из АД, то есть пользователя я перекинул из одной группы в другую), но в миранде этот юзер по-прежнему остался в старом подразделении у всех, хотя опенфайр подразделенение из АД обновил, но при просмотре ростера любого юзера видно, что ничего никуда не переместилось.
 
настраивал всякие кеши в опенфаере, к нему вопросов нет. он работает нормально. мы пользователя отключили в АД - через некоторое время он ушел из опенфаера, НО в локальном ростере у всех пользователей он остался.
 
такое чувство, что миранда не обновляет данные с опенфаера.
 
используем Miranda NG 0.95.2 build 9966, роздано через ГП всем
 

Offline Magic

Re: не обновляется локальный ростер
« Reply #1 on: 10 03 2015, 07:53:57 »
откатитесь на openfire 3.9.1 - в 3.9.3 есть проблема с отпаданием ростера AD, после чего клиенты кешируют локальный ростер на сервере и используют его в будущем.
также после отката надо почистить таблицы ofRoster и ofRosterGroups - это удалит закешированные данные.
Если ручки растут из попки - это ножки
 

Offline malcolmTopic starter

  • Newbie
  • *
  • Posts: 8
  • Karma: 0
Re: не обновляется локальный ростер
« Reply #2 on: 10 03 2015, 12:58:19 »
Magic, эээ... простите, а какое-то доказательство тому, что в версии 3.9.3 есть такие проблемы с отпаданием ростера, Вы можете предоставить?
и еще вопрос: как почистить эти таблицы? в веб-морде опенфаера в разделе кеш я таких названий не нашел

опенфаер использует встроенную базу, а не внешнюю.
 

Offline Magic

Re: не обновляется локальный ростер
« Reply #3 on: 10 03 2015, 13:28:37 »
Magic, эээ... простите, а какое-то доказательство тому, что в версии 3.9.3 есть такие проблемы с отпаданием ростера, Вы можете предоставить?
и еще вопрос: как почистить эти таблицы? в веб-морде опенфаера в разделе кеш я таких названий не нашел

опенфаер использует встроенную базу, а не внешнюю.
Доказательства? я в суде? :)
Вот баг - https://igniterealtime.org/issues/browse/OF-830?jql=project%20%3D%20"OF"%20AND%20fixVersion%20%3D%203.10.0
который вызывал эти спецэффекты.
У меня такой же сетап и была та же проблема.

почистить - ручками, это не кеш, это таблицы ростера пользователей.
При работе через LDAP они должны быть чисты, если используются только группы с домена. Если пользователь руками добавляет какой-то контакт, он появится в этих таблицах.
Если jid этого контакта совпадает с доменным, то будет использоваться локальный, он имеет приоритет.
Для встроенной базы - ищите инструменты работы с ней, например: http://igniterealtime.org/projects/openfire/plugins.jsp плагин DB Access.
Как он работает и позволяет ли чистить таблицы - не знаю, у нас используется MSSQL.
Если ручки растут из попки - это ножки
 

Offline malcolmTopic starter

  • Newbie
  • *
  • Posts: 8
  • Karma: 0
Re: не обновляется локальный ростер
« Reply #4 on: 10 03 2015, 14:13:38 »
но ведь новые пользователи-то появляются! например, пришел новый работник. я его запихнул в нужное OU, через некоторое время он у всех появляется.
то есть новые пользователи появляются, но НЕ удаляются или перемещаются! как это можно объяснить?)
 

Offline Magic

Re: не обновляется локальный ростер
« Reply #5 on: 10 03 2015, 14:20:15 »
но ведь новые пользователи-то появляются! например, пришел новый работник. я его запихнул в нужное OU, через некоторое время он у всех появляется.
то есть новые пользователи появляются, но НЕ удаляются или перемещаются! как это можно объяснить?)
Я же писал в первом сообщении:
При пропадании группы из ростера LDAP, миранда записывает свой текущий ростер на сервере как локальный. Или опенфайр это делает, в данном случае неважно.
В ростере хранится также и группа пользователя.
при изменении ростера LDAP, клиент продолжает использовать свой локальный для данного пользователя, который записан на сервере. потому что там уже есть такой пользователь, с таким jid. соответственно и группы тянутся оттуда.
При удалении пользователь также остается в локальном ростере и пока оттуда его не удалить - останется.
При формировании ростера для клиента, опенфайр суммирует ростер LDAP и локальный. При пересечении jid, инфа приоритетна в локальном.
При добавлении нового пользователя, в локальном ростере он отсутствует и инфа о нем будет тянуться из LDAP, пока не произойдет опять данный глюк и он также запишется в локальный ростер.
Просто загляните в свои таблицы ofRoster и все увидите.
При нормальной работе сервера со связкой через LDAP, там должны быть только контакты, добавленные пользователями вручную.
« Last Edit: 10 03 2015, 14:21:47 by Magic »
Если ручки растут из попки - это ножки
 

Offline malcolmTopic starter

  • Newbie
  • *
  • Posts: 8
  • Karma: 0
Re: не обновляется локальный ростер
« Reply #6 on: 16 03 2015, 12:07:18 »
Magic, спасибо за ответ.
короче, без отката к версии 3.9.1 ничего не выйдет?

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

Offline Magic

Re: не обновляется локальный ростер
« Reply #7 on: 16 03 2015, 12:13:39 »
Без отката - можно чистить регулярно эти таблицы, когда они пустые - миранда корректно подтягивает инфу с LDAP.
Проблема там была решена (судя опять же по багтрекеру), но бету также не ставил, хотя руки чешутся - там обещают видеочаты в браузере :)
Если ручки растут из попки - это ножки
 

Offline malcolmTopic starter

  • Newbie
  • *
  • Posts: 8
  • Karma: 0
Re: не обновляется локальный ростер
« Reply #8 on: 16 03 2015, 13:04:03 »
Magic, я так и не нашел, как в эти таблички можно залезть, когда используется база самого опенфаера, а не внешняя  :(
 

Offline Magic

Re: не обновляется локальный ростер
« Reply #9 on: 16 03 2015, 13:25:15 »
Magic, я так и не нашел, как в эти таблички можно залезть, когда используется база самого опенфаера, а не внешняя  :(
попробуйте в папке Openfire\bin\extra запустить embedded-db-viewer.bat (для винды) или embedded-db-viewer.sh для *nix.
Правда если база на линуксе - нужны вроде иксы, бо вьювер на яве.

P.S. Не знаю как сейчас, в 3.7 встроенная база представляла собой один большой SQL скрипт, который при старте загонялся в память.
Если база небольшая, можете попробовать текстовым редактором открыть и подправить.
Если ручки растут из попки - это ножки
 

Offline malcolmTopic starter

  • Newbie
  • *
  • Posts: 8
  • Karma: 0
Re: не обновляется локальный ростер
« Reply #10 on: 17 03 2015, 06:41:34 »
Magic, спасибо за ответ. скопировал всю папку с сервером опенфаера себе на комп. открыл на своем компе то, что вы порекомендовали. появилась табличка с кучей значений, похожая на интерфейс в обычном SQL. как вы и написали, есть и ofroster, и ofrostergroups.
но как их почистить? попробовал банальным DELETE FROM PUBLIC.OFROSTER. и такую же команду для ofrostergroups. ничего из-за этого важного не пропадет?)

и еще вопрос. эти таблицы надо чистить с заглушенным сервером опенфаера?

дальше я решил посмотреть сам SQL-скрипт, стартующий при запуске сервера. весит он 16 мб. жесть) 16 метров sql-запросов)
« Last Edit: 17 03 2015, 06:49:02 by malcolm »
 

Offline Magic

Re: не обновляется локальный ростер
« Reply #11 on: 17 03 2015, 10:06:40 »
Magic, спасибо за ответ. скопировал всю папку с сервером опенфаера себе на комп. открыл на своем компе то, что вы порекомендовали. появилась табличка с кучей значений, похожая на интерфейс в обычном SQL. как вы и написали, есть и ofroster, и ofrostergroups.
но как их почистить? попробовал банальным DELETE FROM PUBLIC.OFROSTER. и такую же команду для ofrostergroups. ничего из-за этого важного не пропадет?)

и еще вопрос. эти таблицы надо чистить с заглушенным сервером опенфаера?

дальше я решил посмотреть сам SQL-скрипт, стартующий при запуске сервера. весит он 16 мб. жесть) 16 метров sql-запросов)
таблицы чистить только с выключеным сервером опенфайра, в случае со встроенной базой(
С внешней базой можно на ходу.
Пропасть могут контакты, которые пользователи добавляли вручную в свои ростеры.

По поводу 16 МБ запросов - да, так работает встроенная база :(
В случае если будете использовать мониторинг и архивацию сообщений - не заводите это на встроенной базе, разростется очень быстро и будет жрать память.
Если ручки растут из попки - это ножки
 

Offline malcolmTopic starter

  • Newbie
  • *
  • Posts: 8
  • Karma: 0
Re: не обновляется локальный ростер
« Reply #12 on: 19 03 2015, 07:13:35 »
Magic, попробовал проделать очистку базу на рабочем серваке. остановил опенфаер. попытался открыть базу вашим способом - вылезла ошибка о том, что база занята каким-то процессом. скриншот сделать не удалось, но помню, что в ошибке фигурировал файл openfire.lck. и он ругался на его отсутствие. была такая ошибка IOFileNotFound и путь на этот файл. при рабочем опенфаере (в качестве теста) я тоже пытался открыть базу. ошибка тоже связана с файлом openfire.lck, но текст уже другой, т.к. файл в этот момент существовал. по-видимому, это какой-то флаг на предмет запущенного опенфаера.

короче, решил почистить сам скрипт руками. удалил все строки, где были слова ofRoster и ofRosterGroups. перезапустил сервис. все ок) те, кто должны был удалиться и переместиться, удалились и переместились.

но все равно есть ложка дегтя.
теперь в вебке опенфаера я не могу увидеть какой пользователь в какой группе в ростере у выбранного пользователя. надеюсь, выразился понятно)
 

Offline Magic

Re: не обновляется локальный ростер
« Reply #13 on: 19 03 2015, 07:39:09 »
Magic, попробовал проделать очистку базу на рабочем серваке. остановил опенфаер. попытался открыть базу вашим способом - вылезла ошибка о том, что база занята каким-то процессом. скриншот сделать не удалось, но помню, что в ошибке фигурировал файл openfire.lck. и он ругался на его отсутствие. была такая ошибка IOFileNotFound и путь на этот файл. при рабочем опенфаере (в качестве теста) я тоже пытался открыть базу. ошибка тоже связана с файлом openfire.lck, но текст уже другой, т.к. файл в этот момент существовал. по-видимому, это какой-то флаг на предмет запущенного опенфаера.

короче, решил почистить сам скрипт руками. удалил все строки, где были слова ofRoster и ofRosterGroups. перезапустил сервис. все ок) те, кто должны был удалиться и переместиться, удалились и переместились.

но все равно есть ложка дегтя.
теперь в вебке опенфаера я не могу увидеть какой пользователь в какой группе в ростере у выбранного пользователя. надеюсь, выразился понятно)
Должно быть видно, вы случайно не удалили скрипты CREATE TABLE для этих таблиц?
Если ручки растут из попки - это ножки
 

Offline malcolmTopic starter

  • Newbie
  • *
  • Posts: 8
  • Karma: 0
Re: не обновляется локальный ростер
« Reply #14 on: 19 03 2015, 07:59:35 »
Magic, нет, конечно, нет)))
понятие SQL у меня некоторое есть) я удалил только строки со словами ofRoster и ofRosterGroups. тем не менее, у всех пользователи распределились правильно по группам

Post Merge: 19 03 2015, 11:49:13
интересный факт!
сервер поработал, люди с утра залогинились доменно... и этот запрос SQL-ный сам дополнился строками ofroster и ofrostergroup. и группы в опенфаере стали отображаться для ростеров юзеров!)
 :THUMBS UP:
« Last Edit: 19 03 2015, 11:49:13 by Apollo2k4 »