How to control the expiration of the cached query results when using DFC query type DF_CACHE_QUERY? I have a dm_document successor "mytype" and I have updated the data many times since I performed the select for the first time, but the query still returns the original data. More than 5 minutes passed since then.
mytype has attributes: "s" and "i". Initially, s contained 'x', but now it contains 'y'. Yet, the program below prints 'x' every time it's launched.
public class MyDql2 {
private static final Logger LOGGER = Logger.getLogger(MyDql2.class);
public static void main(final String[] args) throws Exception {
LOGGER.warn("start");
DfLogger.debug(MyDql2.class, "DfLogger", null, null);
final IDfClient cl = DfClient.getLocalClient();
final String docbase = "docbas";
final IDfSessionManager sm = cl.newSessionManager();
final IDfLoginInfo info = new DfLoginInfo();
info.setUser("admin");
info.setPassword("s3cret");
info.setSecurityMode(IDfLoginInfo.SECURITY_MODE_TRY_NATIVE_FIRST);
sm.setIdentity(docbase, info);
final IDfSession docses = sm.getSession(docbase);
final String dql = "select * from mytype where i = 1";
for (int i = 0; i < 3; i++) {
final IDfCollection col = new DfQuery(dql).execute(docses, IDfQuery.DF_CACHE_QUERY);
try {
int j = 0;
while (col.next()) {
j++;
LOGGER.info(col.getString("s"));
}
} finally {
col.close();
}
}
LOGGER.warn("ok");
}
}