forum.bitel.ru
http://forum.bitel.ru/

Таблица log_session_{mid}_yyyyMM
http://forum.bitel.ru/viewtopic.php?f=5&t=6438
Страница 1 из 1

Автор:  Phricker [ 12 фев 2012, 17:09 ]
Заголовок сообщения:  Таблица log_session_{mid}_yyyyMM

Можно ли увеличить поле
Код:
session_id   char(32)   false      id сессии

???
Что будет если я его просто увеличу?
Код:
ALTER TABLE log_session_1_201202 MODIFY (session_id char(42));

Будет ли подобное увеличение в дальнейшем отражаться на следующих создаваемых таблицах (_1_201203б _1_201204 и т.д.)

Включили на циске передачу атрибута cisco-avpair: circuit-tag-id, и изменился атрибут Acct-Session-Id.
Теперь он представляет из себя следующее
Код:
Acct-Session-Id=ether 0/0/0:4096.151 0/0/0/0/0/0_01787DF3

Размер чуть больше, чем поля в базе.
Потому при ребуте радиуса - все сессии сбрасываются в биллинге (на циске остаются висеть) с ошибкой
Код:
radius 02-12/13:28:54 ERROR [rdsLstnr-p-8-t-36] connections - [ c.title; login; ] Update with incorrect Acct-Session-Id!

Автор:  snark [ 13 фев 2012, 11:11 ]
Заголовок сообщения:  Re: Таблица log_session_{mid}_yyyyMM

Скрипт предобработки же.

Автор:  Phricker [ 13 фев 2012, 11:16 ]
Заголовок сообщения:  Re: Таблица log_session_{mid}_yyyyMM

В аську отписал :D
Вроде бы в последнем билде диалапа решили проблему с закрытием соединений к мускулу.
Если да - то будет скрипт предобработки. Сейчас пока проверяю

Тему считать вопросом для общего развития :D

Автор:  Phricker [ 13 фев 2012, 20:40 ]
Заголовок сообщения:  Re: Таблица log_session_{mid}_yyyyMM

Собственно проблему решил вот так
Код:
import bitel.billing.server.radius.*;

//Нормализация Acct-Session-Id
acctSessionId = request.getStringAttribute(RadiusStandartAttributes.Acct_Session_Id);
lastSpace = acctSessionId.lastIndexOf(" ");
if(acctSessionId != null && lastSpace != 0){
   request.setStringAttribute(RadiusStandartAttributes.Acct_Session_Id, acctSessionId.substring( lastSpace + 1));
}

//Вынос MACа в Calling-Station-Id
prefix = "client-mac-address";
length = prefix.length();
attributes = request.getVendorAttributes( Vendors.CISCO, CiscoVendor.Cisco_AVPair );
if( attributes != null )
for( it = attributes.iterator(); it.hasNext(); )
   {
      ra = it.next();
      value = ra.getValue();

      if( value.startsWith( prefix ) )
         {
            request.setStringAttribute( RadiusStandartAttributes.Calling_Station_Id, value.substring( length + 1 ) );
         }
   }



Но для общего развития ответ на вопрос интересует :D
Мало ли

Автор:  stark [ 17 фев 2012, 19:43 ]
Заголовок сообщения:  Re: Таблица log_session_{mid}_yyyyMM

Phricker писал(а):
Можно ли увеличить поле
Код:
session_id   char(32)   false      id сессии


можно
Phricker писал(а):
Что будет если я его просто увеличу?

ничего страшного.

Phricker писал(а):
Код:
ALTER TABLE log_session_1_201202 MODIFY (session_id char(42));

Будет ли подобное увеличение в дальнейшем отражаться на следующих создаваемых таблицах (_1_201203б _1_201204 и т.д.)


нет :)

Автор:  skn [ 17 фев 2012, 20:06 ]
Заголовок сообщения:  Re: Таблица log_session_{mid}_yyyyMM

Phricker писал(а):
Код:
ALTER TABLE log_session_1_201202 MODIFY (session_id char(42));

Будет ли подобное увеличение в дальнейшем отражаться на следующих создаваемых таблицах (_1_201203б _1_201204 и т.д.)


если только вручную нагенерите таблиц на годы вперед
но можете напоротся на другие проблемы (например если поменяется формат таблиц)

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/