Oracle Coherence :Как установить время ожидания для вызова вызова в реплицированном кэше?

У меня есть реплицированный кеш, работающий на нескольких узлах weblogic, на которых также работает OSB. Кэш запускается с сервером в качестве класса запуска. Он имеет очень простой кэш объектов, которые просто отслеживают, используются ли они или нет, с логическим атрибутом «доступен».

Из OSB я делаю java-выноски к тому же классу, который вызывает «вызов» в кеше с процессором, который помечает объект как недоступный, а затем запускает Thread.sleep (31000 ). Это заполнитель для длительной обработки, которую я хочу добавить позже.

Что я хочу, так это то, что если вызов invoke ()занимает слишком много времени, процесс должен истечь по тайм-ауту и ​​вернуть или выдать исключение. Поэтому я пытался настроить тайм-аут запроса в 30000 миллисекунд, чтобы проверить это. К сожалению, я не могу понять, как сделать этот тайм-аут.

Я пробовал:

  • Обернуть процессор в PriorityProcessor и вызвать setRequestTimeout (30000 )перед вызовом()

  • Добавление <request-timeout>30000 </request-timeout> к элементу <replicated-scheme/> в кеше config

  • Добавление <tasktimeout>30000 </tasktimeout> к элементу <replicated-scheme/> в конфигурации кеша

  • Добавление <guardian-timeout>30000 </guardian-timeout> к элементу <replicated-scheme/> в конфигурации кеша

  • Создание tangosol -согласованности -override.xml и добавление хранителя -тайм-аута <init-param> к элементу <service>, чей «тип» соответствует «имени» службы в конфигурации кеша

  • Изменение вызова sleep ()на Thread.sleep (310000 )просто для того, чтобы посмотреть, сработает ли какой-либо -из -по умолчанию через 5 минут.

Ни один из них не приводит к тайм-ауту, процессор просто спит столько времени, сколько я ему сказал, а затем возвращается без ошибок.

Кто-нибудь уже делал что-то подобное и может дать мне совет? Это было бы очень признательно.

Спасибо

Джеймс

7
задан James 16 April 2012 в 07:03
поделиться