|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
Привет У меня есть вьювер (на c#), посредством которого я смотрю данные из Cashe', связь осуществляется через сокет (C#) - порт (Cashe'), так вот: я закрываю C#овскую прогу, соответственно сокет прибивается, но иногда получается такая фигня что при повторном открытии C# и создании сокета, в него присылаются те недосланные данные. Выходит (я так думаю), что они зависают на Сервере (так как при перезапуске Cashe сервака они исчезают). Собственно вопрос: 1. Можно ли как то принудительно очищать порт в Cashe. 2. Можно ли получить Session ID в сокетах С#, и по нему отсекать "не наши" данные (вопрос не по теме форума, но может кто то встречался с подобной проблеммое и хотелось бы узнать как ее решить. Пока у меня единственная мысль - это слать с данными SessionID генерируемый при установлении коннекта, но он мне не очень нравиться так как придется перелопачивать очень много исходного кода :() Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 11:23 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
Я думаю здесь не досылается вся информация из буфера, пробуйте перед закрытием сокета принудительно извлечь ее коммандой W "data",! - т.е. восклицательным знаком, который соответствует CR/LF. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 12:06 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
ясненько, но дело еще и в том, что если C# отваливается (например дохнет коннект) то Cashe код остается неуправляемым и ничего сделать невозможно... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 13:29 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
Ну здесь вопрос конечно сложнее... Я бы посоветовал, но не знаю поможет ли это ? А если повторно конект осуществлять через другой порт и попробовать что-то изменить... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 14:03 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
Какая версия Cache? Как запускается серверный поток (с какими флагами) в Cache? Пример рабочего сервера есть: http://karataev.nm.ru/cache/mdapi.html ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 14:29 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
ValeriuНу здесь вопрос конечно сложнее... Я бы посоветовал, но не знаю поможет ли это ? А если повторно конект осуществлять через другой порт и попробовать что-то изменить... другой нельзя, настройки в ини файле :( и менять нельзя ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 15:08 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
Maksim UMКакая версия Cache? Как запускается серверный поток (с какими флагами) в Cache? Пример рабочего сервера есть: http://karataev.nm.ru/cache/mdapi.html порт создаю так open "|TCP|7599":(:TcpIPPort:"MAT"::$C(13)):20 Build: Caché v5.0.14 (5702U-5702) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 15:11 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
Важнее как запускается клиентский поток при подключении. Те как выглядит Job ... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 15:13 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
Maksim UMВажнее как запускается клиентский поток при подключении. Те как выглядит Job ... имедось ввиду это? job run^tsclientw1:(:5:|TCP|7599:|TCP|7599) а в tsclientw1 просто шлю в цикле use 0:(::"M") Write $ZCVT("ТЕКСТ", "O", "UTF8"), ! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 15:43 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
Tony_Kимедось ввиду это? Да Tony_Kjob run^tsclientw1:(:5:|TCP|7599:|TCP|7599) Можно попробовать просто job run^tsclientw1:(:5) а в теле клиента Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 16:11 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
Maksim UM Tony_Kимедось ввиду это? Да Tony_Kjob run^tsclientw1:(:5:|TCP|7599:|TCP|7599) Можно попробовать просто job run^tsclientw1:(:5) а в теле клиента Код: plaintext
ммм... а что значит магическое число 53? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 16:25 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
лучше попробовать. сложно отвечать на вопросы по недокументированным функциям... но, вроде, эта функция устанавливает principal device как входящий сокет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 18:10 |
|
Зависание данных в портах
|
|||
---|---|---|---|
#18+
Попробуйте опцию в команде use tcpdev:"+D" Документация Monitoring for Disconnect Mode This mode turns on or off asynchronous disconnect monitoring. When you specify +D, TCP disconnect monitoring is activated; when you specify –D, TCP disconnect monitoring is deactivated. While activated, Caché polls the TCP connection roughly every 60 seconds. When it detects a disconnect, Caché issues a <DISCONNECT> error. Disconnect detection does not occur in idle jobs, such as a job suspended by a HANG command or a job waiting on a READ operation. You can also check for TCP disconnect by using the $ZUTIL(189) function. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2005, 03:17 |
|
|
start [/forum/topic.php?fid=39&msg=33131464&tid=1559723]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 159ms |
0 / 0 |