У меня есть реплицированный кеш, работающий на нескольких узлах 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 минут.
Ни один из них не приводит к тайм-ауту, процессор просто спит столько времени, сколько я ему сказал, а затем возвращается без ошибок.
Кто-нибудь уже делал что-то подобное и может дать мне совет? Это было бы очень признательно.
Спасибо
Джеймс