I'm having some transaction problems. I do not use JTA.
It is possible that I am starting a new transaction, although itβs already in the transaction, resulting in this exception:
java.lang.Thread.run(Thread.java:745)
org.postgresql.util.PSQLException: The connection attempt failed.
org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:233)
org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:144)
org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29)
org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21)
org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)
java.lang.Thread.run(Thread.java:745)
java.net.NoRouteToHostException: Cannot assign requested address
java.net.PlainSocketImpl.socketConnect(Native Method)
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
java.net.Socket.connect(Socket.java:589)
org.postgresql.core.PGStream.<init>(PGStream.java:61)
org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:109)
org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:144)
org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29)
org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21)
org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)
org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
org.postgresql.Driver.makeConnection(Driver.java:410)
org.postgresql.Driver.connect(Driver.java:280)
java.sql.DriverManager.getConnection(DriverManager.java:664)
java.sql.DriverManager.getConnection(DriverManager.java:208)
I read here that when the JTA is not in use, the way it pauses and creates a new transaction, a new connection is created, possibly explaining the above exception.
How does transaction suspension work in Spring?
My code must create and complete transactions before creating a new one, however I am not sure.
I have 8 threads filling data, and each thread in the loop creates a new transaction, runs, intercepts, again and again.
, "" ?
TransactionSynchronizationManager , , , , .
, , , .