Jump to content

Recommended Posts

  • Replies 197
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Posted

Проблема с обновлением списка пользователей заключается в следующем:

При быстром обновлении обновляются только данные, которые изменились, но деньги и счётчики трафика - они постоянно меняются, а конфигуратор показывает старые, до тех пор, пока не выполнить полное обновление. Или пока кому-то не изменить эти значения, тогда они приедут новыми. Не очень удобно выходит. Пока вытаскиваю на панельку ещё одну кнопку для полного рефреша.

 

Сам же и отвечу..

Порылся в исходниках, убрал проверки времени для денег и предоплаты. А счётчики оставил как есть они уж сильно тормозят процесс, для них и будет юзаться доп. кнопка рефреш.

Думаю целесообразно подкорректировать, и не обновлять юзеров, у которых деньги и предоплаченный не могут меняться в силу обстоятельств и выиграть ещё времени.

Posted

Что за "быстрое обновление" и "полное обновление"?

Posted

В новом stargazere ускорена работа конфигуратора, а точнее ускорен процесс обновления, за счёт того, что контролируется время последнего изменения отдельных свойств юзера. В процессе обмена сервера и widows-конфигуратора, последний сообщает серверу дату последнего обновления, а сервер в свою очередь передаёт только те данные, которые изменились с момента последнего обновления. За счёт этого ускоряется процесс - его я обозвал "быстрое обновление". Но проблема в том, что те данные которые изменились не конфигуратором, а самим сервером, например снятие денег за трафик или изменение счётчиков трафика, не попадают под эту струю и не передаются. И посмотреть сколько у кого денег или предоплаченного и т.п. не выходит, т.к. данные старые. Если очистить таблицу в конфигураторе, то он обновит все данные - это я и назвал "полным обновлением" и пришлось кнопочку вывести в перёд, для удобного пользования. Сервер я тоже поковырял, сделал, чтобы деньги и предоплаченный трафик для активных (IsInetable())пользователей обновлялся не зависимо от даты последнего изменения, теперь всё и быстро и цифры правильные.

 

p.s. я с новым сервером несколько часов парился пытаясь понять почему cap_nf не считает трафик, хотя netflow на порту есть, перерыл кучу всего, а проблемы на самом деле не оказалось :mellow: просто так был задуман процесс обновления.

в parser.cpp (строка в районе 401)

if (u->property.cash.ModificationTime() > lastUserUpdateTime)

поменял на

if (u->IsInetable())

 

и то же самое для freeMb

Posted

Конфигуратор посылает серверу дату последнего обращения, а не обновления. А сервер проверяет, изменились ли с этого момента какие-либо параметры.

Честно говоря, не смог вчера воспроизвести у себя этой проблемы. Можно узнать точный рецепт?

(хотя уже есть подозрение почему такое может случаться)

 

А при чем тут IsInetable?

Posted

Воспроизводилась ситуация на на сервере 2.406, конфигуратор 1.91.9. debian5-amd64. Воспроизводилась именно на оригинальных исходниках без каких либо изменений. Подключен модуль conf_sg - 1шт(просто я где-то писал, что заюзал несколько, но перед тем как на форум об этом писать затестил на стандартной конфигурации). Сбор трафика осуществлял cap_nf. Конфигуратор один на админском компе.

Деньги,предоплаченный и счётчики не обновляются windows-конфигураторе при "быстром обновлении", точнее обновляются только те, которые изменялись конфигуратором уже после того, как в конфигураторе было получен полный список пользователей.

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

По поводу конфигуратора, в запросе на обновление он посылает результат выполнения GetLastUserUpdateTime(); Исходя из названия я и предположил что это именно дата последнего обновления, а не обращения, а в глубину не лазил.

 

p.s. Раз уж пришлось лезть в исходники конфигуратора, немного оптимизировал процесс приёма данных. При 1727 юзерах, удалось сократить время "полного" обновления где-то на 25%(с 12 секунд до 9). Вроде как не много, но если кому надо вот код (у себя тестил, багов вроде нет, но я полностью ручаться не могу) NetUnit.cpp:

 

