[JBoss JIRA] (TEIID-4730) Problem with Import VDB with Materialized View (external)
by Pedro Inácio (JIRA)
[ https://issues.jboss.org/browse/TEIID-4730?page=com.atlassian.jira.plugin... ]
Pedro Inácio updated TEIID-4730:
--------------------------------
Attachment: numberingPlan-vdb.xml
> Problem with Import VDB with Materialized View (external)
> ---------------------------------------------------------
>
> Key: TEIID-4730
> URL: https://issues.jboss.org/browse/TEIID-4730
> Project: Teiid
> Issue Type: Bug
> Components: Common
> Affects Versions: 9.1.2
> Environment: * Teiid 9.1.2
> * CentOs 7
> * WildFly 10
> Reporter: Pedro Inácio
> Assignee: Steven Hawkins
> Attachments: externalMaterializationOrderProblem-vdb.xml, numberingPlan-vdb.xml
>
>
> Having defined a VDB which contains a Model that has External Materialization, when importing this VDB into another that also uses External Materialization, Teiid Server is searching in the wrong place for the view status.
> Example:
> ..
> <import-vdb name="CountryServiceListVDB" version="1" import-data-policies="true"/>
> ...
> <model name="MyView" type="VIRTUAL">
> ...
> SELECT cns,
> country_code
> FROM NumberingPlan.numbering_plan;
> ....
> </metadata>
> </model>
> *NumberingPlan.numbering_plan is defined in the imported VDB, and is also Materialized.*
> *Warning in Logs: *
> 17:51:45,161 WARN [org.teiid.MATVIEWS] (Worker8_QueryProcessorQueue10653) n9M6de3y5xHM org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate (SELECT mvstatus('NumberingPlan', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION') FROM (SELECT 1) AS x LEFT OUTER JOIN NumberingPlanMaterialized.status ON VDBName = 'ExternalMaterializationOrderProblem' AND VDBVersion = '1' AND SchemaName = 'NumberingPlan' AND Name = 'numbering_plan' LIMIT 2): TEIID30328 Unable to evaluate mvstatus('NumberingPlan', 'numbering_plan', Valid, LoadState, 'THROW_EXCEPTION'): TEIID30384 Error while evaluating function mvstatus
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 10 months
[JBoss JIRA] (TEIID-4731) Unable to connect to MongoDB pod from JBoss Data Virtualization (on OpenShift)
by Cojan van Ballegooijen (JIRA)
Cojan van Ballegooijen created TEIID-4731:
---------------------------------------------
Summary: Unable to connect to MongoDB pod from JBoss Data Virtualization (on OpenShift)
Key: TEIID-4731
URL: https://issues.jboss.org/browse/TEIID-4731
Project: Teiid
Issue Type: Enhancement
Environment: I was running using JDV 6.3 running on OpenShift 3.4 and couldn't connect my VDB to mongodb.
Reporter: Cojan van Ballegooijen
Assignee: Steven Hawkins
Priority: Minor
Attachments: products.js
It looks like the setup of the mongodb resource adapter is not documented correctly. Tested it also locally with the same issue when using an username/password to connect to a mongodb database.
15:26:01,386 WARN [org.teiid.CONNECTOR] (http-127.0.0.1:8080-1) TEIID30003 Without required support property SelfJoins, pushdown will not be enabled for TableAlias on translator [mongodb, java:jboss/datasources/MongoDS].
15:26:01,626 INFO [org.teiid.CONNECTOR] (Worker0_QueryProcessorQueue0) SELECT product.itemId AS c_0, product.name AS c_1, product.description AS c_2, product.price AS c_3 FROM product ORDER BY c_0
15:26:01,662 WARN [org.teiid.CONNECTOR] (Worker0_QueryProcessorQueue0) Connector worker process failed for atomic-request=G8hRIMByScTW.0.0.0: org.teiid.translator.TranslatorException: { "serverUsed" : "localhost:27017" , "ok" : 0.0 , "errmsg" : "auth failed" , "code" : 18 , "codeName" : "AuthenticationFailed"}
at org.teiid.translator.mongodb.MongoDBQueryExecution.execute(MongoDBQueryExecution.java:104) [translator-mongodb-8.12.8.6_3-redhat-2.jar:8.12.8.6_3-redhat-2]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:366)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_121]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_121]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_121]
at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_121]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy96.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:306)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:112)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108)
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_121]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_121]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_121]
Caused by: com.mongodb.CommandFailureException: { "serverUsed" : "localhost:27017" , "ok" : 0.0 , "errmsg" : "auth failed" , "code" : 18 , "codeName" : "AuthenticationFailed"}
at com.mongodb.CommandResult.getException(CommandResult.java:76) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.CommandResult.throwOnError(CommandResult.java:140) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.DBPort$NativeAuthenticator.authenticate(DBPort.java:986) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.DBPort.authenticate(DBPort.java:432) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.DBPort.checkAuth(DBPort.java:443) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:289) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:269) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:84) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.DB.command(DB.java:320) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.DB.command(DB.java:299) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.DBCollectionImpl.aggregate(DBCollectionImpl.java:99) [mongo-java-driver-2.13.1.jar:]
at com.mongodb.DBCollection.aggregate(DBCollection.java:1649) [mongo-java-driver-2.13.1.jar:]
at org.teiid.translator.mongodb.MongoDBQueryExecution.execute(MongoDBQueryExecution.java:102) [translator-mongodb-8.12.8.6_3-redhat-2.jar:8.12.8.6_3-redhat-2]
... 18 more
Solution is to add the SecurityType configuration parameter in the mongodb resource adapter configuration and set the value to SCRAM_SHA_1.
- Create a VDB
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<vdb name="CatalogVDB" version="1">
<description/>
<property name="validationDateTime" value="Thu Sep 01 10:33:00 CEST 2016"/>
<property name="validationVersion" value="8.12.6"/>
<model name="CatalogDB" type="VIRTUAL">
<metadata type="DDL"><![CDATA[
CREATE VIEW products (
itemId integer,
name string(50),
description varchar(1024),
price bigdecimal,
CONSTRAINT ITEMID_UK UNIQUE (itemId)
) AS select * from Products_MONGODB.product
]]></metadata>
</model>
<model name="Products_MONGODB">
<source connection-jndi-name="java:jboss/datasources/MongoDS" name="local" translator-name="mongodb"/>
<metadata type="DDL"><![CDATA[
CREATE FOREIGN TABLE product (
itemId integer,
name varchar(50),
description varchar(1024),
price bigdecimal
) OPTIONS(UPDATABLE 'TRUE');
]]></metadata>
</model>
</vdb>
- Add following resource adapter configuration without SecurityType parameter
<resource-adapter id="mongodb">
<module slot="main" id="org.jboss.teiid.resource-adapter.mongodb"/>
<connection-definitions>
<connection-definition class-name="org.teiid.resource.adapter.mongodb.MongoDBManagedConnectionFactory" jndi-name="java:jboss/datasources/MongoDS" use-java-context="true" pool-name="cfName">
<config-property name="Database">
catalogdb
</config-property>
<config-property name="Username">
catalogAdmin
</config-property>
<config-property name="RemoteServerList">
localhost:27017
</config-property>
<config-property name="Password">
catalogPW
</config-property>
<config-property name="SecurityType">
SCRAM_SHA_1
</config-property>
<validation>
<background-validation>true</background-validation>
<background-validation-millis>60</background-validation-millis>
</validation>
</connection-definition>
</connection-definitions>
</resource-adapter>
- run mongo product.js // see attachment
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 10 months
[JBoss JIRA] (TEIID-4626) Add a full snapshot refresh strategy based upon table modifications
by Ramesh Reddy (JIRA)
[ https://issues.jboss.org/browse/TEIID-4626?page=com.atlassian.jira.plugin... ]
Ramesh Reddy reassigned TEIID-4626:
-----------------------------------
Assignee: Ramesh Reddy
> Add a full snapshot refresh strategy based upon table modifications
> -------------------------------------------------------------------
>
> Key: TEIID-4626
> URL: https://issues.jboss.org/browse/TEIID-4626
> Project: Teiid
> Issue Type: Enhancement
> Components: Query Engine
> Reporter: Steven Hawkins
> Assignee: Ramesh Reddy
> Fix For: 9.3
>
>
> using the existing full materialization refresh logic we can trigger a refresh based upon a notion of how dirty a table is based upon a proportion of rows updated to the rows in the table. This would also require some change to the status table to capture the number of transitive row updates. This could then be hooked up to debezium as the event source.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 10 months