Jam*_*mes 7 java oracle caching timeout weblogic
我有一个复制的缓存,运行在许多也在运行OSB的weblogic节点上.缓存以服务器作为启动类启动.它有一个非常简单的对象缓存,可以使用布尔属性"available"来跟踪它们是否正在使用.
从OSB我将java调用发送到同一个类,它在缓存上使用将对象标记为不可用的处理器调用"invoke",然后运行Thread.sleep(31000).这是我想要稍后添加的一些冗长处理的占位符.
我想要发生的是,如果invoke()调用花费的时间太长,则进程应该超时并返回或抛出异常.所以我一直在尝试配置一个30000毫秒的请求超时来测试它.不幸的是我无法弄清楚如何使这种超时发生.
我试过了:
将处理器包装在PriorityProcessor中并在调用()之前调用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>"type"的元素与缓存配置中的服务"name"匹配
更改sleep()调用Thread.sleep(310000)只是为了查看是否有任何开箱即用的默认值将在5分钟后启动.
这些都没有导致任何类型的超时,处理器只是睡了很久我告诉它然后返回没有错误.
有没有人以前做过类似的事情,可以给我一些建议吗?非常感谢.
谢谢
詹姆士
好的,在蒂姆·米德尔顿的帮助下我有了答案。
基本上,复制缓存不支持超时,而且事实证明它对于我的系统来说并不是一个合适的选择!
解决办法是:
<distributed-cache缓存配置中的 > 方案。<thread-count到方案中,其数字 > 1(我选择了 10,但它只是您想要支持的并发实例数)。| 归档时间: |
|
| 查看次数: |
2875 次 |
| 最近记录: |