int NETTRANSACT::RxDataAnswer()
{
int n = 0;
int ret;
char bufferS[1024];
char buffer[8];

answerList.clear();

EnDecryptInit(password, strlen(password));

while (1)
   {
   ret = recv(outerSocket, bufferS, 1024, 0);
   if (ret <= 0)
       {
       closesocket(outerSocket);
       strcpy(errorMsg, RECV_DATA_ANSWER_ERROR);
       return st_recv_fail;
       }
   int k=0;
   while (k<=(ret-8))
       {
       Decrypt(buffer, &(bufferS[k]));
       SetProgressBar(0);
       for (int j = 0; j < 8; j++)
            {
            if (buffer[j] == 0)
                {
                for (int l=j;l<8;l++)
                     buffer[l]=0;
                answerList.push_back(buffer);
                // Конец посылки
                if (RxCallBack)
                    RxCallBack(&answerList);
                    SetProgressBar(1);
                    return st_ok;
                }
            }
       answerList.push_back(buffer);
       k+=8;
       }
   }
}
//---------------------------------------------------------------------------

Posted

Да, есть проблемка. Обновился до 2.406, конфигуратор 1.91.9. При обычном обновлении не меняется сумма средств на счету у пользователя, колличество принятых/отпраленных Мб. Обновляется только если заного открывать конфигуратор, что ОЧЕНЬ не удобно!

Posted

Какое-то странное поведение стг... После ребута сервера, не захотел запускаться, в логах пусто. Потом начал ругаться на модуль /usr/lib/stg/mod_store_files.so

 

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

Posted

Какое-то странное поведение стг... После ребута сервера, не захотел запускаться, в логах пусто. Потом начал ругаться на модуль /usr/lib/stg/mod_store_files.so

 

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

А поточнее - как ругался?

Posted

Какое-то странное поведение стг... После ребута сервера, не захотел запускаться, в логах пусто. Потом начал ругаться на модуль /usr/lib/stg/mod_store_files.so

 

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

А поточнее - как ругался?

 

