-
1. Re: Access Teiid Driver
rareddy Jul 19, 2010 10:37 AM (in response to beginnerram)1 of 1 people found this helpfulRamya,
This sounds very interesting to integrate Teiid with qlikview, however I am not familiar with qlinkview currently to answer your question correctly. The real question you need to find out is "does qlikview support the data sources using JDBC or just ODBC?"
As of Teiid 7.0, we did not offer ODBC support. So, if you are working with 7.0 or prior version of Teiid, JDBC is the only access mechanism.
If you have to use ODBC, then starting 7.1, we are going to offer ODBC access using the PostgreSQL driver. This version is scheduled to release in some time early next month. As a matter of fact I just committed my initial set of changes for ODBC support to the Teiid nightly build late last week. You can download the source for Teiid and build it and test with qlikview. If there are any issues, let us know, I will be gladly fix them and try to make them in 7.1 release.
Also, in 7.1 we will be providing a Web Service interface on top, so you can access the VDB using a SOAP calls.
Hope this helps.
Thanks.
Ramesh..
-
2. Re: Access Teiid Driver
beginnerram Jul 20, 2010 1:28 AM (in response to rareddy)Thanks Ramesh. I am using Teiid 6.2. Yes, Qlikview only uses the system DSN to connect to the Database not using JDBC. So i just came across this site where in they have used Openlink software which when installed act as ODBC to JDBC bridge to connect SAP to metamatrix database. I tried to do the same, But i face issues when i connect to Teiid given the follwing details:
JDBC Driver: org.teiid.jdbc.TeiidDriver
URL String: jdbc:teiid:try@mm://myIp:31000
where DB is "try"
Ipaddress is "MyIP"
also tried with Driver:com.metamatrix.jdbc.MMDriver
URL: jdbc:metamatrix:trymm://myIp:31000
I get the following error "[OpenLink][ODBC]Unable to allocate server handle". Please let me know how do i Connect using a n open ODBC-JDBC bridge. It will be really great if you could help me in this regard.
I have one more query. When i am accessing from my JDBCClient.Class, I can access it either using getDriverConnection or getDataSource connection.
/// code snippet
static
Connection getDriverConnection(String vdb) throws Exception {
String url =
"jdbc:metamatrix:"+vdb+"@C:\\teiid\\teiid-6.2.0\\deploy.properties";
Class.forName("org.teiid.jdbc.TeiidDriver");
return DriverManager.getConnection(url,"admin", "teiid");
}
This perfectly works fine if is from local machine. HOw do i execute using driver Connection from remote system. Where and how do i specify the IP address.
and is it mandatory to have deploy.properties in the client system as i get error if i dont mention this
ds.setEmbeddedBootstrapFile(
"C:\\ramya\\teiid\\teiid-6.2.0\\deploy.properties"); using DataSource method. Please do clarify me in this regard also.
Thanks.
-
3. Re: Access Teiid Driver
rareddy Jul 20, 2010 12:49 PM (in response to beginnerram)Ramya,
Good information. Couple issues.
1) You can take the my previous suggestion and upgrade to 7.1 nightly and have ODBC support to create the DSN you needed.
2) If you would like to take the approach you mentioned in the email with OpenLink ODBC driver, that if fine too. However, you would need to obtain (purchase) license for the OpenLink driver to begin with. Next, you are starting the Teiid in "embedded" mode. You need to start and connect to Teiid in "Server" mode if your Client application and Teiid Server are not in the same VM. Here the Client application is OpenLink ODBC Driver.
Read more about different operating modes Teiid can be installed and started here. Using the server mode, you have URL is different where you do not need to specify the "deploy.properties", check out the links I have given.
Hope this helps.
Ramesh..
-
4. Re: Access Teiid Driver
beginnerram Jul 22, 2010 7:43 AM (in response to rareddy)I have downloaded 7.1 will check it and get back.Could you proivde me with any document if any for ODBC connection.
I went throught the link you have provided. I am still not clear on how to access vdb from remote machine.Right now i am using 6.2 version and these are the steps i followed for deloying Teiid runtime.
1. Extracted Teiid6-2.0-dist.zip to a folder.
2. Dropped the .VDB file created using Teiid designer in deploy folder
3.started run.bat
4. Accces the VDB from java class using the code previously mentioned.
I think this is running in server mode. is it? if not please let me know, what changes needs to be done as in Teiid Installation its mention deploy.properties needs to be configured but i am not sure what needs to be done.
-
5. Re: Access Teiid Driver
rareddy Jul 22, 2010 9:41 AM (in response to beginnerram)I have downloaded 7.1 will check it and get back.Could you proivde me with any document if any for ODBC connection
7.1 is not released, so you would have to download the source and build the project yourself. We did release 7.1 alpha-1, but ODBC feature is not in that release. We are going to release 7.1 alpha-2, by the end of the week or early next week, it will have the first cut of the ODBC. For document check the Client Developer's Guide for ODBC chapter.
I went throught the link you have provided. I am still not clear on how to access vdb from remote machine.Right now i am using 6.2 version and these are the steps i followed for deloying Teiid runtime.1. Extracted Teiid6-2.0-dist.zip to a folder.
2. Dropped the .VDB file created using Teiid designer in deploy folder
3.started run.bat
4. Accces the VDB from java class using the code previously mentioned.
I think this is running in server mode. is it? if not please let me know, what changes needs to be done as in Teiid Installation its mention deploy.properties needs to be configured but i am not sure what needs to be done.
Yes, up to the execution of the run.bat. Take look at the "teiid-examples" directory. In there there is an example called "simpleclient" which is generic JDBC client that connects to Teiid runtime using the TeiidDriver or TeiidDatasource. You need to connect to your VDB in the similar way.
Hope this helps.
Ramesh..
-
6. Re: Access Teiid Driver
beginnerram Aug 2, 2010 7:39 AM (in response to rareddy)Thanks. Ya the example you had meniond the "simpleclient" which is generic JDBC client perfectly works for Teiid 7.0 but i didnt know how to do it with Teiid 6.2.
-
7. Re: Access Teiid Driver
rareddy Aug 2, 2010 10:37 AM (in response to beginnerram)Ramya,
The same JDBC client will work with 6.2 version too. Just make sure you are using the correct jdbc-client libraries. The same example is also in the 6.2.
Ramesh..
-
8. Re: Access Teiid Driver
beginnerram Aug 3, 2010 6:00 AM (in response to rareddy)Actualy Ramesh, When i tried to run the JDBC Client for server mode in Teiid 6.2. I get the following error:
JDBC call from remote machine results in
Aug 3, 2010 3:26:48 PM org.teiid.jdbc.SocketProfile connect
SEVERE: Could not create connection
com.metamatrix.common.comm.exception.SingleInstanceCommunicationException
: Error establishing socket to host and port: 172.20.178.44:31000. Reason: Read timed out
JDBC call from same machine results in this error
Aug 3, 2010 3:14:27 PM com.metamatrix.common.comm.platform.socket.client.SocketServerInstanceImpl exceptionOccurred
WARNING: Unable to read: unexpected exception
java.net.SocketException
: Software caused connection abort: recv failed
Let me know if i need to change any properties in any configuration files. The JDBC code for connection is same as given in server mode .
Message was edited by: ramya r
-
9. Re: Access Teiid Driver
rareddy Aug 3, 2010 9:11 AM (in response to beginnerram)Is the server machine same when you used 7.0 and 6.2?
It seems like for some reason the Server is un-reachable in the 6.2 version. This may be because server used a different address on which it is listening for connections. Check the "deploy.properties" for the "server.bindAddress" and see what that property value is, this is server bind address your client is trying to connect. Use the same name on the URL for the connection.
Otherwise, try editng the "deploy.properties" and modify "server.bindAddress" property to "172.20.178.44" (which is your ip address from your message) and re-start. This may solve it.
Make sure there is only one version JDBC client jar in the classpath of your client.
Ramesh..
-
10. Re: Access Teiid Driver
beginnerram Aug 3, 2010 11:53 PM (in response to rareddy)Yes I used the same machine to test both 6.2 and 7.0. I had even tried changing the "server.bindAddress" to my machine IP but in vain. Though i am not able to run the JDBC client from remote machines for 6.2 , I am able to telnet 31000 of my machine from remote machines. Just attaching the Java class and deploy.properties for your reference.
-
deploy.properties.zip 2.3 KB
-
teiid.java.zip 597 bytes
-
-
11. Re: Access Teiid Driver
rareddy Aug 4, 2010 9:53 AM (in response to beginnerram)They both look fine. In the client, you are trying make connections through "driver" and as well as "data source". Typically in a given client application you only need one.
The only one thing I can think why this may be causing is, you may have firewall on your machine which is not letting any out side connections come in. So, either disable the firewall or open the port 31000 on your machine for external connections to come in. Note on Windows machines some antivirus systems come with firewalls. Also Windows itself comes with firewall activated. Check it out.
Ramesh..
-
12. Re: Access Teiid Driver
beginnerram Aug 5, 2010 12:34 AM (in response to rareddy)Hi Ramesh,
They both look fine. In the client, you are trying make connections through "driver" and as well as "data source". Typically in a given client application you only need one.
Ya . Was just checking with both type of connection. hoping anyone will work.
The only one thing I can think why this may be causing is, you may have firewall on your machine which is not letting any out side connections come in. So, either disable the firewall or open the port 31000 on your machine for external connections to come in. Note on Windows machines some antivirus systems come with firewalls. Also Windows itself comes with firewall activated. Check it out.
As i previously told, I tried to run both 6.2 and 7.0 from same machine and remote access works for Teiid 7.0 for the same port 31000 and the other point is I am able to Telnet my machine 31000 from remote machines .But i had checked the firewall setting and it is disabled. I am attaching the complete error logs . Attaching 3 error logs as follows:1. Log while accessing teiid using JDBC client from remote machine.
2. Log while accesssing teiid using JDBC client from host machine for the first time after restart of teiid 6.2
3. Log for second hit from host machine.
-
hostmachine_2.txt.zip 977 bytes
-
hostmachine_1.txt.zip 846 bytes
-
remote_error.txt.zip 1,021 bytes
-
-
13. Re: Access Teiid Driver
rareddy Aug 5, 2010 1:42 PM (in response to beginnerram)From the logs I can see that you are mixing up the JDBC client libraries for Teiid between both versions.
May be in your application classpath you have "teiid-7.1.0-client.jar", that is reason it works with 7.0 but not with 6.2.
For working with 6.2 you need "teiid-6.2.0-client.jar" in your classpath. Please double check your classpath.
Ramesh..