如何为 apache ignite 缓存设置查询超时?

How to set a query timeout for apache ignite cache?

我正在使用 TIBCO BusinessWorks 5.3。所以我们一般在SQLDirect/JDBC查询activity中提供查询超时时间。但是对于 Ignite 缓存来说,超时似乎不起作用。

它安装在 Linux 服务器上。我尝试在 cacheConfiguration 属性 节点下的配置 xml 中添加 setTimeout 属性。

我尝试了 2 种不同的配置

1.

<bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="cacheConfiguration">
 <list>
   <bean class="org.apache.ignite.configuration.CacheConfiguration">
     <!--some properties-->
     <property name="setTimeout" value="60" />
   </bean>                      
</list>
</property> 

2.

<bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="cacheConfiguration">
 <list>
   <bean class="org.apache.ignite.configuration.CacheConfiguration">
     <!--some properties-->
   </bean>
  <bean class="org.apache.ignite.cache.query.SqlFieldsQuery"> 
    <property name="setTimeout" value="60" />
  </bean>                       
</list>
</property>

抛出错误信息如下-

    org.springframework.beans.NotWritablePropertyException: Invalid 
    property setTimeout of bean class 
    [org.apache.ignite.configuration.CacheConfiguration]: Bean property 
    setTimeout is not writable or has an invalid setter method.

目前您可以使用 SqlQuery/SqlFieldsQuery API 为查询设置单独的超时:https://apacheignite-sql.readme.io/docs/query-cancellation

这是一个已知问题,没有为查询配置默认超时的选项,这里是 link 供您参考(一个月前有一个 PR 处于活动状态):https://issues.apache.org/jira/browse/IGNITE-7285

JDBC查询超时已实现,但尚未实现documented/released:https://issues.apache.org/jira/browse/IGNITE-5438