[JBoss JIRA] (TEIID-3786) Cache hint TTL invalidates cache before the reload/refresh is complete
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/TEIID-3786?page=com.atlassian.jira.plugin... ]
RH Bugzilla Integration updated TEIID-3786:
-------------------------------------------
Bugzilla References: https://bugzilla.redhat.com/show_bug.cgi?id=1274860
Bugzilla Update: Perform
> Cache hint TTL invalidates cache before the reload/refresh is complete
> ----------------------------------------------------------------------
>
> Key: TEIID-3786
> URL: https://issues.jboss.org/browse/TEIID-3786
> Project: Teiid
> Issue Type: Bug
> Components: Server
> Affects Versions: 8.7.1.6_2
> Reporter: Debbie Steigner
> Assignee: Steven Hawkins
>
> Cache hint TTL invalidates cache before the reload/refresh is complete, if the reload fails so do the user queries because the cache is invalid.
> According to the Caching documentation when using Cache Hint:
> Important
> In this example, the user query started a new refresh/load job, however it did not invalidate the current results. So, in the mean time while the load/refresh job is running, the user queries continue to return the expired results. When the refresh/reload job completes, then the old results will be flushed and new results will be used for any future user requests.
> The main idea here is not to block user queries while the refresh job is running. This is mainly due to the fact that you can not predict how long a refresh job going to run.
> From the customer logs, you can see that the Matview is invalidated before it reloads[1], so if the reload fails for some reason then the user queries fail. I assume this is a bug not a documentation error
> [1]
> 11:16:08,073 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 invalidating
> 11:16:08,074 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 setting matState to NEEDS_LOADING null 1445613368074 old values LOADED false
> 11:16:08,074 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 invalidating
> 11:16:08,074 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 setting matState to LOADING null 1445613368074 old values NEEDS_LOADING false
> 11:16:08,074 INFO [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) TEIID30013 Loading materialized view table #MAT_MBDVCONF.CLIENT
> 11:16:08,076 DEBUG [org.teiid.CONNECTOR] (Worker3_QueryProcessorQueue9) /RMoMwxJGpmf.1.12.3 Processing NEW request: SELECT g_0.ID, g_0.NAME, g_0.CREATE_DT FROM mbdvconf_sm.CLIENT AS g_0
> 11:16:26,027 WARN [org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory] (Worker3_QueryProcessorQueue9) Destroying connection that is not valid, due to the following exception: oracle.jdbc.driver.T4CConnection@6d07b3ed: java.sql.SQLException: pingDatabase failed status=-1
> at org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker.isValidConnection(OracleValidConnectionChecker.java:68)
> at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnectionFactory.isValidConnection(BaseWrapperManagedConnectionFactory.java:1100)
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 3 months
[JBoss JIRA] (TEIID-3786) Cache hint TTL invalidates cache before the reload/refresh is complete
by Debbie Steigner (JIRA)
Debbie Steigner created TEIID-3786:
--------------------------------------
Summary: Cache hint TTL invalidates cache before the reload/refresh is complete
Key: TEIID-3786
URL: https://issues.jboss.org/browse/TEIID-3786
Project: Teiid
Issue Type: Bug
Components: Server
Affects Versions: 8.7.1.6_2
Reporter: Debbie Steigner
Assignee: Steven Hawkins
Cache hint TTL invalidates cache before the reload/refresh is complete, if the reload fails so do the user queries because the cache is invalid.
According to the Caching documentation when using Cache Hint:
Important
In this example, the user query started a new refresh/load job, however it did not invalidate the current results. So, in the mean time while the load/refresh job is running, the user queries continue to return the expired results. When the refresh/reload job completes, then the old results will be flushed and new results will be used for any future user requests.
The main idea here is not to block user queries while the refresh job is running. This is mainly due to the fact that you can not predict how long a refresh job going to run.
>From the customer logs, you can see that the Matview is invalidated before it reloads[1], so if the reload fails for some reason then the user queries fail. I assume this is a bug not a documentation error
[1]
11:16:08,073 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 invalidating
11:16:08,074 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 setting matState to NEEDS_LOADING null 1445613368074 old values LOADED false
11:16:08,074 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 invalidating
11:16:08,074 DEBUG [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) org.teiid.query.tempdata.GlobalTableStoreImpl$MatTableInfo@3be0afa0 setting matState to LOADING null 1445613368074 old values NEEDS_LOADING false
11:16:08,074 INFO [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) TEIID30013 Loading materialized view table #MAT_MBDVCONF.CLIENT
11:16:08,076 DEBUG [org.teiid.CONNECTOR] (Worker3_QueryProcessorQueue9) /RMoMwxJGpmf.1.12.3 Processing NEW request: SELECT g_0.ID, g_0.NAME, g_0.CREATE_DT FROM mbdvconf_sm.CLIENT AS g_0
11:16:26,027 WARN [org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory] (Worker3_QueryProcessorQueue9) Destroying connection that is not valid, due to the following exception: oracle.jdbc.driver.T4CConnection@6d07b3ed: java.sql.SQLException: pingDatabase failed status=-1
at org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker.isValidConnection(OracleValidConnectionChecker.java:68)
at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnectionFactory.isValidConnection(BaseWrapperManagedConnectionFactory.java:1100)
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 3 months
[JBoss JIRA] (TEIID-3785) PostgreSQL - Large Objects may not be used in auto-commit mode.
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-3785?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-3785.
-----------------------------------
Fix Version/s: 8.12.1
8.13
Resolution: Done
Switched to using streams for lob bindings. We'll still use the get lob methods.
> PostgreSQL - Large Objects may not be used in auto-commit mode.
> ---------------------------------------------------------------
>
> Key: TEIID-3785
> URL: https://issues.jboss.org/browse/TEIID-3785
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 8.11.3, 8.11.5
> Reporter: Tom Arnold
> Assignee: Steven Hawkins
> Fix For: 8.12.1, 8.13
>
> Attachments: cola_markets.sql, cola_mkt.gif, Spatial-vdb.xml
>
>
> Using Teiid 8.11.5 with PostgreSQL 9.4 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log.
> {code}
> select mkt_id from cola_markets where st_intersects(shape, st_geomfromtext('point(9 8)'));
> {code}
> {code}
> 20:29:06,694 WARN [org.teiid.CONNECTOR] (Worker3_QueryProcessorQueue72) uL81ZQ6FDlJL Connector worker process failed for atomic-request=uL81ZQ6FDlJL.22.0.8: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@223261cf'] SQL: SELECT g_0."mkt_id" FROM "public"."cola_markets" AS g_0 WHERE st_intersects(g_0."shape", st_geomfromwkb(?, 0)) = TRUE]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.5.jar:8.11.5]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_79]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_79]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_79]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_79]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy46.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_79]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]
> Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:239)
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:226)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3048)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1836)
> at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
> at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
> at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1868)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.5.jar:8.11.5]
> at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.5.jar:8.11.5]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.5.jar:8.11.5]
> ... 18 more
> 20:29:06,720 WARN [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue73) uL81ZQ6FDlJL TEIID30020 Processing exception for request uL81ZQ6FDlJL.22 'TEIID30504 postgres: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@223261cf'] SQL: SELECT g_0."mkt_id" FROM "public"."cola_markets" AS g_0 WHERE st_intersects(g_0."shape", st_geomfromwkb(?, 0)) = TRUE]'. Originally TeiidProcessingException 'Large Objects may not be used in auto-commit mode.' LargeObjectManager.java:239. Enable more detailed logging to see the entire stacktrace.
> {code}
> It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 3 months
[JBoss JIRA] (TEIID-3785) PostgreSQL - Large Objects may not be used in auto-commit mode.
by Tom Arnold (JIRA)
[ https://issues.jboss.org/browse/TEIID-3785?page=com.atlassian.jira.plugin... ]
Tom Arnold updated TEIID-3785:
------------------------------
Description:
Using Teiid 8.11.5 with PostgreSQL 9.4 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log.
{code}
select mkt_id from cola_markets where st_intersects(shape, st_geomfromtext('point(9 8)'));
{code}
{code}
20:29:06,694 WARN [org.teiid.CONNECTOR] (Worker3_QueryProcessorQueue72) uL81ZQ6FDlJL Connector worker process failed for atomic-request=uL81ZQ6FDlJL.22.0.8: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@223261cf'] SQL: SELECT g_0."mkt_id" FROM "public"."cola_markets" AS g_0 WHERE st_intersects(g_0."shape", st_geomfromwkb(?, 0)) = TRUE]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.5.jar:8.11.5]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_79]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_79]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_79]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_79]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy46.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_79]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:239)
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:226)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3048)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1836)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1868)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.5.jar:8.11.5]
at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.5.jar:8.11.5]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.5.jar:8.11.5]
... 18 more
20:29:06,720 WARN [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue73) uL81ZQ6FDlJL TEIID30020 Processing exception for request uL81ZQ6FDlJL.22 'TEIID30504 postgres: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@223261cf'] SQL: SELECT g_0."mkt_id" FROM "public"."cola_markets" AS g_0 WHERE st_intersects(g_0."shape", st_geomfromwkb(?, 0)) = TRUE]'. Originally TeiidProcessingException 'Large Objects may not be used in auto-commit mode.' LargeObjectManager.java:239. Enable more detailed logging to see the entire stacktrace.
{code}
It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
was:
Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
{code}
select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
{code}
{code}
16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed
for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004
Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id"
AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy87.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
... 17 more
{code}
It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
> PostgreSQL - Large Objects may not be used in auto-commit mode.
> ---------------------------------------------------------------
>
> Key: TEIID-3785
> URL: https://issues.jboss.org/browse/TEIID-3785
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 8.11.3, 8.11.5
> Reporter: Tom Arnold
> Assignee: Steven Hawkins
> Attachments: cola_markets.sql, cola_mkt.gif, Spatial-vdb.xml
>
>
> Using Teiid 8.11.5 with PostgreSQL 9.4 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log.
> {code}
> select mkt_id from cola_markets where st_intersects(shape, st_geomfromtext('point(9 8)'));
> {code}
> {code}
> 20:29:06,694 WARN [org.teiid.CONNECTOR] (Worker3_QueryProcessorQueue72) uL81ZQ6FDlJL Connector worker process failed for atomic-request=uL81ZQ6FDlJL.22.0.8: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@223261cf'] SQL: SELECT g_0."mkt_id" FROM "public"."cola_markets" AS g_0 WHERE st_intersects(g_0."shape", st_geomfromwkb(?, 0)) = TRUE]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.5.jar:8.11.5]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_79]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_79]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_79]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_79]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy46.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_79]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]
> Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:239)
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:226)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3048)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1836)
> at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
> at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
> at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1868)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.5.jar:8.11.5]
> at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.5.jar:8.11.5]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.5.jar:8.11.5]
> ... 18 more
> 20:29:06,720 WARN [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue73) uL81ZQ6FDlJL TEIID30020 Processing exception for request uL81ZQ6FDlJL.22 'TEIID30504 postgres: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@223261cf'] SQL: SELECT g_0."mkt_id" FROM "public"."cola_markets" AS g_0 WHERE st_intersects(g_0."shape", st_geomfromwkb(?, 0)) = TRUE]'. Originally TeiidProcessingException 'Large Objects may not be used in auto-commit mode.' LargeObjectManager.java:239. Enable more detailed logging to see the entire stacktrace.
> {code}
> It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 3 months
[JBoss JIRA] (TEIID-3785) PostgreSQL - Large Objects may not be used in auto-commit mode.
by Tom Arnold (JIRA)
[ https://issues.jboss.org/browse/TEIID-3785?page=com.atlassian.jira.plugin... ]
Tom Arnold updated TEIID-3785:
------------------------------
Attachment: Spatial-vdb.xml
cola_mkt.gif
cola_markets.sql
> PostgreSQL - Large Objects may not be used in auto-commit mode.
> ---------------------------------------------------------------
>
> Key: TEIID-3785
> URL: https://issues.jboss.org/browse/TEIID-3785
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 8.11.3, 8.11.5
> Reporter: Tom Arnold
> Assignee: Steven Hawkins
> Attachments: cola_markets.sql, cola_mkt.gif, Spatial-vdb.xml
>
>
> Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
> {code}
> select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
> {code}
> {code}
> 16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed
> for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004
> Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id"
> AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
> at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy87.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
> Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
> at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
> at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
> at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
> ... 17 more
> {code}
> It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 3 months
[JBoss JIRA] (TEIID-3785) PostgreSQL - Large Objects may not be used in auto-commit mode.
by Tom Arnold (JIRA)
[ https://issues.jboss.org/browse/TEIID-3785?page=com.atlassian.jira.plugin... ]
Tom Arnold updated TEIID-3785:
------------------------------
Affects Version/s: 8.11.5
> PostgreSQL - Large Objects may not be used in auto-commit mode.
> ---------------------------------------------------------------
>
> Key: TEIID-3785
> URL: https://issues.jboss.org/browse/TEIID-3785
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 8.11.3, 8.11.5
> Reporter: Tom Arnold
> Assignee: Steven Hawkins
>
> Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
> {code}
> select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
> {code}
> {code}
> 16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed
> for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004
> Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id"
> AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
> at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy87.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
> Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
> at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
> at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
> at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
> ... 17 more
> {code}
> It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 3 months
[JBoss JIRA] (TEIID-3785) PostgreSQL - Large Objects may not be used in auto-commit mode.
by Tom Arnold (JIRA)
[ https://issues.jboss.org/browse/TEIID-3785?page=com.atlassian.jira.plugin... ]
Tom Arnold updated TEIID-3785:
------------------------------
Description:
Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
{code}
select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
{code}
{code}
16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed
for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004
Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id"
AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy87.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
... 17 more
{code}
It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
was:
Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
{code}
select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
{code}
{code}
16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id" AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy87.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
... 17 more
{code}
It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
> PostgreSQL - Large Objects may not be used in auto-commit mode.
> ---------------------------------------------------------------
>
> Key: TEIID-3785
> URL: https://issues.jboss.org/browse/TEIID-3785
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 8.11.3
> Reporter: Tom Arnold
> Assignee: Steven Hawkins
>
> Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
> {code}
> select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
> {code}
> {code}
> 16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed
> for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004
> Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id"
> AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
> at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy87.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
> Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
> at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
> at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
> at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
> ... 17 more
> {code}
> It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 3 months
[JBoss JIRA] (TEIID-3785) PostgreSQL - Large Objects may not be used in auto-commit mode.
by Tom Arnold (JIRA)
[ https://issues.jboss.org/browse/TEIID-3785?page=com.atlassian.jira.plugin... ]
Tom Arnold updated TEIID-3785:
------------------------------
Description:
Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
{code}
select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
{code}
{code}
16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id" AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy87.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
... 17 more
{code}
It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
was:
Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
{code}
select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
{code}
{noformat}
16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id" AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy87.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
... 17 more
{noformat}
It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
> PostgreSQL - Large Objects may not be used in auto-commit mode.
> ---------------------------------------------------------------
>
> Key: TEIID-3785
> URL: https://issues.jboss.org/browse/TEIID-3785
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 8.11.3
> Reporter: Tom Arnold
> Assignee: Steven Hawkins
>
> Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
> {code}
> select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
> {code}
> {code}
> 16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id" AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
> at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy87.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
> Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
> at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
> at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
> at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
> ... 17 more
> {code}
> It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 3 months
[JBoss JIRA] (TEIID-3785) PostgreSQL - Large Objects may not be used in auto-commit mode.
by Tom Arnold (JIRA)
[ https://issues.jboss.org/browse/TEIID-3785?page=com.atlassian.jira.plugin... ]
Tom Arnold updated TEIID-3785:
------------------------------
Description:
Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
{code}
select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
{code}
{noformat}
16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id" AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy87.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
... 17 more
{noformat}
It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
was:
Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
{code}
select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
{code}
{code}
16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id" AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy87.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
... 17 more
{code}
It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
> PostgreSQL - Large Objects may not be used in auto-commit mode.
> ---------------------------------------------------------------
>
> Key: TEIID-3785
> URL: https://issues.jboss.org/browse/TEIID-3785
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 8.11.3
> Reporter: Tom Arnold
> Assignee: Steven Hawkins
>
> Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
> {code}
> select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
> {code}
> {noformat}
> 16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id" AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
> at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy87.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
> Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
> at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
> at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
> at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
> ... 17 more
> {noformat}
> It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 3 months
[JBoss JIRA] (TEIID-3785) PostgreSQL - Large Objects may not be used in auto-commit mode.
by Tom Arnold (JIRA)
[ https://issues.jboss.org/browse/TEIID-3785?page=com.atlassian.jira.plugin... ]
Tom Arnold updated TEIID-3785:
------------------------------
Description:
Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
{code}
select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
{code}
{code}
16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id" AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE LIMIT 3001]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy87.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
... 17 more
{code}
It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
was:
Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log and 0 results to be returned.
{code}
select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
{code}
{code}
16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id" AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE LIMIT 3001]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
at com.sun.proxy.$Proxy87.execute(Unknown Source)
at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
... 17 more
{code}
It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
> PostgreSQL - Large Objects may not be used in auto-commit mode.
> ---------------------------------------------------------------
>
> Key: TEIID-3785
> URL: https://issues.jboss.org/browse/TEIID-3785
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 8.11.3
> Reporter: Tom Arnold
> Assignee: Steven Hawkins
>
> Using Teiid 8.11.3 with PostgreSQL 9.1 and PostGIS. Doing a simple query with a spatial filter causes this stacktrace in the log, and 0 results to be returned (probably because I have partialResultsMode enabled).
> {code}
> select item_id from items where st_interesects(footprint, st_geomfromtext('point(0 0)',4326));
> {code}
> {code}
> 16:42:10,222 WARN [org.teiid.CONNECTOR] (Worker19_QueryProcessorQueue487) 8I60feXXYm5f Connector worker process failed for atomic-request=8I60feXXYm5f.166.0.82: org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: ['javax.sql.rowset.serial.SerialBlob@4fe24349'] SQL: SELECT g_0."item_id" AS c_0 FROM "foo"."items" AS g_0 WHERE st_intersects(g_0."footprint", st_geomfromwkb(?, 4326)) = TRUE LIMIT 3001]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:341)
> at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source) [:1.7.0_85]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_85]
> at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> at com.sun.proxy.$Proxy87.execute(Unknown Source)
> at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110)
> at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_85]
> at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:276)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_85]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_85]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
> Caused by: org.postgresql.util.PSQLException: Large Objects may not be used in auto-commit mode.
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:301)
> at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:288)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setBlob(AbstractJdbc2Statement.java:3051)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1832)
> at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject(AbstractJdbc3Statement.java:1481)
> at org.postgresql.jdbc3g.AbstractJdbc3gStatement.setObject(AbstractJdbc3gStatement.java:46)
> at org.postgresql.jdbc4.AbstractJdbc4Statement.setObject(AbstractJdbc4Statement.java:70)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject(AbstractJdbc2Statement.java:1864)
> at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.setObject(WrappedPreparedStatement.java:957)
> at org.teiid.translator.jdbc.JDBCExecutionFactory.bindValue(JDBCExecutionFactory.java:936) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCBaseExecution.bind(JDBCBaseExecution.java:107) [translator-jdbc-8.11.3.jar:8.11.3]
> at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:122) [translator-jdbc-8.11.3.jar:8.11.3]
> ... 17 more
> {code}
> It looks like the issue is binding the WKB blob. Overriding the PostgreSQL translator and setting {{useStreamsForLobs()}} to {{true}} seems to fix the issue.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
9 years, 3 months