]
Debbie Steigner commented on TEIID-3786:
----------------------------------------
Customer just tried the vdb property lazy-invalidate=true and it worked in 6.1.3 so I
guess it was backported. I don't see that property listed in the docs for vdb props
though so will log a DV doc bug for that as well. Thanks for you help
Cache hint TTL invalidates cache before the reload/refresh is
complete
----------------------------------------------------------------------
Key: TEIID-3786
URL:
https://issues.jboss.org/browse/TEIID-3786
Project: Teiid
Issue Type: Bug
Components: Server
Affects Versions: 8.7.1.6_2
Reporter: Debbie Steigner
Assignee: Steven Hawkins
Cache hint TTL invalidates cache before the reload/refresh is complete, if the reload
fails so do the user queries because the cache is invalid.
According to the Caching documentation when using Cache Hint:
Important
In this example, the user query started a new refresh/load job, however it did not
invalidate the current results. So, in the mean time while the load/refresh job is
running, the user queries continue to return the expired results. When the refresh/reload
job completes, then the old results will be flushed and new results will be used for any
future user requests.
The main idea here is not to block user queries while the refresh job is running. This is
mainly due to the fact that you can not predict how long a refresh job going to run.
From the customer logs, you can see that the Matview is invalidated before it reloads[1],
so if the reload fails for some reason then the user queries fail. I assume this is a bug
not a documentation error
[1]
11:16:08,073 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8)
org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 invalidating
11:16:08,074 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8)
org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 setting matState to
NEEDS_LOADING null 1445613368074 old values LOADED false
11:16:08,074 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8)
org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 invalidating
11:16:08,074 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8)
org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 setting matState to
LOADING null 1445613368074 old values NEEDS_LOADING false
11:16:08,074 INFO [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8)
TEIID30013 Loading materialized view table #MAT_MBDVCONF.CLIENT
11:16:08,076 DEBUG [org.teiid.CONNECTOR] (Worker3_QueryProcessorQueue9)
/RMoMwxJGpmf.1.12.3 Processing NEW request: SELECT g_0.ID, g_0.NAME, g_0.CREATE_DT FROM
mbdvconf_sm.CLIENT AS g_0
11:16:26,027 WARN [org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory]
(Worker3_QueryProcessorQueue9) Destroying connection that is not valid, due to the
following exception: oracle.jdbc.driver.T4CConnection@6d07b3ed: java.sql.SQLException:
pingDatabase failed status=-1
at
org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker.isValidConnection(OracleValidConnectionChecker.java:68)
at
org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnectionFactory.isValidConnection(BaseWrapperManagedConnectionFactory.java:1100)