[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)
7 years, 3 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)
7 years, 3 months
[JBoss JIRA] (TEIID-4398) Write a utility to convert a .VDB with Index file into -vdb.xml or DDL format
by Ramesh Reddy (JIRA)
[ https://issues.jboss.org/browse/TEIID-4398?page=com.atlassian.jira.plugin... ]
Ramesh Reddy resolved TEIID-4398.
---------------------------------
Resolution: Done
Labels: CR1 (was: )
Added a utility script into "bin" directory of the installation
{code}
teiid-convert-vdb.bat/.sh
{code}
using which a .vdb or -vdb.xml file can be converted to DDL based vdb. Added blurbs about this in the docs and release notes. Will write blog about this some time after release.
> Write a utility to convert a .VDB with Index file into -vdb.xml or DDL format
> -----------------------------------------------------------------------------
>
> Key: TEIID-4398
> URL: https://issues.jboss.org/browse/TEIID-4398
> Project: Teiid
> Issue Type: Task
> Components: Build/Kits
> Reporter: Ramesh Reddy
> Assignee: Ramesh Reddy
> Labels: CR1
> Fix For: 9.2
>
>
> Write a command line utility and provide in "bin" directory to convert the Designer based .vdb file with index metadata into -vdb.xml file and/or newer DDL format.
> This can be used to migrate the older VDBs mach easier to newer formats without use of Designer tooling.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 3 months