Форум OlegON > Ресурсы OlegON > Вопросы сервера > Программы OlegON

Optimizer-4 (функционал) : Программы OlegON

28.04.2024 2:00


18.11.2012 11:44
OlegON
 
+ Вывод таблички количества сессий по пользователям "Users" (notnoob)
+ Определение блокированных сессий и уведомление (не 9i и notnoob)
27.11.2012 21:45
OlegON
 
+ RMANPwd (no) - пароль для шифровки бекапов RMAN. Пароль используется только в версиях 10g и выше. Если "no", то пароль будет сгенерирован автоматически (lower(host_name||instance_name)).
11.01.2013 08:18
OlegON
 
В общем, несмотря на то, что ошибки в этой версии будут поправлены, ее разработка останавливается в пользу версии 5, которая будет писаться (уже пишется) больше с уклоном в сторону оффлайна. Функционал будет перенесен полностью, благо просто классов поперетаскивать, даже все таблицы тут будут сохранены. Но не пугайтесь паузы - многое надо переделать.
Все регистрации будут действительны для обоих версий.
12.03.2013 20:16
OlegON
 
% Изменен статус Oracle 11g, версия становится тестированной, но ограниченной. Т.е. лишь бы просто работала и не портила.
% Имя БД теперь берется из переменной окружения ORACLE_SID, а уже если переменная пустая, то как раньше.
19.03.2013 20:23
OlegON
 
Скопирую статью из Wiki, вдруг что-то потерял... Спасибо большое konst за труд

Цитата:
История

Первая версия оптимизатора появилась в 2002 году и представляла собой программку, в которой можно было выполнить множество операций, в том числе перенос базы с диска на диск, мелкий ремонт и получить вывод несовпадающих параметров как базы, так и системы. Программа предназначалась для внутреннего использования сотрудниками техподдержки, но после раздачи генератора ключей клиентам Петровым В. разработка программы была прекращена. Новый оптимизатор, optimizer-2 был задуман уже консольной программой, хотя был написан на Delphi. В момент создания optimizer-3 OlegON, автор программы, уволился из "Сервис плюс" и под давлением руководства все исходники пришлось оставить. Optimizer-4 задумывался как сетевое средство мониторинга. Истории его создания не сохранилось, но "* Created on October 6, 2008, 12:56 PM" в главном модуле четко обозначает дату рождения.
Параметры

Все параметры программы содержатся в таблице sys.olegon_params. Независимо от версии программы все параметры инициализируются при запуске оптимизатора. Для возвращения параметра к значению по умолчанию достаточно его просто удалить из вышеуказанной таблицы.
Общие параметры

