[teiid-issues] [JBoss JIRA] (TEIID-4731) Unable to connect to MongoDB pod from JBoss Data Virtualization (on OpenShift)

Ramesh Reddy (JIRA) issues at jboss.org
Tue Jan 31 11:39:00 EST 2017


     [ https://issues.jboss.org/browse/TEIID-4731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ramesh Reddy updated TEIID-4731:
--------------------------------
    Fix Version/s: 9.2


> 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: Ramesh Reddy
>            Priority: Minor
>             Fix For: 9.2
>
>         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)


More information about the teiid-issues mailing list