我在许多也运行 OSB 的 weblogic 节点上运行了一个复制缓存。缓存作为启动类与服务器一起启动。它有一个非常简单的对象缓存,可以通过布尔属性“可用”简单地跟踪它们是否正在使用中。
从 OSB 我正在对同一个类进行 java 标注,该类使用将对象标记为不可用的处理器在缓存上调用“invoke”,然后运行 Thread.sleep(31000)。这是我想稍后添加的一些冗长处理的占位符。
我想要发生的是,如果调用()调用时间过长,该过程应该超时并返回或抛出异常。所以我一直在尝试配置一个 30000 毫秒的请求超时来测试这个。不幸的是,我无法弄清楚如何让这个超时发生。
我努力了:
将处理器包装在 PriorityProcessor 中并在 invoke() 之前调用 setRequestTimeout(30000)
将
<request-timeout
>30000</request-timeout
> 添加到<replicated-scheme/
缓存配置中的 > 元素将
<tasktimeout
>30000</tasktimeout
> 添加到<replicated-scheme/
缓存配置中的 > 元素将
<guardian-timeout
>30000</guardian-timeout
> 添加到<replicated-scheme/
缓存配置中的 > 元素创建一个 tangosol-coherence-override.xml 并将 Guardian-timeout
<init-param
> 添加到<service
“类型”与缓存配置中的服务“名称”匹配的 > 元素将 sleep() 调用更改为 Thread.sleep(310000) 只是为了查看是否有任何开箱即用的默认设置会在 5 分钟后启动。
这些都不会导致任何类型的超时,无论我告诉它多长时间,处理器都会简单地休眠,然后返回而没有错误。
有没有人做过类似的事情,可以给我一些建议?将不胜感激。
谢谢
詹姆士