[teiid-issues] [JBoss JIRA] Commented: (TEIID-1648) Reading CLOB's from Teradata has issues and produces exception when stream is read from a different thread than what the clob was read from the resultset

Steven Hawkins (JIRA) jira-events at lists.jboss.org
Wed Jun 22 10:00:24 EDT 2011


    [ https://issues.jboss.org/browse/TEIID-1648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12610350#comment-12610350 ] 

Steven Hawkins commented on TEIID-1648:
---------------------------------------

If this is truly the case, then my vote is to KI this issue.  Something along the lines of:

Teradata lobs can only be read from an embedded client using with the default option to use the calling thread and in single threaded mode (transactional or userRequestSourceConcurrency=1).  Usage of Teradata lobs under any other configuration is unlikely to work.

Otherwise every Terardata lob Execution would have to either retain (leads to thread utilization issues) or reobtain (not generally possible, would require further customizing thread pooling logic) its executing thread to read the lob results.  Neither of those options seems worth the effort. 

> Reading CLOB's from Teradata has issues and produces exception when stream is read from a different thread than what the clob was read from the resultset
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TEIID-1648
>                 URL: https://issues.jboss.org/browse/TEIID-1648
>             Project: Teiid
>          Issue Type: Bug
>          Components: Misc. Connectors
>    Affects Versions: 7.4.1
>            Reporter: Van Halbert
>            Assignee: Steven Hawkins
>            Priority: Critical
>         Attachments: JDBCQueryServlet.java
>
>
> The initial problem was seen when running BQT testing against the teradata source.   However, when debugging, the exception was occurring on the initial client read of the stream.    After reading teradata jdbc driver doc, it talks about how its not thread safe and has issues when different threads are handling blobs/clobs.   Which lead me to do a simple client test.   2 tests where run run thru a servlet that obtains the teradata connenction via jndi.   Thet are as follows (attached is the sample code after the changes used for #2):
> 1.   simple execute/select:   execute select intkey, objectvalue from bqt1.smalla,  for each row, obtain the clob and read the stream (no exception is seen)
> 2.   execute select and read clob in a different thread:     a new thread is created, passing in the clob, thread is started and then proceeds to try to read the stream, exceptions are seen
> I'll attach the sample code.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the teiid-issues mailing list