К сожалению не сохранился лог (( Поэтому не могу сказать точно

Posted

Я так понял mysql4.1 не поддерживается?

Posted

Я так понял mysql4.1 не поддерживается?

А черт его знает...

Posted

Подскажите: когда обновляю информацию о клиентах STARGAZER выдает сообщение " Сервер сообщает об ошибке. Recv header error! " . Что это означает ?

Posted

Подскажите: когда обновляю информацию о клиентах STARGAZER выдает сообщение " Сервер сообщает об ошибке. Recv header error! " . Что это означает ?

 

Было такой единожды, рестартнул старгайзер все прошло... так и не понял че к чему..., также возможно версия админки не подходит.

Posted

в последней сборке STG как то криво работает собранный sgconf, например

skyprox:/etc/stargazer# sgconf get -s 127.0.0.1 -p 4444 -a sgconf -w password -u marina -t
tariff=
Ok
Ошибка сегментирования

хотя в приципе свои функции выполняет

а вот как работает от предыдущей сборки

skyprox:/etc/stargazer# /sgconf get -s 127.0.0.1 -p 4444 -a sgconf -w password -u marina -t
tariff=newU512
Ok

 

крутится на Debian 5.0.2

Posted

Подскажите: когда обновляю информацию о клиентах STARGAZER выдает сообщение " Сервер сообщает об ошибке. Recv header error! " . Что это означает ?

скорее всего используется мегадревный конфигуратор

 

 

в последней сборке STG как то криво работает собранный sgconf, например

skyprox:/etc/stargazer# sgconf get -s 127.0.0.1 -p 4444 -a sgconf -w password -u marina -t
tariff=
Ok
Ошибка сегментирования

uname -a
Linux stat 2.6.26-2-amd64 #1 SMP Fri Mar 27 04:02:59 UTC 2009 x86_64 GNU/Linux
./sgconf get -s 127.0.0.1 -p 5585 -a админ -w пароль -u юзернэйм -t
tariff=Unlim
Ok

попробуй пересобери его...

Posted

в последней сборке STG как то криво работает собранный sgconf, например

skyprox:/etc/stargazer# sgconf get -s 127.0.0.1 -p 4444 -a sgconf -w password -u marina -t
tariff=
Ok
Ошибка сегментирования

хотя в приципе свои функции выполняет

а вот как работает от предыдущей сборки

skyprox:/etc/stargazer# /sgconf get -s 127.0.0.1 -p 4444 -a sgconf -w password -u marina -t
tariff=newU512
Ok

 

крутится на Debian 5.0.2

 

Посмотрю

Posted

У кого-нибуть есть проблемы с коннектом авторизатора? Похоже у меня так они и остались, т.е. при коннекте ничего не происходит, если сменить логин или пасс, пишет Неверный логин или пасс. Помогает только рестрат стг.

Posted

Версия сервера какая? Точно последняя?

Я такое видел на старой версии у себя. Скачал, пересобрал, установил последнюю - пропало сие счастье. :D

 

И ещё видел я это у двух юзеров, которые брали друг у друга ip и пароли, чтобы сэкономить на Инете: в один прекрасный день СТГ просто их вот так вот "послал". :D

Хез, может защита от флуда какая сработала или неверно прописалась инфа в конфигурационных файлах, я не разбирался, но помогло лишь удаление и создание аккаунтов.

Posted

Версия сервера какая? Точно последняя?

 

 

точно, не последняя! как я ставил??!!! :)

Posted

Приветствую Всех!

 

Собрал сегодня Stg-2.406 + PostgreSQL при запуске СТГ в логе

Storage plugin: 'Error loading plugin '/usr/lib/stg/mod_store_postgres.so': 
'/usr/lib/stg/mod_store_postgres.so: cannot open shared object file: No such file or directory''

Замечена ошибка в имени модуля mod_store_postgres.so, у меня в /usr/lib/stg/mod_store_postgresql.so.

 

Не получается дамп 00-base-00.postgresql.sql загнать, делаю так

# pg_restore 00-base-00.postgresql.sql -U stgadmin -W stargazer
pg_restore: [архиватор] входной файл не выглядит корректным архивом

 

При конвертировании из Mysql в PostgreSQL

 

postgresql_store_users.cpp > 02:36:46 > POSTGRESQL_STORE::AddUser(): 'ERROR:  ������� sp_add_user("unknown") �� ����������
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
'
         main.cpp > 02:36:46 > Error adding user: ERROR:  ������� sp_add_user("unknown") �� ����������
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.

Posted

Приветствую Всех!

 

Собрал сегодня Stg-2.406 + PostgreSQL при запуске СТГ в логе

Storage plugin: 'Error loading plugin '/usr/lib/stg/mod_store_postgres.so': 
'/usr/lib/stg/mod_store_postgres.so: cannot open shared object file: No such file or directory''

Замечена ошибка в имени модуля mod_store_postgres.so, у меня в /usr/lib/stg/mod_store_postgresql.so.

 

Спасибо, поправил. Перезалью.

 

Не получается дамп 00-base-00.postgresql.sql загнать, делаю так

# pg_restore 00-base-00.postgresql.sql -U stgadmin -W stargazer
pg_restore: [архиватор] входной файл не выглядит корректным архивом

 

# createlang -U user -W plpgsql dbname
# psql -U user -W dbname -f 00-base-00.postgresql.sql

 

При конвертировании из Mysql в PostgreSQL

 

postgresql_store_users.cpp > 02:36:46 > POSTGRESQL_STORE::AddUser(): 'ERROR:  ������� sp_add_user("unknown") �� ����������
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
'
         main.cpp > 02:36:46 > Error adding user: ERROR:  ������� sp_add_user("unknown") �� ����������
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.

 

А как же без базы ты это делаешь?

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...