首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IBM命令缓存失效

IBM命令缓存失效
EN

Stack Overflow用户
提问于 2011-08-09 06:30:23
回答 2查看 1.2K关注 0票数 1

我的业务流程如下:

  1. 使命令无效
  2. 从命令中获取数据(数据库操作,稍微慢一点)

Step2将被许多并发用户访问。

现在,当一个命令失效,用户试图获取数据时,多个数据库查询就会开始执行,因为执行速度稍微慢一些。

有什么方法可以停止多次执行查询吗?

换句话说,问题是:我们能否使命令的执行和从命令中获取数据作为同步?

EN

回答 2

Stack Overflow用户

发布于 2011-09-17 21:56:56

是的,你可以这样做。

代码语言:javascript
运行
复制
public class Fetcher {
  private static String data;
  private long timestamp;
  public synchronized String fetchData() {
    String result="";
    if (data!=null) {
     result=data;
     // let's invalidate too old data
     if (new Date().getTime()-timestamp> 100000)
      data=null;
    } else {
      DAO db = DAO.getConnection();
      data = db.performQuery();
      result=data;
    }
   return result;
  }
}
票数 0
EN

Stack Overflow用户

发布于 2012-02-09 06:17:05

如果您使用的是Dynacache缓存命令,并且用户的查询是相同的,那么该命令应该在第一次执行之后被缓存。

只有第一次执行才能命中数据库,然后从缓存中提取数据,直到缓存失效。

我通常使用Dynacache作为套件的一部分。Websphere使用一个预定命令来检查一个名为CACHEIVL的表。您将设置触发器,当目标表被更改时,这些触发器将向CACHEIVL中插入一个无效id。

由于您没有计划好的Dynacache命令,所以可以使用Websphere调度程序实现特定于您的用例的东西,

下面是一个使用Dynacache的可缓存命令的示例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6992231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档