我有一个业务场景,每当新记录加载到数据库表中时, a)通知将发送给客户。通知消息是传送数据已加载并准备好进行查询。 b)收到通知后,客户端将向JBOSS vitrual DB发出OData查询。 Odata由Teiid VDB支持
问题在于:在ODATA查询响应中未返回的新记录(通过手动/自动SL脚本插入)。它总是在前5分钟返回缓存结果。因为Odata的默认缓存时间设置为5分钟。
我们希望TEIID始终返回所有记录,包括新插入的记录。
我尝试了以下选项,但它没有按预期工作(https://developer.jboss.org/wiki/AHowToGuideForMaterializationcachingViewsInTeiid)
1)缓存提示
/ * + cache(ttl:300000)* / select * from Source.UpdateProduct
2)选择NOCACH
****当我向DB进行JDBC查询时,这是有效的。
请建议如何在ODATA REST查询的情况下关闭此缓存?
答案 0 :(得分:0)
我认为Teiid文档https://docs.jboss.org/author/display/TEIID/OData+Support可以提供帮助。 您没有指定您使用的Teiid版本,因此我附上了最新版本的文档。
现在,当您浏览文档页面时,底部有“配置”部分,其中有几个可配置选项。 skiptoken-cache-time选项不能满足您的需求吗?尝试将其设置为较低的值/零,看看这是否有帮助。只需找到odata war,打开它,然后更改WEB-INF / web.xml文件。
扬