Имеется два сервера на Cent OS, Серв1 с адресом 10.33.1.50 и 192.168.33.2 и Серв2 192.168.33.1.
На обоих серваках установлен firebird работающий чз xinetd.
Когда клиент подключается по адресу 10.33.1.50 используя порт 3050, то устанавливается соединение с Серв1 (с БД лежащей на данном серве). Для этого лежит конфиг в xinetd:
service gds_db
disable = no
flags = REUSE
socket_type = stream
wait= no
user= firebird
server= /opt/RedDatabase/bin/rdb_inet_server
port = 3050
type = UNLISTED
cps = 1000 0
На Серве2 имеется вторая БД, но доступ к ней идет чз Серв1 т.е. чз 192 сеть.
Для чего на Серве1 сделал redirect чз xinetd, что значит если я ломлюсь на 10.33.1.50 но порт использую 3051 то меня перебрасывает на Серв2 192.168.33.1 порт 3050, а там уже xinetd запускает firebird.
Вот конфиг редиректа лежащий на Серве1:
service rbdforward
type= UNLISTED
flags= INTERCEPT
port= 3051
socket_type= stream
protocol= tcp
wait= no
user = firebird
disable = no
bind = 10.33.1.50
redirect = 192.168.33.1 3050
Проблема в том что если, соединений на Серв2 идет чз клиентскую программу, то процесс firebird, при закрытии клиента, закрывается на Серве2, что правильно. А вот если открыть ТОМКАТ по адресу 10.33.1.50:8080, поработать с некоторыми задачами, которые устанавливают соединение с 10.33.1.50/3051 те выходят на 192.168.33.1/3050 и закрыть, то в этом случае процессы firebird на Серве2 не закрываются, остаются висеть, что является проблемой.
Есть у каво какие мысли?