5 Replies Latest reply on May 31, 2013 11:49 AM by shawkins

    Teiid 8.1 Multi-source dynamic VDB model handling of getMetadata

    wannasurf

      We have an application that can be configured using either a single datasource VDB model or a multi-source model, and where the Teiid metadata is provided via the ExecutionFactory getMetadata() method.  With prior releases of Teiid (7.7), in the multi-source configuration Teiid would get the Teiid metadata from the first available datasource. In practice this meant that if the first data source was not available during the getMetadata call we could throw an exception in which case Teiid would re-drive the getMetadata() method in the context of the next data source defined to the multi-source VDB model.  If that data source were not available as well, we could throw an exception and Teiid would walk through each of the defined data sources until we either returned metadata or Teiid got to the end of the list.

       

      After migrating to the use of Teiid 8.1, Teiid is no longer handling the multi-source VDB model in this same fashion relative to the getMetadata processing.  Teiid 8.1 appears to only call the getMetadata function within the context of the first data source that is defined to the VDB model, and if this fails to get a connection or fails to return metadata then we get the "TEIID50036 VDB ... metadata failed to load" message and that model is not deployed.

       

      Under Teiid 8.1, how do you achieve the same behavior as what was present in Teiid 7.7 where in a multi-source VDB model, and providing Teiid metadata requires that we connect to a data source, and where data sources (including the first data source in the model) may not be available during Teiid bootstrap/VDB deployment we can get re-driven for each data source until we are successful?  (Note that we have overriden the isSourceRequiredForMetadata method and are returning a value of true).