Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
 ServerSocket: exiting child job  [new]
alatalo
Member

Откуда: Хельсинки
Сообщений: 123
Есть у меня сервис, который слушает TCP порт и порождает дочерний джоб для каждого нового конекта. Как только клиент закрывает сокет на своей строне, дочерний джоб автоматичести завершается.

ServerProc
JOB ChildProc:(:16::) ;Concurrent server bit is on

Все как в документации и работает уже много лет без проблем. Решил я передавать в свой хандлер не само TCP устройство как раньше, а "обернуть" его ServerSocket-том и передавать уже стрим:

ChildProc

s io=##class(%SYSTEM.INetInfo).TCPName()
use io

s stream=##class(%IO.ServerSocket).%New()
d stream.Attach(io)

; do Handler(io)
do Handler(stream)

в таком виде все по-прежнему работает, кроме того, что дочерний джоб не завершается при закрытии сокета как раньше.

В чем может быть проблема?
6 окт 16, 21:35    [19752813]     Ответить | Цитировать Сообщить модератору
 Re: ServerSocket: exiting child job  [new]
П.С.М.
Member

Откуда: Из СССР
Сообщений: 466
alatalo,

Смотрите, как работал выход из процесса раньше. У Вас же там наверняка есть цикл какой-нибудь, и сейчас, наверняка, не наступает условие выхода из этого цикла.
7 окт 16, 09:52    [19753776]     Ответить | Цитировать Сообщить модератору
 Re: ServerSocket: exiting child job  [new]
alatalo
Member

Откуда: Хельсинки
Сообщений: 123
точно, READ выбрасывал ошибку и этим процесс завершался, а сокет просто возвращает статус.
спасибо за совет.
10 окт 16, 09:25    [19762477]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить