[JBoss JIRA] (TEIID-4183) MSSQL JDBC driver invalidates kerberos ticket on Connection.close()
by Ramesh Reddy (JIRA)
[ https://issues.jboss.org/browse/TEIID-4183?page=com.atlassian.jira.plugin... ]
Ramesh Reddy resolved TEIID-4183.
---------------------------------
Fix Version/s: 9.1
(was: 9.0)
Resolution: Done
[~jdurani] Thanks. I had the previous one almost setup correctly but I forgot to copy a config file. I was able to finally duplicate the issue.
It came about, the way I was wrapping is correct, but it is alone is not sufficient. The subject I was using was not correct. Using the credential, one needs to create new subject using a security libraries, which will have a krb token for the delegated user. Then the credential matches with the user. I corrected it based on EAP implementation pattern, now it works as expected. See if you can build it locally and test (you can just copy the teiid-jboss-integration-8.12.5.jar) into the server.
> MSSQL JDBC driver invalidates kerberos ticket on Connection.close()
> -------------------------------------------------------------------
>
> Key: TEIID-4183
> URL: https://issues.jboss.org/browse/TEIID-4183
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 8.12.x, 8.7.5.6_2
> Reporter: Juraj Duráni
> Assignee: Ramesh Reddy
> Fix For: 9.1, 8.12.5
>
>
> MSSQL JDBC driver invalidate kerberos ticket on Connection.close() (related bugzilla \[1\]).
> If user creates kerberos connection, driver invalidates ticket on closing connection (Connection.close()). Therefore ticket cannot be re-used. EAP team creates a workaround for this by adding module option *wrapGSSCredential=true* with additional setting *credentialLifetime=-1* \[2, 3, 4, 5\]. This works for static kerberos authentication.
> However, passthrough authentication (org.teiid.jboss.PassthroughIdentityLoginModule) does not work, because passed ticket is not managed by EAP but by client.
> \[1\] https://bugzilla.redhat.com/show_bug.cgi?id=1097276
> \[2\] https://bugzilla.redhat.com/show_bug.cgi?id=1097276#c58
> \[3\] https://issues.jboss.org/browse/SECURITY-905
> \[4\] https://issues.jboss.org/browse/JBEAP-843
> \[5\] https://github.com/wildfly-security/jboss-negotiation/commit/0c7e06f58a79...
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 9 months
[JBoss JIRA] (TEIID-4192) If a column is blank the TEXTAGG function excludes it from the output
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4192?page=com.atlassian.jira.plugin... ]
Steven Hawkins closed TEIID-4192.
---------------------------------
> If a column is blank the TEXTAGG function excludes it from the output
> ----------------------------------------------------------------------
>
> Key: TEIID-4192
> URL: https://issues.jboss.org/browse/TEIID-4192
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.7.5.6_2
> Reporter: Debbie Steigner
> Assignee: Steven Hawkins
> Fix For: 9.0, 8.12.5, 8.7.7.6_2, 8.13.5
>
>
> If a column value is blank, it is excluding it in the result, causing incorrect output.
> TEXTAGG(FOR Last_Name,
> First_Name,
> Middle_initial,
> Currency_Code
> DELIMITER '|' QUOTE '"'
> )
> In the above example, if middle name is blank, then it should still show one empty column with "|" delimiter as shown below.
> Steigner|Debbie||USD
> But it returns output as excluding middle name since it is blank.
> Steigner|Debbie|USD
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 9 months
[JBoss JIRA] (TEIID-3685) org.teiid.padSpace does not affect to the "IN" operator
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-3685?page=com.atlassian.jira.plugin... ]
Steven Hawkins closed TEIID-3685.
---------------------------------
> org.teiid.padSpace does not affect to the "IN" operator
> -------------------------------------------------------
>
> Key: TEIID-3685
> URL: https://issues.jboss.org/browse/TEIID-3685
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.7.1
> Environment: JBoss DV 6.1.2
> Reporter: hisao furuichi
> Assignee: Steven Hawkins
> Priority: Critical
> Fix For: 9.0, 8.12.5, 8.7.7.6_2, 8.13.6, 9.0.1
>
> Attachments: datasert.csv, INTERNAL_TEST.zip, test.vdb
>
>
> org.teiid.padSpace does affect to "=" operator. But does not affect to "IN" operator.
> [data for a column named "id"]
> {noformat}
> "test1 "
> {noformat}
> ["=" operator] I can get a result
> {noformat}
> SELECT * FROM ViewModel.originalViewTable WHERE ViewModel.originalViewTable.id ='TEST1';
> {noformat}
> ["IN" operator] I can not get a result
> {noformat}
> SELECT * FROM ViewModel.originalViewTable WHERE ViewModel.originalViewTable.id IN ('TEST1', 'TEST2');
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 9 months
[JBoss JIRA] (TEIID-4265) Performance issue
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4265?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-4265:
---------------------------------------
Given that the plans are the same, this now becomes harder to look at. Is there a way to have access to the machines or a representative environment? Or would it be possible to provide the final query plan (showing node times) or the command logs from representative runs from each version?
> Performance issue
> -----------------
>
> Key: TEIID-4265
> URL: https://issues.jboss.org/browse/TEIID-4265
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Reporter: Juraj Duráni
> Assignee: Steven Hawkins
> Attachments: dv-tpch-2.zip, metadata_ddl.zip, plans_metadata.zip
>
>
> I can see reduce of performance for some kind of queries (see attachment).
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 9 months
[JBoss JIRA] (TEIID-4000) Better handling for large bulk inserts
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4000?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-4000.
-----------------------------------
Resolution: Done
Resolved with client side changes only to detect large parameter value sets and to split the batches into multiple executions.
> Better handling for large bulk inserts
> --------------------------------------
>
> Key: TEIID-4000
> URL: https://issues.jboss.org/browse/TEIID-4000
> Project: Teiid
> Issue Type: Enhancement
> Components: JDBC Driver
> Affects Versions: 8.7.1.6_2
> Environment: Red Hat JBoss Data Virtualization 6.2 patched to 6.2.2 on EAP6.4.0 patched to version 6.4.3,
> JBoss Developer Studio 8.1.0GA with Teiid Designer plugin 9.0.3.Final.v20150810-1438-B1157
> 64-bit Windows 7 environment
> Reporter: Steve Tran
> Assignee: Steven Hawkins
> Fix For: 9.1
>
>
> I'm running a JDBC batch insert statement with Teiid. Here's the error I'm getting when trying to insert 45000 records.
> {code}
> Exception in thread "main" org.teiid.jdbc.TeiidSQLException: Adjusted frame length exceeds 2097152: 6242128 - discarded
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:532)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:393)
> at org.teiid.jdbc.PreparedStatementImpl.executeBatch(PreparedStatementImpl.java:252)
> at com.imshealth.common.Tuning.JdbcDriver.writeData(JdbcDriver.java:166)
> at com.imshealth.common.Tuning.JdbcDriver.main(JdbcDriver.java:78)
> Caused by: org.jboss.netty.handler.codec.frame.TooLongFrameException: Adjusted frame length exceeds 2097152: 6242128 - discarded
> at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.fail(LengthFieldBasedFrameDecoder.java:417)
> at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.failIfNecessary(LengthFieldBasedFrameDecoder.java:405)
> at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:320)
> at org.teiid.transport.ObjectDecoder.decode(ObjectDecoder.java:108)
> at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:425)
> at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
> at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
> at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
> at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
> at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
> at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:328)
> at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
> at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:745)
> {code}
> Here's the Java method that creates the batch. Please ignore the lack of Java best practices. This is just test harness code to reproduce the error.
> {code}
> private static final String INSERT_TEIID = "insert into ...<tableA> values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
> private static final String INSERT_ORACLE = "insert into ...<tableA> values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
> private static void writeData(List<List<Object>> records) throws SQLException {
> PreparedStatement ps = connection.prepareStatement(USE_TEIID? INSERT_TEIID : INSERT_ORACLE)
>
> long start = System.currentTimeMillis();
> System.out.println("Building batch PreparedStatement");
> for(List<Object> o : records) {
> ps.setObject(1, o.get(0));
> ps.setObject(2, o.get(1));
> ps.setObject(3, o.get(2));
> ps.setObject(4, o.get(3));
> ps.setObject(5, o.get(4));
> ps.setObject(6, o.get(5));
> ps.setObject(7, o.get(6));
> ps.setObject(8, o.get(7));
> ps.setObject(9, o.get(8));
> ps.setObject(10, o.get(9));
> ps.setObject(11, o.get(10));
> ps.setObject(12, o.get(11));
> ps.setObject(13, o.get(12));
> ps.setObject(14, o.get(13));
> ps.setObject(15, o.get(14));
> ps.setObject(16, o.get(15));
> ps.setObject(17, o.get(16));
> ps.setString(18, o.get(17).toString().replace("]", ""));
> ps.addBatch();
> }
> System.out.println(String.format("Finished building batch PreparedStatement in %d milliseconds", System.currentTimeMillis() - start));
> start = System.currentTimeMillis();
> System.out.println("Executing batch");
> ps.executeBatch();
> System.out.println(String.format("Batch executed in %d milliseconds", System.currentTimeMillis() - start));
> ps.close();
> }
> {code}
> The protocol or the driver should be enhanced to prevent this exception.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 9 months
[JBoss JIRA] (TEIID-4000) Better handling for large bulk inserts
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-4000?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-4000:
----------------------------------
Component/s: (was: Server)
> Better handling for large bulk inserts
> --------------------------------------
>
> Key: TEIID-4000
> URL: https://issues.jboss.org/browse/TEIID-4000
> Project: Teiid
> Issue Type: Enhancement
> Components: JDBC Driver
> Affects Versions: 8.7.1.6_2
> Environment: Red Hat JBoss Data Virtualization 6.2 patched to 6.2.2 on EAP6.4.0 patched to version 6.4.3,
> JBoss Developer Studio 8.1.0GA with Teiid Designer plugin 9.0.3.Final.v20150810-1438-B1157
> 64-bit Windows 7 environment
> Reporter: Steve Tran
> Assignee: Steven Hawkins
> Fix For: 9.1
>
>
> I'm running a JDBC batch insert statement with Teiid. Here's the error I'm getting when trying to insert 45000 records.
> {code}
> Exception in thread "main" org.teiid.jdbc.TeiidSQLException: Adjusted frame length exceeds 2097152: 6242128 - discarded
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
> at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:532)
> at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:393)
> at org.teiid.jdbc.PreparedStatementImpl.executeBatch(PreparedStatementImpl.java:252)
> at com.imshealth.common.Tuning.JdbcDriver.writeData(JdbcDriver.java:166)
> at com.imshealth.common.Tuning.JdbcDriver.main(JdbcDriver.java:78)
> Caused by: org.jboss.netty.handler.codec.frame.TooLongFrameException: Adjusted frame length exceeds 2097152: 6242128 - discarded
> at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.fail(LengthFieldBasedFrameDecoder.java:417)
> at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.failIfNecessary(LengthFieldBasedFrameDecoder.java:405)
> at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:320)
> at org.teiid.transport.ObjectDecoder.decode(ObjectDecoder.java:108)
> at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:425)
> at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
> at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
> at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
> at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
> at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
> at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:328)
> at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
> at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:745)
> {code}
> Here's the Java method that creates the batch. Please ignore the lack of Java best practices. This is just test harness code to reproduce the error.
> {code}
> private static final String INSERT_TEIID = "insert into ...<tableA> values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
> private static final String INSERT_ORACLE = "insert into ...<tableA> values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
> private static void writeData(List<List<Object>> records) throws SQLException {
> PreparedStatement ps = connection.prepareStatement(USE_TEIID? INSERT_TEIID : INSERT_ORACLE)
>
> long start = System.currentTimeMillis();
> System.out.println("Building batch PreparedStatement");
> for(List<Object> o : records) {
> ps.setObject(1, o.get(0));
> ps.setObject(2, o.get(1));
> ps.setObject(3, o.get(2));
> ps.setObject(4, o.get(3));
> ps.setObject(5, o.get(4));
> ps.setObject(6, o.get(5));
> ps.setObject(7, o.get(6));
> ps.setObject(8, o.get(7));
> ps.setObject(9, o.get(8));
> ps.setObject(10, o.get(9));
> ps.setObject(11, o.get(10));
> ps.setObject(12, o.get(11));
> ps.setObject(13, o.get(12));
> ps.setObject(14, o.get(13));
> ps.setObject(15, o.get(14));
> ps.setObject(16, o.get(15));
> ps.setObject(17, o.get(16));
> ps.setString(18, o.get(17).toString().replace("]", ""));
> ps.addBatch();
> }
> System.out.println(String.format("Finished building batch PreparedStatement in %d milliseconds", System.currentTimeMillis() - start));
> start = System.currentTimeMillis();
> System.out.println("Executing batch");
> ps.executeBatch();
> System.out.println(String.format("Batch executed in %d milliseconds", System.currentTimeMillis() - start));
> ps.close();
> }
> {code}
> The protocol or the driver should be enhanced to prevent this exception.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 9 months