Настройка BGInetAccess сервера
В конфигурации модуля присутствует параметр accounting.deviceTypeIds, определяющий коды типов устройств, которые являются Accounting-серверами. Поиск устройств начинается с корневого устройства Access-сервера, включительно. Т.к. одно и то же устройство может быть и Access и Accounting сервером. Таким образом, "под" одним устройством Access-сервера может располагаться несколько устройств Accounting-серверов.
Пример типовой настройки inet-access.xml, которая идет в дистрибутиве:
Код
                <application context="access">	<!-- Уникальное имя приложения -->	<param name="app.name" value="BGInetAccess"/>	<!-- Уникальный числовой id приложения -->	<param name="app.id" value=""/>	<!-- Параметры подключения к БД -->	<param name="db.driver" value="com.mysql.jdbc.Driver"/>	<param name="db.url" value="jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&characterEncoding=UTF-8&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&queryTimeoutKillsConnection=true&connectTimeout=1000"/>	<param name="db.user" value="bill"/>	<param name="db.pswd" value="bgbilling"/>	<param name="db.validationTimeout" value="10"/>		<!-- Параметры подключения к MQ -->	<param name="mq.url" value="failover:(tcp://localhost:61616)"/>	<param name="mq.user" value="bill"/>	<param name="mq.pswd" value="bgbilling"/>		<!-- id модуля -->	<param name="moduleId" value=""/>	<!-- id корневого устройства -->	<param name="rootDeviceId" value=""/>	<!-- Внутренняя переменная приложения, не изменять -->	<param name="commonIdentifierName" value="rootDeviceId"/>	<!-- Параметры сохранения логов данных -->	<!-- Директория, в которую сохранять radius логи -->	<param name="datalog.radius.dir" value="data/radius" />	<!-- Размер блока данных в файле лога, также размер буфера на лог файл -->	<param name="datalog.radius.chunk.size" value="262144" />	<!-- Сжимать radius логи: 0 - не сжимать, 1 - zlib -->	<param name="datalog.radius.compression.type" value="1" />	<!-- Директория, в которую сохранять flow логи -->	<param name="datalog.dhcp.dir" value="data/dhcp" />	<!-- Размер блока данных в файле лога, также размер буфера на лог файл -->	<param name="datalog.dhcp.chunk.size" value="131072" />	<!-- Сжимать flow логи: 0 - не сжимать, 1 - zlib -->	<param name="datalog.dhcp.compression.type" value="1" />			<!-- Создание Access -->	<bean name="access" class="ru.bitel.bgbilling.modules.inet.access.Access" />	<context name="radius">		<!-- Cоздание процессора RADIUS-пакетов -->		<bean name="radiusProcessor" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor"/>				<!-- Служебный ScheduledExecutorService, необходимый для dataLogger -->		<scheduledExecutorService name="hrlydtlggr" corePoolSize="1" />		<!-- Cоздание dataLogger, сохраняющего radius-пакеты на диск (только один экземпляр) -->		<bean name="radiusDataLogger" class="ru.bitel.bgbilling.modules.inet.radius.RadiusHourlyDataLogger">			<param name="scheduledExecutor">hrlydtlggr</param>		</bean>		<!-- Cоздание слушателя RADIUS-пакетов на порту с передачей ему процессора и dataLogger -->		<bean name="radiusListener" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusListener">			<constructor>				<!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->				<param name="host" value=""/>				<!-- Порт, на котором будет открыт сокет -->				<param name="port" value="1812"/>				<!-- Буфер приема на поток -->				<param name="recvBufferSize">512 * 1024</param>				<!-- Рекомендуемый SO_RCVBUF сокета -->				<param name="soRCVBUF"></param>				<!-- Количество потоков-обработчиков -->				<param name="threadCount">10</param>				<!-- Максимальное количество пакетов в очереди на обработку -->				<param name="maxQueueSize">200</param>				<!-- Передача процессора -->				<param name="processor">radiusProcessor</param>				<!-- Режим работы, RadiusListener.Mode.authentication -->				<param name="mode">RadiusListener.Mode.authentication</param>				<!-- Передача dataLogger -->				<param name="dataLogger">radiusDataLogger</param>			</constructor>		</bean>	</context>		<context name="dhcp">		<!-- Cоздание процессора dhcp-пакетов -->		<bean name="dhcpProcessor" class="ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor"/>			<scheduledExecutorService name="hrlydtlggr" corePoolSize="1" />		<!-- Cоздание dataLogger, сохраняющего DHCP-пакеты на диск  -->		<bean name="dhcpDataLogger" class="ru.bitel.bgbilling.modules.inet.dhcp.DhcpHourlyDataLogger">			<param name="scheduledExecutor">hrlydtlggr</param>		</bean>			<!-- Cоздание слушателя dhcp-пакетов на порту с передачей ему процессора и dataLogger -->		<bean name="dhcpListener" class="ru.bitel.bgbilling.kernel.network.dhcp.DhcpListener">			<constructor>				<!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->				<param name="host" value=""/>				<!-- Порт, на котором будет открыт сокет -->				<param name="port" value="10067"/>				<!-- Буфер приема на поток -->				<param name="recvBufferSize">512 * 1024</param>				<!-- Количество потоков-обработчиков -->				<param name="threadCount">10</param>				<!-- Максимальное количество пакетов в очереди на обработку -->				<param name="maxQueueSize">200</param>				<!-- Передача процессора -->				<param name="processor">dhcpProcessor</param>				<!-- Передача dataLogger -->				<param name="dataLogger">dhcpDataLogger</param>			</constructor>		</bean>	</context></application>