Multisource - Duplicate Table when adding metadata
wirnse Feb 13, 2015 7:51 AMHello!
I am facing troubles with mutlisource configuration.
Some background:
We use several databases which have the same schema/tables/etc.
These are oracle databases which run on the same server with different servicenames.
Teiid Version is 8.9.1.
Here is our vdb configuration which works fine:
<vdb name="rgkk-vdb" version="1">
<description>VDB for RGKK Databases</description>
<property name="UseConnectorMetadata" value="true" />
<model name="Traeger">
<property name="importer.useQualifiedName" value="false" />
<property name="importer.schemaPattern" value="ELF_SYSADMIN" />
<property name="multisource" value="true" />
<property name="multisource.columnName" value="TRAEGER_ID" />
<property name="multisource.addColumn" value="true" />
<source name="14" translator-name="oracle"
connection-jndi-name="java:/rgkk-14" />
<source name="18" translator-name="oracle"
connection-jndi-name="java:/rgkk-18" />
<metadata type="NATIVE,DDL"><![CDATA[
]]>
</metadata>
</model>
<translator name="translator-oracle" type="oracle">
<property name="SupportsNativeQueries" value="true" />
</translator>
</vdb>
With that configuration we can query the databases with "Select * from termine where TRAEGER_ID=14" and it works just fine.
Now when we add something to metadata like:
<metadata type="NATIVE,DDL"><![CDATA[
CREATE
FOREIGN
PROCEDURE
PROC (arg1
IN
STRING
NOT
NULL
, arg2
IN
STRING, TRAEGER_ID
IN
STRING)
]]>
</metadata>
We get the following exception:
13.02.2015 12:33:58,115 +0100 WARN [org.teiid.RUNTIME] (teiid-async-threads - 4) TEIID50036 VDB rgkk-vdb.1 model "Traeger" metadata failed to load. Reason:TEIID60013 Duplicate Table AHK_QUARTALSAETZE:
org.teiid.metadata.DuplicateRecordException: TEIID60013 Duplicate Table AHK_QUARTALSAETZE
at org.teiid.metadata.Schema.addTable(Schema.java:49) [teiid-api-8.9.1.jar:8.9.1]
at org.teiid.metadata.MetadataFactory.addTable(MetadataFactory.java:197) [teiid-api-8.9.1.jar:8.9.1]
at org.teiid.translator.jdbc.JDBCMetdataProcessor.addTable(JDBCMetdataProcessor.java:325)
at org.teiid.translator.jdbc.JDBCMetdataProcessor.addTable(JDBCMetdataProcessor.java:308)
at org.teiid.translator.jdbc.JDBCMetdataProcessor.getTables(JDBCMetdataProcessor.java:281)
at org.teiid.translator.jdbc.JDBCMetdataProcessor.getConnectorMetadata(JDBCMetdataProcessor.java:144)
at org.teiid.translator.jdbc.JDBCExecutionFactory.getMetadata(JDBCExecutionFactory.java:309)
at org.teiid.translator.jdbc.JDBCExecutionFactory.getMetadata(JDBCExecutionFactory.java:57)
at org.teiid.query.metadata.NativeMetadataRepository.getMetadata(NativeMetadataRepository.java:83) [teiid-engine-8.9.1.jar:8.9.1]
at org.teiid.query.metadata.NativeMetadataRepository.loadMetadata(NativeMetadataRepository.java:60) [teiid-engine-8.9.1.jar:8.9.1]
at org.teiid.query.metadata.ChainingMetadataRepository.loadMetadata(ChainingMetadataRepository.java:55) [teiid-engine-8.9.1.jar:8.9.1]
at org.teiid.query.metadata.ChainingMetadataRepository.loadMetadata(ChainingMetadataRepository.java:55) [teiid-engine-8.9.1.jar:8.9.1]
at org.teiid.jboss.VDBService$6.run(VDBService.java:396) [teiid-jboss-integration-8.9.1.jar:8.9.1]
at org.teiid.jboss.VDBService$7.run(VDBService.java:444) [teiid-jboss-integration-8.9.1.jar:8.9.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Any advise?
Thanks in advance!