With the following transformation SQL, regardless of the time allowed to elapse, the cache does not expire/invalidate.
I'm running the production profile. Here's the transformation SQL text:
/*+ cache(ttl:30000) */
SELECT
PartsSourceA.SUPPLIER_PARTS.SUPPLIER_ID, PartsSourceA.SUPPLIER_PARTS.PART_ID, PartsSourceA.SUPPLIER_PARTS.QUANTITY, PartsSourceA.SUPPLIER_PARTS.SHIPPER_ID, PartsSourceB.SUPPLIER.SUPPLIER_NAME, PartsSourceB.SUPPLIER.SUPPLIER_STATUS, PartsSourceB.SUPPLIER.SUPPLIER_CITY, PartsSourceB.SUPPLIER.SUPPLIER_STATE, CONCAT2(PartsSourceB.SUPPLIER.SUPPLIER_CITY, CONCAT2(', ', PartsSourceB.SUPPLIER.SUPPLIER_STATE)) AS City_State
FROM
PartsSourceA.SUPPLIER_PARTS, PartsSourceB.SUPPLIER
WHERE
PartsSourceA.SUPPLIER_PARTS.SUPPLIER_ID = PartsSourceB.SUPPLIER.SUPPLIER_ID
It's not expiring/invalidating the cache unless I CALL SYSADMIN.refreshMatView(viewname=>'PartsVirtual.SupplierInfo', invalidate=>true)