[JBoss JIRA] Created: (TEIID-1407) Client code fails while inserting "lobs" in few situations
by Ramesh Reddy (JIRA)
Client code fails while inserting "lobs" in few situations
----------------------------------------------------------
Key: TEIID-1407
URL: https://issues.jboss.org/browse/TEIID-1407
Project: Teiid
Issue Type: Bug
Components: JDBC Driver
Affects Versions: 7.2, 7.1
Reporter: Ramesh Reddy
Assignee: Ramesh Reddy
Priority: Critical
There were few different lob issues surfaced while inserting a blob into database using the Teiid.
1) Using "javax.sql.rowset.serial.SerialBlob" to construct a blob, and using stmt.setBlob(int, blob) on prepared statement ended up with "broken pipe" error and terminated the client connection when the blob size was bigger than a 1 MB.
2) Using "org.teiid.core.types.ClobImpl" with constructor " new ClobImpl(int, InputStreamFactory)" resulted in the java.io.NotSerializableException: exception.
3) Using simple stmt.setBlob(int, inputstream), also ended up with same java.io.NotSerializableException: exception.
Currently only option is to use (1) and making sure that Objects are not bigger than 1 MB.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 8 months
[JBoss JIRA] Created: (TEIID-1412) Teiid should take care of salesforce query limits by itself
by Wanja Pernath (JIRA)
Teiid should take care of salesforce query limits by itself
-----------------------------------------------------------
Key: TEIID-1412
URL: https://issues.jboss.org/browse/TEIID-1412
Project: Teiid
Issue Type: Feature Request
Components: Salesforce Connector
Affects Versions: 7.2, 7.1.1, 7.3
Environment: Teiid 7.1.1 on EAP 5.1 with CXF
Reporter: Wanja Pernath
Assignee: Steven Hawkins
Salesforce has a query string limit of 10.000 chars. When Teiid is calculating and executing a query like this:
SELECT Opportunity where AccountId in (a,b,c,d,e,f,g,h,i)
It could extend the 10.000 chars limit of Salesforce. Right now teiid just stops with an Exception.
Expected behavior is to have teiid splitting up the condition into correct portions and to execute the above query n times to circumvent the limit:
SELECT Opportunity where AccountId in (a, b, c);
SELECT Opportunity where AccountId in (d, e, f);
SELECT Opportunity where AccountId in (g, h, i);
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 9 months
[JBoss JIRA] Created: (TEIID-1387) Restrict access of default port 31000 to JDBC and 31443 to Admin connections
by Ramesh Reddy (JIRA)
Restrict access of default port 31000 to JDBC and 31443 to Admin connections
----------------------------------------------------------------------------
Key: TEIID-1387
URL: https://issues.jboss.org/browse/TEIID-1387
Project: Teiid
Issue Type: Bug
Components: Server
Affects Versions: 7.1
Reporter: Ramesh Reddy
Assignee: Steven Hawkins
31000 is default connection port intended for JDBC connections. ex: jdbc:teiid<vdb>@mm://host:31000
31443 is default secured connection port intended for Admin connections ex: mms://<host>:31443
However, due to lack of restriction in the Teiid server, user can make a JDBC connection like "jdbc:teiid<vdb>@mms://host:31443", or make an Admin connection like "mm://localhost:31000" thus creates a confusion as to which form to use "mm" or "mms" and which port to use "31000" or "31443".
The reason 31443 originally created was to secure the Admin connections and to create a separate process thread pool as Admin calls are synchronous. Where are JDBC calls as asynchronous. Mixing them up might lead confusion and not to mention thread contention under heavy load. So, Teiid should restrict the use of 31000 to JDBC and 31443 to Admin traffic.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 9 months
[JBoss JIRA] Created: (TEIID-1451) Teiid does not handle failover correclty
by Boris Belovic (JIRA)
Teiid does not handle failover correclty
----------------------------------------
Key: TEIID-1451
URL: https://issues.jboss.org/browse/TEIID-1451
Project: Teiid
Issue Type: Bug
Components: Server
Affects Versions: 7.1
Environment: soaperf07 machine - soaperf07.mw.lab.eng.bos.redhat.com
JDK 1.6
RHEL 5
Reporter: Boris Belovic
Assignee: Steven Hawkins
I tried to simulate failover with Teiid. I have two SOA-P (ER7 build) nodes. When I killed first node, client correctly switched to second node. Then I re-started first node and killed second node. Client failed with the exception and did not switch back to first node.
Client was very simple - querying VDB in infinite loop and printing result to stdout.
What I did was:
1) I started both nodes, the started a client
2) Killed node no.1 with 'CTRL+Z' and 'kill -9 %1'
3) Client switched to node2
4) Re-started node no.1
5)Killed node no2 with 'CTRL+Z' and 'kill -9 %1'
6)Client failed with exception:
1 [InvalidSessionException]The specified session ID "null" is invalid. It cannot be found in the userbase.
[testng] at org.teiid.client.util.ExceptionUtil.convertException(ExceptionUtil.java:66)
[testng] at org.teiid.jboss.deployers.RuntimeEngineDeployer$2.invoke(RuntimeEngineDeployer.java:309)
[testng] at $Proxy294.executeRequest(Unknown Source)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[testng] at java.lang.reflect.Method.invoke(Method.java:597)
[testng] at org.teiid.transport.ServerWorkItem.run(ServerWorkItem.java:81)
[testng] at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:188)
[testng] at org.teiid.transport.SocketClientInstance.processMessagePacket(SocketClientInstance.java:160)
[testng] at org.teiid.transport.SocketClientInstance.receivedMessage(SocketClientInstance.java:149)
[testng] at org.teiid.transport.SSLAwareChannelHandler.messageReceived(SSLAwareChannelHandler.java:210)
[testng] at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:100)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
[testng] at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:144)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
[testng] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:302)
[testng] at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:317)
[testng] at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:299)
[testng] at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:216)
[testng] at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:540)
[testng] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
[testng] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
[testng] at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
[testng] at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:281)
[testng] at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:201)
[testng] at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[testng] at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)
[testng] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[testng] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[testng] at java.lang.Thread.run(Thread.java:619)
[testng] Caused by: [InvalidSessionException]The specified session ID "null" is invalid. It cannot be found in the userbase.
[testng] at org.teiid.services.SessionServiceImpl.getSessionInfo(SessionServiceImpl.java:307)
[testng] at org.teiid.services.SessionServiceImpl.validateSession(SessionServiceImpl.java:300)
[testng] at org.teiid.jboss.deployers.RuntimeEngineDeployer$2.invoke(RuntimeEngineDeployer.java:302)
[testng] ... 33 more
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 9 months
[JBoss JIRA] Created: (TEIID-1466) MySQL syntax error in cast from date to timestamp
by Claudio Venturini (JIRA)
MySQL syntax error in cast from date to timestamp
-------------------------------------------------
Key: TEIID-1466
URL: https://issues.jboss.org/browse/TEIID-1466
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 7.3
Environment: Teiid 7.3 deployed on Jboss AS 5.1.0 GA running on Ubuntu Server 10.04 LTS, MySQL 5.1.51 running on the same machine as JBoss
Reporter: Claudio Venturini
Assignee: Steven Hawkins
If you have a table in MySQL with a field declared of type DATE, queries which need to cast that field to a timestamp fail.
E.g. consider a MySQL table T with a field A of type DATE, and create the corresponding source model. If you submit the following two queries, the first works and the second fails.
{noformat}
SELECT A FROM T;
{noformat}
{noformat}
SELECT CAST(A AS TIMESTAMP) FROM T;
{noformat}
This happens because in the second case, Teiid pushes to MySQL a query like the following:
{noformat}
SELECT CAST(g_0.A AS TIMESTAMP) FROM T AS g_0;
{noformat}
That syntax is not valid because MySQL doesn't support casting to timestamp. I think that if it would be possible to cast to datetime instead of timestamp, the query will work. Unfortunately, Teiid doesn't support the datetime data type... so there's no solution.
I've found two workarounds, which prevent Teiid from pushing the cast to the source:
# The first is to change the data type at the source, that is, by declaring the A field as DATETIME instead of DATE. But this is not alway possible.
# The other is to declare the field of type dateTime or timestamp in the source model, while leaving the "Native Type" property to DATE
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 9 months