WSGserver ========== Утилита для организации передачи данных по запросам и непрерывно из дисковой петли WSG по протоколам XferTap (с версии v2.3) и/или LISS (с версии v2.7) через IP-соединение. ------------------------------------------------------------------------------------ WSGserver v3.5 ================ 26.02.2013 14:49 122880 wsgserver.exe 1. Исправлена ошибка использования LCODE в liss-сервере (данные не передавались клиенту) 2. Изменен формат log-сообщений (добавлено поле LC): ... STA:CH:LC ... WSGserver v3.4 ================ 12.07.2012 12:24 110592 wsgserver.exe 1. Оптимизирован запрос получения калибровочных коэффициентов из БД, при передаче конфигурации он отключен (передаются calib/calper =-1) 2. Изменен порядок обновления последнего времени в БД (перенесен из обработки ЛЮБОГО запроса в запрос конфигурации) 3. Введено ограничение на максимальный интервал времени для 1 запроса по xfer-протоколу - 30 дней, иначе возвращается ошибка 4. Изменены/добавлены отладочные сообщения (режим "debug" -> в секции [LOG] ключ LEVEL равен DEBUG (вывод отладочной информации)) 5. Отключена проверка наличия индексов в таблице FILELIST (для дальнейшей оптимзации SQL-запросов) - см. v2.5 от 03/04/08 16:07 WSGserver v3.3 ================ 04.06.2012 18:36 110592 wsgserver.exe 1. Изменен тип поля FOFF в таблице FILELIST (с LONG(32bit) на BIGINT(64bit)) для "адресации" файлов > 2Гб 2. Изменены все функции чтения данных для учета п.1 WSGserver v3.2 ================ 01/10/2010 11:34 122,880 wsgserver.exe 1. Уменьшено количество запросов к базе данных (при передаче данных). WSGserver v3.1 ================ 28/09/2010 17:05 122,880 wsgserver.exe 1. Исправлена ошибка при непрерывной передаче данных. Теперь передача возобновляется с момента разрыва соединения 2. Путь к WSG.INI считывается из переменной окружения %WSG% (если есть) 3. Исправлена ошибка с записью в файл протокола 4. Исправлена ошибка при передаче конфигурации (ранее не передавалось время) WSGserver v3.0 ================ 16/07/2010 15:45 147,456 wsgserver.exe 1. Исправлена ошибка с передачей данных при разрыве соединения. WSGserver v2.9 ================ 07/07/10 16:47 147,456 wsgserver.exe 1. В секции [LISS*] добавлен ключ LCODE (если * - все существующие LCODE в базе данных) 2. Исправлена ошибка с переполнением памяти при отсутствии данных (LISS-подключение) WSGserver v2.8 ================ 02/06/10 15:30 126,976 wsgserver.exe 1. Исправлена ошибка с многопоточностью (блокировались все потоки пока не выполнится последний пришедший запрос) 2. В файл протокола (log-файл) пишется версия программы 3. В секцию [LOG] добавлен ключ LEVEL, принимающий значения ERROR (по умолчению) и DEBUG (вывод отладочной информации) 4. Добавлена многопортовость (несколько подключений с разными настройками). В секцию [LISS] добавлены ключи N# (количество портов) и BUF_SIZE (отступ от текущего времени в секундах, если не указан 600) 5. Добавлены секции [LISS#] ([LISS0], [LISS1] и т.д.) описавыющие существующие порты. Секция состоит из ключей: STATIONS - список станций (* - все станции) PORT - номер порта (по умолчанию 4000) BUF_SIZE - отступ от текущего времени в секундах для данного порта (по умолчанию из [LISS]) 6. Если в 2-х и более секциях [LISS] указан одинаковый порт, то параметры считываются из 1-ой встретившейся секции, информация из ВСЕХ остальных игнорируется. Проводится запись log-файл 7. Если не было разрыва соединения, то при перерывах в поступлении данных на сервере (liss) передача будет продолжена с момента остановки WSGserver v2.7.1 ================ 20/04/10 09:49 126,976 wsgserver.exe 1. Исправлена последовательность загрузки параметров настройки (приведено к стандарту): - анализ командной строки (параметры PORT=, ODBC=, USER=, PASSWORD=, DATA=) - чтение данных с локального файла настроек (wsgserver.ini) - производится поиск файла wsg.ini в системном каталоге Windows (или /etc для *nix систем), из него берется ODBC=, USER=, PASSWORD= из секции [DATABASE], каталог данных DIR= из секции [DATA] - если нет или заданы не все параметры, то устанавливаются значения по умолчанию PORT=14002(xfer)|4001(liss), ODBC=USER=PASSWORD=wsg, DATA=d:\Data (/home/data для *nix систем) 2. Исправлена ошибка учета ключа USE_TEND при старте программы (проверка и создание индексов с этим полем в таблице FILELIST). WSGserver v2.7 ================ 13/05/08 12:27 106,496 wsgserver.exe 1. Добавлена возможность неперерывной передачи данных по LISS-протоколу (miniSEED). Передача начинается сразу после подключения к указанному порту. Данные берутся со сдвигом на 2 минуты (размер буфера) назад от реального времени. При отсутсвии данных 1 раз в 15 сек передается пустой блок для поддержания связи. 2. В секцию [SYSTEM] для ключа SRV_TYPE добавлено значение LISS, параметры подключения задаются в соответсвующей секции. Реализовано многопотоковое подключение к одному порту, пока может быть только 1 порт. 3. Добавлена секция [LISS], в которой существуют ключи PORT (по-умолчанию 4001) и STATIONS, аналогичные таким же ключам в секции [SYSTEM]. Если в секции [LISS] значения этих ключей не обнаружены, то они берутся из секции [SYSTEM] WSGserver v2.6 ================ 08/04/08 16:22 94,208 wsgserver.exe 1. В секцию [DATABASE] добавлен ключ USE_TEND, принимающий значения 0,1 (использовать/нет поле TEND в таблице FILELIST). 2. Если ключ USE_TEND равен 1 и в таблице FILELIST имеется поле TEND, то при выполнении SQL-запросов выборки данных используется поле TEND, иначе - TBEGIN+TQTY. 3. Исправлена ошибка переполнения стека. WSGserver v2.5 ================ 03/04/08 16:07 94,208 wsgserver.exe 1. Добавлена проверка на наличие индексов на таблицу FILELIST, при отсутствии индекса он создается. IX_FILELIST("NINDEX", "STA", "CH", "TBEGIN", "CPATH") IX_FILELIST_WSG("NINDEX", "STA", "CH", "TBEGIN", "TQTY") IX_FILELIST_WSG_SHORT("STA", "CH", "TBEGIN") IX_TEND("TEND") IX_TBEGIN_TEND("STA", "CH", "TBEGIN", "TEND") IX_TBEGINTEND("STA", "CH", "TBEGIN", "TEND", "LCODE") WSGserver v2.4 ================ 31/03/08 15:27 86,016 wsgserver.exe 1. Исправлена ошибка загрузки списка ВСЕХ станций(При работе MS SQL Server-ом). Теперь при загрузке проверяются ВСЕ станции и при отсутсвии данных список остается пустым ВЕСЬ! 2. Исправлена ошибка при обработке запроса с правой границей большей, чем имеющиеся данные. 3. При отстутвии каталога указанного в [LOG] dir он создается. WSGserver (XferTap) v2.3.3 ========================== 05/10/07 11:55 86,016 wsgserver.exe 1. Исправлена ошибка при записи в log-файл 2. В секцию [SYSTEM] добавлен ключ SRV_TYPE (на данный момент может принимать только значение XFER) 3. Добавлена секция [XFER], в которой существуют ключи PORT и STATIONS аналогичные таким же ключам в секции [SYSTEM], если в секции [XFER] значения этих ключей не обнаружены, то они берутся из секции [SYSTEM] WSGserver (XferTap) v2.3.2 ========================== 02/10/07 13:34 81,920 wsgserver.exe 1. Исправлена ошибка при загрузке всех станций для ORACLE (в секции [SYSTEM] ключ STATIONS=*) WSGserver (XferTap) v2.3.1 ========================== 14/09/07 18:49 81,920 wsgserver.exe 1. Исправлена ошибка загрузки списка ВСЕХ станций при отсутсвии данных (загружались первые 64 с ПУСТЫМ списком каналов). Теперь при загрузке проверяются ВСЕ станции и при отсутсвии данных список остается пустым ВЕСЬ! 2. Добавлено в лог-файл: - указание используемых настроек (wsg.ini, wsgserver.ini, command_line) - список станций/каналов при получении запроса WSGserver (XferTap) v2.3 ========================== 12/09/07 14:53 77,824 wsgserver.exe 1. Добавлена возможность НЕПРЕРЫВНОЙ передачи данных (протокол: xfer). Формат передаваемыхъ данных - GENERIC_XFER. WSGserver (XferTap) v2.2.2 ========================== 04/08/07 22:35 77,824 wsgserver.exe 1.Добавлен режим загрузки списка ВСЕХ станций из БД, для которых есть данные в таблице FILELIST за время, большее чем текущее время минус TIME_SHIFT. Режим задается в секции [SYSTEM] как параметр STATIONS=* 2.Информация о загружаемых станциях/каналах при старте записывается в log-файл. 3.При загрузке введено ограничение - загружаются первые 64 станции (ограничение NRTS) WSGserver (XferTap) v2.2.1 ========================== 06/03/07 19:27 77,824 wsgserver.exe 1.Исправлена ошибка загрузки списка станций/каналов при TIME_SHIFT != 0 (проверка было по AND, надо было OR) WSGserver (XferTap) v2.2 ======================== 09/02/07 17:15 77,824 wsgserver.exe Исходный текст подгтовлен для компиляции в Windows и *nix 1. Добавлен ограничение на максимальную "давность" данных для выбраных станций/каналов (параметр TIME_SHIFT в секции [SYSTEM], задает смещение "назад" от текущего времени в секундах). Если в таблице FILELIST информация "более старая", чем текущее время минус TIME_SHIFT, она НЕ ВНОСИТСЯ в список каналов и НЕ ПЕРЕДАЕТСЯ клиенту. Может принимать также значения NONE или 0 (передавать ВСЕ данные), это значение по-умолчанию. 2. Номер порта подключения можно указывать в *.INI файле (параметр PORT= секции [SYSTEM]). 3. Изменена структура *.INI файла - секция [WSGSERVER] заменена на [SYSTEM], информация о каталоге и файле протокола перенесена в секцию [LOG]: [LOG] DIR=u:\log\wsgserver [SYSTEM] STATIONS=KRS,ABN,KZL,ORR,IRK,TIXI,OBN,KIV,ARU,TLY,GNI,YSS,AAK,PET PORT=14002 ;TIME_SHIFT=NONE|0|SECONDS FROM CURRENT TIME (2592000=3600*24*30 sec=1 month) TIME_SHIFT=6476000 [DATABASE] ODBC=wsg-krs USER=wsg PASSWORD=wsg [DATA] DIR=u:\Data При запуске программы: 1) производится поиск файла wsg.ini в системном каталоге Windows (или /etc для *nix систем), из него берется ODBC=, USER=, PASSWORD= из секции [DATABASE], каталог данных DIR= из секции [DATA] 2) если файл не найден, то произодится поиск этих параметров в файле .\wsgserver.ini (в каталоге запуска), там же считываются параметры DIR= для секции [LOG], PORT=, TIME_SHIFT= в секции [SYSTEM] 3) если нет, то проводится анализ командной строки PORT=, ODBC=, USER=, PASSWORD=, DATA= 3) если командной строки нет или заданы не все параметры, то устанавливаются значения по умолчанию PORT=14002, ODBC=USER=PASSWORD=wsg, DATA=d:\Data (/home/data для *nix систем) WSGserver (XferTap) v2.1 ======================== 09/22/06 14:59 77,824 wsgserver.exe 1. Добавлен анализ наличия данных для выбранных станций/каналов. Если в таблице FILELIST нет записей для загружаемого канала, информация о нем НЕ ВНОСИТСЯ в список каналов и НЕ ПЕРЕДАЕТСЯ клиенту. WSGserver (XferTap) v2.0 ======================== 08/28/06 14:59 90,112 wsgserver.exe 1. Добавлен анализ командной строки (параметры PORT=, ODBC=, USER=, PASSWORD=, DATA=). 2. Исправлены ошибки чтения информации из файлов настройки WSGserver (XferTap) v1.2b ========================= 11/12/04 12:05 90,112 wsgserver.exe Linux и Windows В лог выводится больше информации. Теперь можно указать порт, который будет "слушать" программа Запуск: wsgserver.exe [PORT] PORT - номер порта (по умолчанию 14002) WSGserver (XferTap) v1.2a ========================= 10/22/04 16:33 90,112 wsgserver.exe Linux и Windows: Исправлена ошибка, когда в существующем файле wsg.ini не было секции DATABASE или небыло в ней ключей ODBC, USER, PASSWOR, система падала. WSGserver (XferTap) v1.2a ======================== 10/15/04 10:34 90,112 wsgserver.exe Linux и Windows: Исправлена ошибка при работе с БД, в которой названия таблиц прописаны большими буквами например (FILELIST). Поиск производится как по абсолютному пути (d:\data\sta), так и по относительному (.\sta). При поиске по относительномуб добавляется путь к директории с даннымиб который берется из ini файла секции [DATA] DIR=d:\data Полученный путь d:\data\sta Исправлениея в версии для Linux: Если путь имеет в начале запись вида d:\data\sta, c:\data\sta, \\loop\data\sta и т.п. , то путь приводится к виду /home/data/sta (d:\data\sta, c:\data\sta, \\loop\data\sta заменяются на /home/data/ ) Путь /home/data/ , из ini файла [DATA] DIR=home/data WSGserver (XferTap) v1.2 ======================== 10/14/04 14:59 90,112 wsgserver.exe Исправлены ошибки поиска файла настройки, добавлена дополнительная информация для записи в файл протокола (*.log в каталоге, определяемом параметром LOG= секции [WSGSERVER] файла настройки wsgserver.ini) При запуске программы: 1) производится поиск файла wsg.ini в системном каталоге Windows, из него берется ODBC=, USER=, PASSWORD= из секции [DATABASE], каталог данных DIR= из секции [DATA] 2) если файл не найден, то произодится поиск в файле .\wsgserver.ini (в каталоге запуска) 3) если нет, то берутся значения по умолчанию ODBC=USER=PASSWORD=wsg, DATA=d:\Data WSGserver (XferTap) v1.1 ======================== 04/13/04 11:57 86,016 wsgserver.exe Исходный текст подгтовлен для компиляции в Windows и Linux, добавлен поиск параметров подключения к БД в файлах настройки wsg.ini (системный каталог Windows) или при его отсутствии - в секциях [DATA] и [DATABASE] в файле wsgserver.ini Пример файла настройки wsgserver.ini ------------------------------------ [WSGSERVER] STATIONS=OBN,KIV,ARU,TLY,GNI,YSS задает список станций, информацию о данных которых выдает программа на запрос клиента LOG=c:\log задает путь каталога файла протокола, имя создается автоматически каждые сутки в формате ДДММГГГГ.log [DATABASE] ODBC=wsg определяет имя источника данных ODBC для подключения к БД WSG USER=wsg задает имя пользователя для подключения к БД WSG PASSWORD=wsg задает пароль пользователя для подключения к БД WSG [DATA] DIR=e:\data определяет путь каталога файлов данных системы WSG WSGserver (XferTap) v1.0а ========================= 12/23/02 01:31p 77,824 wsgserver.exe Исправлена ошибка обработки списка имен станций в конфигурационном файле wsgserver.ini (параметра STATIONS ). При перечислении списка станций, запросы к которым принимаются сервером, требовалось вводить запятую после последней станции. Теперь параметры последней станции загружаются, даже если после ее имени нет знаков '' ''(пробел), '';'', '','' Программа перелинкована с библиотекой сокетов wsock32.dll. Это позволяет работать со старой версией Windows 95. WSGserver (XferTap) v1.0 ======================== 11/13/02 05:40p 77,824 wsgserver.exe Утилита позволяет организовать обработку запросов к базе данных WSG по протоколу XferTap через IP соединение. Подключение организовыано через стандартный для протокола XferTap порт 14002. Реализована многопотоковая обработка запросов. Программа имеет конфигурационный файл wsgserver.ini, который должен находиться в том же каталоге, откуда стартует программа. В нем имеется одна секция [WSGSERVER], в которой задается каталог протокола работы и список станций, запросы к которым принимаются сервером. Пример приведен ниже: --------------------- [WSGSERVER] STATIONS=OBN,KIV,ARU,TLY,GNI,YSS LOG=c:\log