Re: Одновременный доступ в POP3 ящик из нескольких сессий
От: spartakuz  
Дата: 03.02.10 07:28
Оценка:
Здравствуйте, Glenn, Вы писали:

G>Одновременный доступ в POP3 ящик из нескольких сессий


G>Как ДОЛЖЕН работать POP3 в случае если несколько клиентских сессий одновременно хотят работать с одним и тем же ящиком? RFC 1939 говорит "Once the POP3 server has determined through the use of any authentication command that the client should be given access to the appropriate maildrop, the POP3 server then acquires an exclusive-access lock on the maildrop, as necessary to prevent messages from being modified or removed before the session enters the UPDATE state".


G>Но вот я попробовал на имеющемся у меня POP3-сервере — никто не мешает второй сессии получить доступ и работать с ящиком (включая удаление писем). Это что, какое-то расширение? Если да, то где оно специфицировано? Какие тут возможны проблемы? Например: если Сессия#1 хочет читать письмо #N, а оно уже удалено Сессией#2 — что произойдёт? Или: Сессия#1 прочитала письмо #N, хочет его удалить — а за это время Сессия#2 удалила письмо #(N-1), и все номера писем 'сдвинулись'. Какое в действительности письмо будет удалено когда Сессия#1 выдаст команду DELE #N?


После аутентификации сессия должна входить в состояние транзакции. Это в рфс большими буквами выделено.
Делаешь снапшот для каждой сессии, нумеруешь письма в транзакции, и после завершения транзакции в состоянии update коммитишь изменения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.