You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Niels Beekman <n....@wis.nl> on 2006/12/29 08:47:06 UTC
RE: Multi threaded app gets java.netBindConnection: Address already in use: connect
Either you are not releasing resources properly or the amount of
concurrent threads exceeds the value of
${geneDatasetDb.maximumActiveConnections}.
Niels
________________________________
From: Peter Andrews [mailto:peter.andrews@Dartmouth.EDU]
Sent: donderdag 28 december 2006 20:16
To: user-java@ibatis.apache.org
Subject: Multi threaded app gets java.netBindConnection: Address already
in use: connect
Hello,
I am using iBATIS to retrieve data on multiple threads simultaneously. I
have experienced this problem with the svn 2.3.0 .xxx version and also
the 2.2.0 GA release.
I get the error if I use DBCP or SIMPLE for my datasource. The value of
'commitRequired' has no effect on whether the exception occurs. Once the
first exception occurs, there are dozens.
<transactionManager type="JDBC" commitRequired="true">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL"
value="jdbc:mysql://${geneDatasetDb.hostAndPort
<mysql://$%7bgeneDatasetDb.hostAndPort> }/geneDataset"/>
<property name="JDBC.Username" value="${geneDatasetDb.username}"/>
<property name="JDBC.Password" value="${geneDatasetDb.password}"/>
<property name="Pool.MaximumActiveConnections"
value="${geneDatasetDb.maximumActiveConnections}"/>
</dataSource>
</transactionManager>
Here is the stack trace:
com.mysql.jdbc.CommunicationsException: Communications link failure due
to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.BindException: Address already in use: connect
STACKTRACE:
java.net.SocketException: java.net.BindException: Address already in
use: connect
at
com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:
156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2666)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:26
6)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at
com.ibatis.common.jdbc.SimpleDataSource.popConnection(SimpleDataSource.j
ava:580)
at
com.ibatis.common.jdbc.SimpleDataSource.getConnection(SimpleDataSource.j
ava:222)
at
com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTrans
action.java:48)
at
com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(
JdbcTransaction.java:89)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQuery
ForObject(GeneralStatement.java:104)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlM
apExecutorDelegate.java:565)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlM
apExecutorDelegate.java:540)
at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSes
sionImpl.java:106)
at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClie
ntImpl.java:84)
at
org.epistasis.db.SqlMapClientWrapper.queryForObject(SqlMapClientWrapper.
java:60)
at
org.epistasis.db.geneAnnotation.GeneAnnotationDbAccess.getGeneById(GeneA
nnotationDbAccess.java:113)
at org.epistasis.db.geneDataset.Dataset$4.run(Dataset.java:631)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:675)
at java.lang.Thread.run(Thread.java:595)
** END NESTED EXCEPTION **
Anyone have ideas/suggestions?
Thanks,
Peter
--
--------------
Peter Andrews
Software Engineer
Dartmouth Medical School
Computational Genetics
Rubin 707
(603) 653-3598