Redshift: getting "Can't save current transaction state." error when importing .csv

Hey guys -

 

I'm trying to use the 'Import from File...' function to upload a flattened .csv file into a staging table on my Redshift cluster. The tool parses the file fine, but I get the error:

"Can't save current transaction state. Check connection and database settings and try again."

Happens on both Linux & Windows versions of DataGrip. Any ideas on what I'm doing wrong??

0

Hi,

Could you specify your Redshift driver and specified dialect for the driver?

Also, IDE logs could help us to find out more about the problem.

Thank you.

0
Avatar
Permanently deleted user

Hi Vasily -

I am using the JDBC 4.2–compatible driver: https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC42-1.2.1.1001.jar.

The class name for this driver is com.amazon.redshift.jdbc42.Driver. SQL dialect is Postgres (as that's what AWS Redshift utilizes)

I downloaded it from here: http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html

In my log file (idea.log), I see the following (emphasis bold): 

2017-02-13 11:16:14,529 [610001595] INFO - ase.dataSource.LocalDataSource - Connecting as: raybao
2017-02-13 11:16:14,529 [610001595] INFO - ase.dataSource.LocalDataSource - Connecting to: jdbc:redshift://tesoro-bim-prod.ckqxejo07x0g.us-east-1.redshift.amazonaws.com:8195/tesorobim?tcpKeepAlive=true&TCPKeepAliveMinutes=5
2017-02-13 11:16:14,594 [610001660] INFO - .diagnostic.PerformanceWatcher - Pushing properties took 1ms; general responsiveness: ok; EDT responsiveness: ok
2017-02-13 11:16:14,595 [610001661] INFO - .diagnostic.PerformanceWatcher - Indexable file iteration took 1ms; general responsiveness: ok; EDT responsiveness: ok
2017-02-13 11:16:21,367 [610008433] WARN - AbstractTransactionStateHolder - Batches: 0
2017-02-13 11:16:21,367 [610008433] WARN - AbstractTransactionStateHolder - Can't save current transaction state. Check connection and database settings and try again
2017-02-13 11:16:21,367 [610008433] WARN - AbstractTransactionStateHolder - [Amazon][JDBC](11700) Cannot set Savepoint while Connection is in auto-commit mode.
java.sql.SQLException: [Amazon][JDBC](11700) Cannot set Savepoint while Connection is in auto-commit mode.
at com.amazon.exceptions.ExceptionConverter.toSQLException(Unknown Source)
at com.amazon.jdbc.common.SConnection.setSavepoint(Unknown Source)
at com.intellij.database.remote.jdbc.impl.RemoteConnectionImpl.setSavepoint(RemoteConnectionImpl.java:348)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:227)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:179)
at com.sun.proxy.$Proxy95.setSavepoint(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.execution.rmi.RemoteUtil.invokeRemote(RemoteUtil.java:169)
at com.intellij.execution.rmi.RemoteUtil.access$300(RemoteUtil.java:36)
at com.intellij.execution.rmi.RemoteUtil$RemoteInvocationHandler.invoke(RemoteUtil.java:274)
at com.sun.proxy.$Proxy96.setSavepoint(Unknown Source)
at com.intellij.database.dbimport.state.AbstractTransactionStateHolder$1.run(AbstractTransactionStateHolder.java:79)
at com.intellij.database.dbimport.state.AbstractTransactionStateHolder.run(AbstractTransactionStateHolder.java:128)
at com.intellij.database.dbimport.state.AbstractTransactionStateHolder.checkoutLastState(AbstractTransactionStateHolder.java:76)
at com.intellij.database.dbimport.state.DefaultTransactionStateHolder.executed(DefaultTransactionStateHolder.java:20)
at com.intellij.database.dbimport.PreparedQuery.statementCompleted(PreparedQuery.java:30)
at com.intellij.database.dbimport.QueryWithParameters.execute(QueryWithParameters.java:51)
at com.intellij.database.dbimport.PreparedQuery.execute(PreparedQuery.java:14)
at com.intellij.database.dbimport.ImportDatabaseModifier$ImportExecutor.execute(ImportDatabaseModifier.java:103)
at com.intellij.database.view.AbstractDatabaseModifier$1.run(AbstractDatabaseModifier.java:103)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:710)
at com.intellij.openapi.progress.impl.CoreProgressManager$3.run(CoreProgressManager.java:179)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:568)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:519)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:164)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:128)
at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:309)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

 

However, I tried disabling the check-box for "auto-commit" in my connection properties and I'm still faced with the same issue. Any ideas?

 

 

0

Hi,

It seems to be fixed in DataGrip 2017.1 EAP. Could you try to reproduce the problem in EAP?

Thank you.

0

I'm having the same error using DataGrip 2017.3.3

DataGrip 2017.3.3
Build #DB-173.4127.18, built on December 19, 2017
Licensed to ****************************
Subscription is active until November 15, 2018
JRE: 1.8.0_152-release-1024-b8 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1

 

Same process in pgAdmin works without a problem:

0

@ Theraybao  Hi,
Could you create Redshift specific data source https://blog.jetbrains.com/datagrip/2017/07/27/datagrip-2017-2-released/#newdbms and check it again? 
Could you provide sample table DDL and sample csv file to reproduce the problem?
Thank you.

0

请先登录再写评论。