Страница 1 из 1

список юзеров на класике (прошу ногами не бить)

Добавлено: 14 апр 2005, 16:37
tsaregorodtsev vitaly
Добрый всем день.

Факи смотрел, поиск искал, ни ответа ни намека не нашел.
Прошу не пинать ногами.

Нужно получить список юзеров подключенных к FB.x серверу работающему под линуксом.

Помню раньше у класика получить список юзеров было невозможно, как ситация обстоит сейчас?

Хочется с минимальными вмешательствами в код существующего приложения получить это список, будь он неладен.

Может можно пошаманить над процессами FB на сервере и получить имена? Клиенты напианы под Win.

Спасибо.

Добавлено: 16 апр 2005, 12:43
Лысый
У себя на FB 1.5.2 сделал так:
1. Создал табличку InUse(username);
2. Вызываю events, клиенты ловят его и пишут себя в табличку;
3. В результате все живые клиенты должны откликнуться.
Само собой это вариант для приложения. Пользователи подключенные ч/з прочие средства видны не будут.

Добавлено: 18 апр 2005, 13:20
tsaregorodtsev vitaly
Спасибо, это и так ясно что можно опрашивать юзеров на предмет логина.

Никакого другого способа, например через API в FB Classic, нету чтобы из процессов в *NIX получить имена юзверей подключенных к FB серверу?

Добавлено: 28 апр 2005, 05:16
Tchamlay_Oleg
C консоли linux
------------
Для получения IP адресов клиентских машин подключенных к Firebird я делаю так:

netstat -Cpn|grep fb_inet_serve|sort -k 45,69

-------------
Для выявления "оторвавшихся" соединений, с запуском ps, пользуюсь скриптом такого содержания:
#!/bin/bash

st=`top -b -n 1 |grep fb_inet_serve|grep -v grep|awk '{print $1}'`
#st=`top -b -n 1 |grep fb_inet_server|awk '{print $1}'`
sn=`netstat -Cpn|grep fb_inet|grep ESTABLI|awk '{print $7}'|awk -F/ '{print $1}'`
sRes=

#echo $st
#echo $sn

for i in $st ; do
flag=0
for j in $sn ; do
if [ $i = $j ] ; then
flag=1
fi
done
if [ $flag = 0 ] ; then
echo $i - no found SOCKET !
sRes="$sRes -p $i"
# else
# echo $i - OK
fi
done

echo Result: $sRes

if [ ! "$sRes" = "" ] ; then
top -Ccd1 $sRes
fi

Добавлено: 28 апр 2005, 16:24
tsaregorodtsev vitaly
Список IP это не вызывает сложностей... Вопрос касался залогигеных клентов... Нужны ИМЕНА пользователей подключенный к IB. То что дает обычный суперсервер.

Добавлено: 28 апр 2005, 16:42
kdv
никак-с. в идеале нужна специальная поддержка в процессах классика, и некая тулза, которая будет опрашивать все эти вопросы на предмет:

user, ip, выполняемый запрос.

Это как минимум. Но увы, даже в 2.0 не получится.

Добавлено: 28 апр 2005, 17:12
tsaregorodtsev vitaly
жаль. тогда прийдется или резать или супер...
спасибо.

Добавлено: 29 апр 2005, 09:36
Лысый
mike2100 писал(а):хм, а если на клиенте выполняется длинный запрос ?
Есть такая проблема.. отчеты приходится в потоках делать