[JBoss JIRA] Created: (TEIID-867) Possibly Teiid embedded clients (Designer) not pinging query engine, causing session timeouts
by Paul Nittel (JIRA)
Possibly Teiid embedded clients (Designer) not pinging query engine, causing session timeouts
---------------------------------------------------------------------------------------------
Key: TEIID-867
URL: https://jira.jboss.org/jira/browse/TEIID-867
Project: Teiid
Issue Type: Bug
Environment: fedora 10, Teiid Designer 6.2
Reporter: Paul Nittel
Assignee: Steven Hawkins
I started the Teiid 6.2 Designer, executed a VDB and ran a simple query. Then I waited about 35 minutes and finally clicked the Running Dude(tm) button. Instead of nicely arranged rows of data, I got:
Error 2009-09-30 14:41:48.107 Error processing query
com.metamatrix.jdbc.MMSQLException: Error trying to execute a statement select IntKey, StringKey, IntNum, StringNum, FloatNum, LongNum, DoubleNum, ByteNum, DateValue, TimeValue, TimestampValue, BooleanValue, CharValue, ShortValue, BigIntegerValue, BigDecimalValue, ObjectValue from "SP"."BQT2.SmallA"
.
at com.metamatrix.jdbc.MMSQLException.create(MMSQLException.java:116)
at com.metamatrix.jdbc.MMStatement.executeSql(MMStatement.java:414)
at com.metamatrix.jdbc.MMStatement.execute(MMStatement.java:318)
at net.sourceforge.sqlexplorer.sqlpanel.SqlExecProgress.processQuery(SqlExecProgress.java:192)
at net.sourceforge.sqlexplorer.sqlpanel.SqlExecProgress.run(SqlExecProgress.java:121)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: com.metamatrix.jdbc.MMSQLException: The specified session ID "2" is invalid. It cannot be found in the userbase.
at com.metamatrix.jdbc.MMSQLException.create(MMSQLException.java:123)
at com.metamatrix.jdbc.MMSQLException.create(MMSQLException.java:71)
at com.metamatrix.jdbc.MMStatement.sendRequestMessageAndWait(MMStatement.java:855)
at com.metamatrix.jdbc.MMStatement.executeSql(MMStatement.java:410)
... 4 more
Caused by: [MetaMatrixComponentException]The specified session ID "2" is invalid. It cannot be found in the userbase.
1 [InvalidSessionException]The specified session ID "2" is invalid. It cannot be found in the userbase.
at com.metamatrix.client.ExceptionUtil.convertException(ExceptionUtil.java:59)
at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:119)
at $Proxy24.executeRequest(Unknown Source)
at com.metamatrix.jdbc.MMStatement.sendRequestMessageAndWait(MMStatement.java:853)
... 5 more
Caused by: [InvalidSessionException]The specified session ID "2" is invalid. It cannot be found in the userbase.
at com.metamatrix.platform.security.session.service.SessionServiceImpl.getSessionInfo(SessionServiceImpl.java:295)
at com.metamatrix.platform.security.session.service.SessionServiceImpl.validateSession(SessionServiceImpl.java:287)
at org.teiid.transport.LocalServerConnection$1.invoke(LocalServerConnection.java:109)
... 7 more
The session timeout property is commented out in the workspace.properties file.
Steve Hawkins opined the embedded clients ae not pinging the server.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months
[JBoss JIRA] Created: (TEIID-754) LOCATE() function isn't being translated correctly by Oracle Connector
by Larry O'Leary (JIRA)
LOCATE() function isn't being translated correctly by Oracle Connector
----------------------------------------------------------------------
Key: TEIID-754
URL: https://jira.jboss.org/jira/browse/TEIID-754
Project: Teiid
Issue Type: Bug
Components: JDBC Connector
Affects Versions: 6.1.0, 6.0.0, 6.2.0
Reporter: Larry O'Leary
Assignee: Larry O'Leary
Fix For: 6.2.0
The rewritten/translated query for the MMx LOCATE() function to Oracle's instr() function does not appear to be correct.
SELECT locate(INTNUM, '234567890', 1) FROM SMALLA WHERE INTKEY = 26
Is being rewritten for Oracle as:
SELECT instr('234567890', to_char(SmallA.IntNum), 2) FROM SmallA WHERE SmallA.IntKey = 26
In this case Oracle will return 0 for instr() because Oracle starts at position 1.
The query should be:
SELECT instr('234567890', to_char(SmallA.IntNum), 1) FROM SmallA WHERE SmallA.IntKey = 26
Furthermore, if I pass a negative value to LOCATE() it appears we assume position 1. If the negative value is sent to Oracle, Oracle goes from the end of the string. We should prevent this (if not already).
In 5.5.1 the rewritten query is even different and may ore may not be correct. I have not checked 5.5.3/5.5.4 and/or Westport/Teiid.
Here are the test cases that should cover this issue:
public void testRewriteLocate() throws Exception {
String input = "SELECT locate(INTNUM, 'chimp', 1) FROM SMALLA"; //$NON-NLS-1$
String output = "SELECT instr('chimp', to_char(SmallA.IntNum), 1) FROM SmallA"; //$NON-NLS-1$
helpTestVisitor(getTestVDBPath(),
input,
new Integer(TranslatedCommand.EXEC_TYPE_QUERY),
output);
}
public void testRewriteLocate2() throws Exception {
String input = "SELECT locate(STRINGNUM, 'chimp') FROM SMALLA"; //$NON-NLS-1$
String output = "SELECT instr('chimp', SmallA.StringNum) FROM SmallA"; //$NON-NLS-1$
helpTestVisitor(getTestVDBPath(),
input,
new Integer(TranslatedCommand.EXEC_TYPE_QUERY),
output);
}
public void testRewriteLocate3() throws Exception {
String input = "SELECT locate(INTNUM, '234567890', 1) FROM SMALLA WHERE INTKEY = 26"; //$NON-NLS-1$
String output = "SELECT instr('234567890', to_char(SmallA.IntNum), 1) FROM SmallA WHERE SmallA.IntKey = 26"; //$NON-NLS-1$
helpTestVisitor(getTestVDBPath(),
input,
new Integer(TranslatedCommand.EXEC_TYPE_QUERY),
output);
}
public void testRewriteLocate4() throws Exception {
String input = "SELECT locate('c', 'chimp', 1) FROM SMALLA"; //$NON-NLS-1$
String output = "SELECT 1 FROM SmallA"; //$NON-NLS-1$
helpTestVisitor(getTestVDBPath(),
input,
new Integer(TranslatedCommand.EXEC_TYPE_QUERY),
output);
}
public void testRewriteLocate5() throws Exception {
String input = "SELECT locate(STRINGNUM, 'chimp', -5) FROM SMALLA"; //$NON-NLS-1$
String output = "SELECT instr('chimp', SmallA.StringNum, 1) FROM SmallA"; //$NON-NLS-1$
helpTestVisitor(getTestVDBPath(),
input,
new Integer(TranslatedCommand.EXEC_TYPE_QUERY),
output);
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months