MaintenanceTime
Время, когда программа расчитывает находиться без пользователей и будет заниматься общей оптимизацией базы. До запятой - время начала, после - продолжительность в часах. Т.е. с полпервого ночи до 6:30, как в примере, она с каждым запуском будет стараться что-то полезное выполнить, реорганизация таблиц, подсчет статистики и пр. !
Примечание: Время, задаваемое оптимизатору для MaintenanceTime, определяется по Москве!
Возможные значения: ЧЧ:ММ,Ч
Значение по умолчанию: 23:00,7
ForceMaintenance
При значении "yes" любой запуск оптимизатора считается в пределах MT.
Возможные значения: yes / no
Значение по умолчанию: no
IamNoob
Не выводить в лог специализированные записи о параметрах Oracle.
Примечание: для моих клиентов по умолчанию - no При значении параметра yes : сокращен фукционал Optimizera Пишется сокращенный log не удаляются старые документы (акты и заказы) может быть что то еще...
Возможные значения: yes / no
Значение по умолчанию: yes
MaxFreeTablespace
Минимум свободного места в табличном пространстве, включая возможное расширение файлов табличного пространства. Следите за местом на дисках самостоятельно, пожалуйста. Добавлять диски программа не умеет. Файлы добавляются в ту же директорию, куда был добавлен последний файл этого табличного пространства.
Возможные значения: ХХХ Mb
Значение по умолчанию: 10
LowDiskSpace
Pазмер свободного места (в Мб) на дисках, где располагается база, меньше которого будет выведено предупреждение
Возможные значения: ХХХХ Mb
Значение по умолчанию: 5000
Пример: 5000
PerformTransfer
Проценты от суток, через которые необходимо производить перенос товародвижения. Перенос производится только в MaintenanceTime. Алгоритм простой, если MaintenanceTime, то идет проверка отработанных процентов, если разница больше PerformTransfer, то запускается перенос. Программа самостоятельно пытается отключить всех пользователей, а так же почтовый и кассовый модули на уровне базы.
Примечание: 0 - отключает перенос вообще.
Возможные значения: 0 / % от суток
Значение по умолчанию: 0
AdminJabber
jabber DBA
Примечание: по умолчанию = "-" и сообщения не отсылаются
Возможные значения: - / учетная запись джаббер
Значение по умолчанию: -
Пример: [email]db-admin@jabber.ru[/email]
ManagerJabber
джаббер менеджера по Супермагу. Т.е. ему будут идти сообщения о событиях, связанных с самим СМ (например, при создании отчета по синхронизации)
Примечание: по умолчанию = "-" и сообщения не отсылаются
Возможные значения: - / учетная запись джаббер
Значение по умолчанию: -
Пример: [email]manager@jabber.ru[/email]
AdminEmail
e-mail DBA
Примечание: запрещается использовать почтовый сервер @mail.ru
Возможные значения: - / учетная запись
Значение по умолчанию: -
ManagerEmail
e-mail менеджера СуперМаг
Примечание: запрещается использовать почтовый сервер @mail.ru
Возможные значения: - / учетная запись
Значение по умолчанию: -
ManagerEmail2
Вторичный e-mail менеджера СуперМаг
Примечание: запрещается использовать почтовый сервер @mail.ru
Возможные значения: - / учетная запись
Значение по умолчанию: -
AdmEmailConfirm
Код подтверждения актуальности E-mail администратора
Примечание: Связанный параметр - AdminEmail
Возможные значения: yes / no / код
Как это работает: Оптимизатор при подключении смотрит коды у меня и в базе (соответствующие параметры вы уже можете увидеть) и, если код равен "no" (по умолчанию), высылает на все установленные емейлы и жабберы соответствующие коды из моей базы, после чего выставляет код в "yes". Если код совпадает с тем, что есть у меня, то уведомления работают в прежнем режиме. Если нет - попыток что-то отправить не будет. Сделано это по причине дичайшего количества пробитых вместо жаббера емейлов, тухлых емейлов и т.п. ерунды, в результате чего комп просто забит висящими потоками, пытающимися отправить сообщения в никуда. Теперь в никуда сообщение уйдет лишь один раз. После чего попыток больше не будет, пока параметр не вернут в "no". для обеспечения подтверждения адресов почты и jabber по алгоритму, описанному в предыдущем сообщении. Если адрес не подтвержден, он в принципе исключается из всех алгоритмов программы. Оба ManagerEmail подтверждаются по первому. На зарегистрированных проверка не распространяется. Коды меняются 1го числа каждого месяца в 2:30 по московскому времени. Если в сутки уходит более 20 сообщений почты или более 20 сообщений jabber на одну базу, код подтверждения меняется.
Пример: 68
ManEmailConfirm
Код подтверждения актуальности E-mail менеджера Супермаг
Примечание: Связанный параметр - ManagerEmail, ManagerEmail2
Возможные значения: yes / no / код
Как это работает: см. описание в параметре AdmEmailConfirm
Пример: 68
AdmJabberConfirm
Код подтверждения актуальности Jabber-аккаунта администратора
Примечание: Связанный параметр - AdminJabber
Возможные значения: yes / no / код Как это работает: см. описание в параметре AdmEmailConfirm
Пример: 68
ManJabberConfirm
Код подтверждения актуальности Jabber-аккаунта менеджера Супермаг
Примечание: Связанный параметр - ManJabber
Возможные значения: yes / no / код
Как это работает: см. описание в параметре AdmEmailConfirm
Пример: 68
ShiftClosed
На сколько суток от текущей даты должен быть закрыт для редактирования период
Возможные значения: XX дней
Значение по умолчанию: ???
Пример: 180
MaxDocDiff
Максимальный возраст (в днях) документа, который можно редактировать. При превышении уведомляется менеджер.
Возможные значения: XX дней
Значение по умолчанию: 30
Пример: 30
CloseZAfter
Число дней, после которых Z-отчет помечается корректным.
Возможные значения: - / ХХ - кол-во дней
Значение по умолчанию: -
MaxFutureDoc
Документы WI, WO, OR, CS, CR, IW, IL, PE, PO, RL, MA, AC со статусом больше 1 и датой ушедшей в будущее более чем на число дней, указанных в параметре, будут попадать в ежедневный отчет. Заголовок отчета при этом не меняется.
Значение по умолчанию: 30
RunRMAN
Запускать ли RMAN
Возможные значения: no / yes
Значение по умолчанию: yes
Пример: yes
LastRMAN
Дата, на которую RMAN уже запускался
Возможные значения: дата в формате ДД.ММ.ГГГГ
Пример: 18.08.2011
DelayRMAN
Параметр, позволяющий задержать выполнение RMAN до определенного времени (локального). Просто обычно есть кусочек до MaintenanceTime, который часто трудно использовать из-за закрытия касс и т.п., но вполне можно взять для создания резервной копии. Извините, если кого-то достанет ругань на старый бекап из-за значения по умолчанию. если бекап не делается вторые сутки, то DelayRMAN сбрасывается на 0 и LastRMAN удаляется.
Возможные значения: от 0 до 23
Значение по умолчанию: 0
NoTabLimit
обычно при оптимизации таблицы перебираются по 20 штук. Этот параметр отключает такое ограничение. Обращаю внимание, что штатное ограничение вполне рационально.
Возможные значения: no / yes
Значение по умолчанию: no
Пример: no
SaveDump
использовать ли дамп (exp) в дополнение к бекапу в skipit, чтобы экспорт не производился никогда"
Примечание: Связанный параметр - DumpNoLimits
Возможные значения: skipit / дата в формате ДД.ММ.ГГ:
Значение по умолчанию: 1
Пример: 18.08.11:19.08.11:
DumpFTP
Основной ftp-сервер, куда должен заливаться дамп базы
Примечание: связанные параметр - ParallelUpload
Пример: ftp://user:password@server/
DumpFTP2
Вторичный ftp-сервер, куда должен заливаться дамп базы
Примечание: связанные параметр - ParallelUpload
Пример: ftp://user:password@server/
DumpPwd
Пароль на дамп базы
DumpNoArch
Не архивировать дамп базы.
Возможные значения: no / yes
Значение по умолчанию: ????
DumpNoLimits
делать ли дамп каждый день, независимо от размера. Если хотите, чтобы правило вступило в силу сразу - удалите параметр SaveDump. В противном случае оно сработает только после даты указанной в этом параметре.
Возможные значения: no / yes
Значение по умолчанию: no
ParallelUpload
Запускает архивацию и загрузку дампа в параллельной задаче, через Scheduler. Вынужденно включил по умолчанию, поскольку у многих из-за обрывов связи оптимизатор никак не мог проконтролировать завершение загрузки и запускал экспорт еще раз. Сервис Task Scheduler (Назначенные задания или Планировщик, не помню, как в русской винде) должен быть запущен.
Примечание: связанные параметр - DumpFTP, DumpFTP2
Возможные значения: no / yes
Значение по умолчанию: yes
DontUseFFMAPREP
Не оптимизировать FFMAPREP.
Примечание: Если в данной БД не рассчитывается себестоимость, то логичнее отключить оптимизацию аналитических таблиц... т.е. "yes"
Возможные значения: no / yes
Значение по умолчанию: no
FFTables
Табличное пространство для FF-таблиц Обращу внимание на некоторые особенности параметров. Работают они только в паре, т.е. без переноса таблиц индексы не переносятся, даже если лежат в другом ТП. Если ТП индексов не задано, оно считается равным ТП таблиц. Поэтому рекомендую сначала устанавливать параметр ТП индексов, потом таблиц, пока не начал работать оптимизатор. Параметры считываются и запоминаются в самом начале процедуры.
Примечание: Связанный параметр - FFIndexes
Возможные значения: - / табличное пространство
Значение по умолчанию: -
FFIndexes
Табличное пространство для FF-индексов Обращу внимание на некоторые особенности параметров. Работают они только в паре, т.е. без переноса таблиц индексы не переносятся, даже если лежат в другом ТП. Если ТП индексов не задано, оно считается равным ТП таблиц. Поэтому рекомендую сначала устанавливать параметр ТП индексов, потом таблиц, пока не начал работать оптимизатор. Параметры считываются и запоминаются в самом начале процедуры.
Примечание: Связанный параметр - FFTables
Возможные значения: - / табличное пространство
Значение по умолчанию: -
DisableSysStats
Отключить сбор системной статистики.
Примечание: Oracle 10i и старше на 9i системная не собирается в принципе
Возможные значения: no / yes
Значение по умолчанию: no
DisableCompute
Отключить compute в сборе статистики.
Возможные значения: no / yes
Значение по умолчанию: no
DisableCompile
Отключить компиляцию инвалидных объектов.
Возможные значения: no / yes
Значение по умолчанию: no
LastAlertLog
Номер последней учтенной строки в alert.log
LastEventLog
Номер последней учтенной строки в журнале событий Супермага.
LastDocLog
Номер последней учтенной строки в журнале документов Супермага.
OptimizeOrders
ускорение заказов
Примечание: работает только на Oracle Enterprise edition. На версии СМ+ 1028.2 и старше оптимизация заказов отключается принудительно.
Связанный параметр - OrdersLimit
Возможные значения: no / yes
Значение по умолчанию: yes
OrdersLimit
Оптимизация заказов дважды в день (6 и 14 часов) - "yes" или с каждым проходом - "no"
Примечание: Связанный параметр - OptimizeOrders
Возможные значения: no / yes
Значение по умолчанию: no
UseReminder
При отсутствии подключений более 4х часов оптимизатор пришлет уведомление на ManagerEmail2, а в случае незаданного ManagerEmail2 - на AdminEmail. Уведомления будут приходить около 10 раз с интервалом в 3 часа. Шлет их параллельная сессия оптимизатора, запущенная другим клиентом, т.е. если все отвалится, то спама не будет.
Примечание: Если емейлы ненастроенные, то может вообще не работать.
Возможные значения: no / yes
Значение по умолчанию: yes
ArchiveLogs
Архивировать ли логи в течение дня.
Возможные значения: no / yes
Значение по умолчанию: yes
CheckSystem
проверка табличного пространства System на посторонние сегменты
Возможные значения: no / yes
Значение по умолчанию: yes
AddBarcodes
при отсутствии на активном товаре ШК, он будет добавлен в соответствии с правилами Супермага
Возможные значения: no / yes
Значение по умолчанию: no
UseReport
включает и выключает ежедневный отчет
Примечание: нет
Возможные значения: no / yes
Значение по умолчанию: yes
LastReport
Дата за которую отчет генерироваться не будет. После выполнения отчета выставляется в текущую.
Примечание: Для повторного запроса отчета необходимо удалить эту запись... или нажать на кнопку "Рестарт Отчет" (OptContol). Связанный параметр - OnlyGoodsInRep
Возможные значения: дата ДД.ММ.ГГГГ
OnlyGoodsInRep
В отчете по остаткам будут выводится только карточки с типом "товар"
Возможные значения: no / yes
Значение по умолчанию: no
Пример: yes
DelayReport
После какого часа локального времени генерировать отчет (по умолчанию - 8).
Примечание: Ранее считался отчет сразу, как только менялись сутки, при учете, что не идет МТ.
Возможные значения: от 0 до 23
TopCount
влияет на количество Top и Lowest товаров, отображаемых в ежедневном отчете.
Возможные значения: число - кол-во товаров в отчете
Значение по умолчанию: 5
LastTask
Дата когда задания выполнялись последний раз. Задания выполняются 1 раз в сутки.
Примечание: Для повторного выполнения заданий необходимо удалить эту запись... или нажать на кнопку "Рестарт Заданий" (OptControl).
Возможные значения: дата ДД.ММ.ГГГГ
UseXMLAudit
вывод аудита в XML, не забивая системный журнал
Возможные значения: no / yes
Значение по умолчанию: yes
DeleteOldAC
количество дней, старше которых будут удаляться акты переоценки.
Возможные значения: no / кол-во дней
Значение по умолчанию: no
Пример: 180
DeleteOldOR
Если параметр не равен no, то будут удаляться заказы старше этого количества дней.
Возможные значения: no / XXX - дней
Значение по умолчанию: no
DeleteOldORBlob
Все привязанные данные к заказам (в первую очередь это нацелено на информацию по генерации заказов) будут удаляться, если документ старше количества дней в этом параметре.
Возможные значения: no / кол-во дней
Значение по умолчанию: no
Пример: 180
ContrAddGoods
Спецификация не чистится, т.е. будет пытаться добавить товары.
Примечание: Действует при запуске Optimizer-4 с параметром "k" - обновлялка контрактов. Связанные параметры: ContrByBarcode
Возможные значения: no / yes
Значение по умолчанию: no
ContrByBarcode
Входным будет не артикул, а ШК. Весовой, соответственно, не разбирается, должен быть, как в Супермаге.
Примечание: Действует при запуске Optimizer-4 с параметром "k" - обновлялка контрактов.
Связанные параметры: ContrAddGoods
Возможные значения: no / yes
Значение по умолчанию: no
CopyCOLabels
При выставлении параметра в yes оптимизатор проверяет цепочку контрактов и, в случае, если у контракта на основании которого создан проверяемый, выставлены метки, а у "дочернего" нет меток вообще, то в "дочерний" копируются метки "родителя".
Возможные значения: yes / no
Значение по умолчанию: no
KillIdle
Если параметр не равен no, то сессии простаивающие больше этого количества секунд будут отключаться, если от них не заблокирован ни один документ. На Sys и Supermag это не распространяется. Очень помогает сохранять лицензионные подключения.
Возможные значения: no / XXX в секундах
Значение по умолчанию: 3600
KillLongUsers
прибивать сессии, пребывающие активными (выполняющие запрос) более LongOp*2 времени. IgnoreLongUsers так же учитываются. Т.е. алгоритм прост, в первый проход приходит уведомление о проблеме пользователя, во второй проход, если пользователь не успокоился и LongOp*2 уже отработал - сессия прибивается. Замучили на той версии, где фильтр по кассовым чекам+дисконту выполняется более суток... Прибивается именно длинная сессия. Т.е. если пользователь запустил что-то зверское, а сам параллельно в чем-то ковыряется, то прибьется зверское. Прошу обратить внимание тех, кто мучает административный модуль не из под supermag.
Примечание: Связанные параметры: LongOp, IgnoreLongUsers
Возможные значения: yes / no
Значение по умолчанию: yes
IgnoreLongUser
для игнорирования юзеров, которые однозначно генерят LongOps. По умолчанию игнорируются SUPERMAG и SYS
Значение по умолчанию: 'SYS','SUPERMAG'
LongOp
Если пользователь превышает запросом это значение, администратор уведомляется об ошибке с указанием пользователя и компьютера. исключаются SYS и SUPERMAG
Примечание: Работает только на Oracle 10 и старше
Возможные значения: время в сек.
Значение по умолчанию: 600
ORAIgnore
Список игнорируемых ORA-ошибок. Перечисляются в формате ":номер:".
Значение по умолчанию: :06512:00054:08115:20032:
CleanDir
очистка директорий adump/bdump/udump в MaintenanceTime.
Возможные значения: yes / no
Значение по умолчанию: yes
Postman
Выставлять ли параметры почтового модуля СМ+ в 10 минут отправки приема, 100 объектов в пакете и 1 поток приема.
Возможные значения: yes / no
Значение по умолчанию: yes
ForceCompile
при попытке компиляции процедур отключать SUPERMAG. Из-за этого раньше выкидывались пользователи.
Возможные значения: yes / no
Значение по умолчанию: no
DisableOldStats
Отключение агрессивного сбора статистики. Установка в yes сильно поможет тем, у кого долго идет валидация по SMSPEC, SMCHECKITEMS и прочим большим таблицам. Но MaintenanceTime в этом случае лучше раздвинуть. И после полугода использования лучше все же выключить этот параметр.
Примечание: для моих клиентов по умолчанию - no
Возможные значения: yes / no
Значение по умолчанию: yes
CheckDBParams
Проверять - изменять параметры БД. yes - проверяет и изменяет no - не проверяет и не изменяет
Примечание: Считайте параметр скрытым, не поддерживаемым и недокументированным
Возможные значения: yes / no
Значение по умолчанию: yes
ValidateStructure
Вести ли проверку структуры таблиц и индексов. По умолчанию (при первом проходе при отсутствии параметра) равна "yes", если не включен архивлог. Дальнейшие переключения архивлога параметр не меняют.
Возможные значения: yes / no
Значение по умолчанию: yes
BoredJobs
Оставлять ли дублирующие задания по оптимизации от С+
Возможные значения: yes / no
Значение по умолчанию: no
ReallocMem
Производить перераспределение памяти
Возможные значения: yes / no
Значение по умолчанию: yes
BrokenCBO
Достаточно сильный удар по оценочным механизмам Oracle. Если у вас все тупит, все безнадежно, попробуйте его включить. Кое-что просто залетает, кое-что будет безнадежно тупить. Слишком много вариантов пока, чтобы я смог уложить это в автомат. Попробуйте - все устроит - оставите... Работу в IamNoob и прочих отключениях не гарантирую. по умолчанию теперь в yes для достижения wow-эффекта оптимизации, но для правильной работы БД его лучше поменять в no. Так же в no рекомендуется поменять в случае замедления заполнения документов ценами последних приходов или основаниями. Существующие параметры не поменяются.
Возможные значения: yes / no
Значение по умолчанию: yes
UseGraphs
Хранить ли графики загрузки на сервере (по моему никто не пользуется, а мне нагрузка на винт и в целом нагрузка)
Возможные значения: yes / no
Значение по умолчанию: no
WebStatusCode
При ненулевом значении этого параметра (КОД) можно посмотреть по ссылке вида https://olegon.ru/optimizer/index.ph...ИЕНТА&code=КОД текущее состояние БД. При каждом проходе оптимизатор будет запоминать эти параметры в своей БД и при запросе по ссылке - выдавать их значения. При нуле данные на сервер оптимизатора не передаются вообще. Принимаются предложения и пожелания по виду и наполнению этой странички. Обращаю внимание, что имя базы не вписывается и нет никакого обрамления, поскольку данная страничка может быть кусочком (тег <iframe>) одной большой странички со своим дизайном и несколькими БД. Выкладывание всяческих шаблонов таких страничек только приветствуется.
Возможные значения: 0 / код
Значение по умолчанию: 0
Пример: 123456789
Параметры для зарегистрированных версий

