小编Jam*_*mes的帖子

Oracle Coherence:如何在复制缓存中的调用调用上设置超时?

我有一个复制的缓存,运行在许多也在运行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分钟后启动.

这些都没有导致任何类型的超时,处理器只是睡了很久我告诉它然后返回没有错误.

有没有人以前做过类似的事情,可以给我一些建议吗?非常感谢.

谢谢

詹姆士

java oracle caching timeout weblogic

7
推荐指数
1
解决办法
2875
查看次数

标签 统计

caching ×1

java ×1

oracle ×1

timeout ×1

weblogic ×1