sun.rmi.transport.tcp.readTimeout не действует - PullRequest
0 голосов
/ 17 марта 2011

Я установил sun.rmi.transport.tcp.readTimeout в качестве параметра JVM в файле конфигурации моего продукта, который доступен в качестве службы. Я установил очень минимальное значение 1000 мс, что означает, что все операции, выполняемые с использованием моего интерфейса командной строки, которые занимают более 1 секунды, должны завершаться с ошибкой, за исключением java.rmi.ConnectIOException: ошибка во время установления соединения JRMP; Вложенное исключение: java.net.SocketTimeoutException: тайм-аут чтения at sun.rmi.transport.tcp.TCPChannel.createConnection

Пожалуйста, дайте мне знать, если я пропустил какой-либо другой параметр, необходимый для этой работы. Я хочу установить тайм-аут, скажем, 10 минут. Но я хочу установить действительно низкое значение, чтобы подтвердить, что таймаут эффективен. Связаны ли с этим параметры java.rmi.activation.port и java.rmi.server.hostname? Пожалуйста, обратитесь http://www.codeguru.com/forum/showthread.php?t=246620.

1 Ответ

1 голос
/ 22 марта 2011

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

Нет, это не так. Тайм-аут на стороне клиента будет делать это, но sun.rmi.transport.tcp.readTimeout контролирует тайм-аут чтения на сервере, , который, в свою очередь, влияет на пул соединений. Чтобы контролировать тайм-ауты чтения на стороне клиента, необходимо установить недокументированное свойство, которое называется (я думаю) sun.rmi.transport.tcp.responseTimeout, в каждой клиентской виртуальной машине Java.

...