AutoImport
Импорт документов и карточек (по согласованию с OlegON)
Примечание: Форум автоматизации торговли
Служебные параметры

SecurityMode
зарезервирован для внутренних нужд
Возможные значения: 0 / 1
Значение по умолчанию: 1
BackuperDir
Функционал в разработке...
Возможные значения: no / ?????
Значение по умолчанию: no
Задачи

Все задания содержатся в таблице sys.olegon_tasks. При инициализации никаких заданий не создается.
15.05.2013 08:32
OlegON
 
Поправил бесплатный вариант регистрации на квартал. Достаточно оставить пять профильных ссылок.
06.08.2013 07:53
OlegON
 
Обратите внимание, что если вы выводите оптимизатор с нескольких БД через один шлюз, то это считается одним IP, поэтому если вы запускаете все оптимизаторы разом, то часть из них отвалится в силу защиты от DDoS (количество подключений в единицу времени ограничено). Постарайтесь, чтобы все оптимизаторы запускались с интервалом в минуту между собой хотя бы, если зарегистрированные или последовательно, если незарегистрированные. Первое делается просто, запускайте, например, на одной БД - в 00:00 с интервалом в полчаса, на другой БД в 00:02 с интервалом в полчаса и т.д. В противном случае первые несколько пройдут, остальные свалятся, пока частота попыток не войдет в русло. Т.е. если долбиться сразу десятком, запускаемыми с одного IP и одновременно, с одной периодичностью, есть шанс, что часть вообще никогда не подключится.
За вчера свалились 108 подключений...
06.08.2013 07:59
OlegON
 
% Ушел с использования at на Linux в сторону nohup
07.08.2013 05:09
OlegON
 
! Еще раз привлекаю внимание к сообщению выше. За сегодня 324 пакета в отлупе (просто журнал включил). Многие, оказывается, даже не подозревают, что с одного IP выходят. Откройте с сервера Хранилище, там IP пишется.
01.09.2013 21:43
OlegON
 
% Поправил косячок с ошибкой расчета статистики по IOT на Oracle 11
Часовой пояс GMT +3, время: 02:00.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.