Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connection pool deadlocks in multithreaded environment [JDBC219] #268

Closed
firebird-automations opened this issue Dec 27, 2011 · 6 comments
Closed

Comments

@firebird-automations
Copy link

Submitted by: Artem Farafonov (farafonoff)

Duplicates JDBC93

Attachments:
log.txt

package pooltest;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.log4j.BasicConfigurator;
import org.firebirdsql.jdbc.FBDataSource;
import org.firebirdsql.pool.FBConnectionPoolDataSource;
import org.firebirdsql.pool.FBWrappingDataSource;

/**
*
* @author Артём
*/
public class Main implements Runnable {

//static FBConnectionPoolDataSource ds = new FBConnectionPoolDataSource\(\);
static FBWrappingDataSource ds = new FBWrappingDataSource\(\);


/\*\*
 \* @param args the command line arguments
 \*/
public static void main\(String\[\] args\) \{
    BasicConfigurator\.configure\(\);
    ds\.setDatabase\("10\.13\.1\.151:taxi"\);
    ds\.setUserName\("SYSDBA"\);
    ds\.setPassword\("masterkey"\);
    ds\.setMaxPoolSize\(3\);
    ds\.setLoginTimeout\(5\);
    for\(int i=0;i<10;\+\+i\)
    \{
        new Thread\(new Main\(\)\)\.start\(\);
    \}
\}

public void run\(\) \{
    try \{
        Connection c = \(Connection\) ds\.getConnection\(\);
        Statement st = c\.createStatement\(\);
        Thread\.sleep\(100\);//do some work
        st\.close\(\);
        c\.close\(\);
        System\.err\.println\("success"\);
    \} catch \(InterruptedException ex\) \{
        Logger\.getLogger\(Main\.class\.getName\(\)\)\.log\(Level\.SEVERE, null, ex\);
    \} catch \(SQLException ex\) \{
        Logger\.getLogger\(Main\.class\.getName\(\)\)\.log\(Level\.SEVERE, null, ex\);
    \}
\}

}

This code should print success 10 times, but does only three times.

@firebird-automations
Copy link
Author

Modified by: Artem Farafonov (farafonoff)

description: package pooltest;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.log4j.BasicConfigurator;
import org.firebirdsql.jdbc.FBDataSource;
import org.firebirdsql.pool.FBConnectionPoolDataSource;
import org.firebirdsql.pool.FBWrappingDataSource;

/**
*
* @author Артём
*/
public class Main implements Runnable {

//static FBConnectionPoolDataSource ds = new FBConnectionPoolDataSource\(\);
static FBWrappingDataSource ds = new FBWrappingDataSource\(\);


/\*\*
 \* @param args the command line arguments
 \*/
public static void main\(String\[\] args\) \{
    BasicConfigurator\.configure\(\);
    ds\.setDatabase\("10\.13\.1\.151:taxi"\);
    ds\.setUserName\("SYSDBA"\);
    ds\.setPassword\("WerthRf1"\);
    ds\.setMaxPoolSize\(3\);
    ds\.setLoginTimeout\(5\);
    for\(int i=0;i<10;\+\+i\)
    \{
        new Thread\(new Main\(\)\)\.start\(\);
    \}
\}

public void run\(\) \{
    try \{
        Connection c = \(Connection\) ds\.getConnection\(\);
        Statement st = c\.createStatement\(\);
        Thread\.sleep\(100\);//do some work
        st\.close\(\);
        c\.close\(\);
        System\.err\.println\("success"\);
    \} catch \(InterruptedException ex\) \{
        Logger\.getLogger\(Main\.class\.getName\(\)\)\.log\(Level\.SEVERE, null, ex\);
    \} catch \(SQLException ex\) \{
        Logger\.getLogger\(Main\.class\.getName\(\)\)\.log\(Level\.SEVERE, null, ex\);
    \}
\}

}

This code should print success 10 times, but does only three times.

0 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 wants to take connection.
4 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 0, max allowed 3
157 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - Got socket
165 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - http://user.name: Артём
188 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_connect
189 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
189 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_accept
193 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
193 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_attach
193 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_info_database
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
219 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
219 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
233 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
233 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - parseDatabaseInfo: first 2 bytes are 318 or: 62, 1
233 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_db_sql_dialect:3
236 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_firebird_version:LI-V2.5.1.26351 Firebird 2.5-LI-V2.5.1.26351 Firebird 2.5/tcp (TESTER)/P10
236 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_version:11
236 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_minor_version:2
284 [Thread-0] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across commit : true
284 [Thread-0] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across rollback : true
285 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 created connection.
286 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 got connection.
313 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 wants to take connection.
313 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 1, max allowed 3
322 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - Got socket
323 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - http://user.name: Артём
323 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_connect
324 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
324 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_accept
335 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
335 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_attach
336 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_info_database
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - parseDatabaseInfo: first 2 bytes are 318 or: 62, 1
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_db_sql_dialect:3
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_firebird_version:LI-V2.5.1.26351 Firebird 2.5-LI-V2.5.1.26351 Firebird 2.5/tcp (TESTER)/P10
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_version:11
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_minor_version:2
380 [Thread-9] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across commit : true
380 [Thread-9] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across rollback : true
380 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 created connection.
381 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 got connection.
381 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 wants to take connection.
381 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 2, max allowed 3
398 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - Got socket
398 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - http://user.name: Артём
399 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_connect
399 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
399 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_accept
410 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
410 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_attach
410 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_info_database
431 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - parseDatabaseInfo: first 2 bytes are 318 or: 62, 1
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_db_sql_dialect:3
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_firebird_version:LI-V2.5.1.26351 Firebird 2.5-LI-V2.5.1.26351 Firebird 2.5/tcp (TESTER)/P10
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_version:11
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_minor_version:2
438 [Thread-7] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across commit : true
438 [Thread-7] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across rollback : true
438 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 created connection.
438 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 got connection.
439 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-5 wants to take connection.
439 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
439 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
439 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
476 [Thread-0] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi will be unblocked
476 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 released connection.
481 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 released connection.
success
success
success
539 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 released connection.
1540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
1540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
1540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
1540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
2540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
2540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
2540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
2540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
3540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
3540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
3540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
3540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
4540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
4540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
4540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
4540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
5540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
5541 [Thread-3] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-3 wants to take connection.
5542 [Thread-3] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
5542 [Thread-3] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
5542 [Thread-3] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-3
дек 27, 2011 2:03:37 AM pooltest.Main run
SEVERE: null
org.firebirdsql.jdbc.FBSQLException: Could not obtain connection during blocking timeout (5000 ms)
at org.firebirdsql.pool.PooledConnectionQueue.take(PooledConnectionQueue.java:367)
at org.firebirdsql.pool.AbstractConnectionPool.getPooledConnection(AbstractConnectionPool.java:230)
at org.firebirdsql.pool.AbstractFBConnectionPoolDataSource.getPooledConnection(AbstractFBConnectionPoolDataSource.java:359)
at org.firebirdsql.pool.AbstractFBConnectionPoolDataSource.getPooledConnection(AbstractFBConnectionPoolDataSource.java:379)
at org.firebirdsql.pool.FBWrappingDataSource.getConnection(FBWrappingDataSource.java:216)
at pooltest.Main.run(Main.java:46)
at java.lang.Thread.run(Thread.java:722)

=>

package pooltest;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.log4j.BasicConfigurator;
import org.firebirdsql.jdbc.FBDataSource;
import org.firebirdsql.pool.FBConnectionPoolDataSource;
import org.firebirdsql.pool.FBWrappingDataSource;

/**
*
* @author Артём
*/
public class Main implements Runnable {

//static FBConnectionPoolDataSource ds = new FBConnectionPoolDataSource\(\);
static FBWrappingDataSource ds = new FBWrappingDataSource\(\);


/\*\*
 \* @param args the command line arguments
 \*/
public static void main\(String\[\] args\) \{
    BasicConfigurator\.configure\(\);
    ds\.setDatabase\("10\.13\.1\.151:taxi"\);
    ds\.setUserName\("SYSDBA"\);
    ds\.setPassword\("masterkey"\);
    ds\.setMaxPoolSize\(3\);
    ds\.setLoginTimeout\(5\);
    for\(int i=0;i<10;\+\+i\)
    \{
        new Thread\(new Main\(\)\)\.start\(\);
    \}
\}

public void run\(\) \{
    try \{
        Connection c = \(Connection\) ds\.getConnection\(\);
        Statement st = c\.createStatement\(\);
        Thread\.sleep\(100\);//do some work
        st\.close\(\);
        c\.close\(\);
        System\.err\.println\("success"\);
    \} catch \(InterruptedException ex\) \{
        Logger\.getLogger\(Main\.class\.getName\(\)\)\.log\(Level\.SEVERE, null, ex\);
    \} catch \(SQLException ex\) \{
        Logger\.getLogger\(Main\.class\.getName\(\)\)\.log\(Level\.SEVERE, null, ex\);
    \}
\}

}

This code should print success 10 times, but does only three times.

0 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 wants to take connection.
4 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 0, max allowed 3
157 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - Got socket
165 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - http://user.name: Артём
188 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_connect
189 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
189 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_accept
193 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
193 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_attach
193 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_info_database
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
219 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
219 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
233 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
233 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - parseDatabaseInfo: first 2 bytes are 318 or: 62, 1
233 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_db_sql_dialect:3
236 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_firebird_version:LI-V2.5.1.26351 Firebird 2.5-LI-V2.5.1.26351 Firebird 2.5/tcp (TESTER)/P10
236 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_version:11
236 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_minor_version:2
284 [Thread-0] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across commit : true
284 [Thread-0] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across rollback : true
285 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 created connection.
286 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 got connection.
313 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 wants to take connection.
313 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 1, max allowed 3
322 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - Got socket
323 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - http://user.name: Артём
323 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_connect
324 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
324 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_accept
335 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
335 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_attach
336 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_info_database
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - parseDatabaseInfo: first 2 bytes are 318 or: 62, 1
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_db_sql_dialect:3
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_firebird_version:LI-V2.5.1.26351 Firebird 2.5-LI-V2.5.1.26351 Firebird 2.5/tcp (TESTER)/P10
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_version:11
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_minor_version:2
380 [Thread-9] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across commit : true
380 [Thread-9] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across rollback : true
380 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 created connection.
381 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 got connection.
381 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 wants to take connection.
381 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 2, max allowed 3
398 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - Got socket
398 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - http://user.name: Артём
399 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_connect
399 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
399 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_accept
410 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
410 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_attach
410 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_info_database
431 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - parseDatabaseInfo: first 2 bytes are 318 or: 62, 1
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_db_sql_dialect:3
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_firebird_version:LI-V2.5.1.26351 Firebird 2.5-LI-V2.5.1.26351 Firebird 2.5/tcp (TESTER)/P10
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_version:11
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_minor_version:2
438 [Thread-7] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across commit : true
438 [Thread-7] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across rollback : true
438 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 created connection.
438 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 got connection.
439 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-5 wants to take connection.
439 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
439 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
439 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
476 [Thread-0] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi will be unblocked
476 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 released connection.
481 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 released connection.
success
success
success
539 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 released connection.
1540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
1540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
1540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
1540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
2540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
2540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
2540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
2540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
3540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
3540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
3540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
3540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
4540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
4540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
4540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
4540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
5540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
5541 [Thread-3] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-3 wants to take connection.
5542 [Thread-3] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
5542 [Thread-3] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
5542 [Thread-3] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-3
дек 27, 2011 2:03:37 AM pooltest.Main run
SEVERE: null
org.firebirdsql.jdbc.FBSQLException: Could not obtain connection during blocking timeout (5000 ms)
at org.firebirdsql.pool.PooledConnectionQueue.take(PooledConnectionQueue.java:367)
at org.firebirdsql.pool.AbstractConnectionPool.getPooledConnection(AbstractConnectionPool.java:230)
at org.firebirdsql.pool.AbstractFBConnectionPoolDataSource.getPooledConnection(AbstractFBConnectionPoolDataSource.java:359)
at org.firebirdsql.pool.AbstractFBConnectionPoolDataSource.getPooledConnection(AbstractFBConnectionPoolDataSource.java:379)
at org.firebirdsql.pool.FBWrappingDataSource.getConnection(FBWrappingDataSource.java:216)
at pooltest.Main.run(Main.java:46)
at java.lang.Thread.run(Thread.java:722)

@firebird-automations
Copy link
Author

Modified by: Artem Farafonov (farafonoff)

Attachment: log.txt [ 12080 ]

description: package pooltest;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.log4j.BasicConfigurator;
import org.firebirdsql.jdbc.FBDataSource;
import org.firebirdsql.pool.FBConnectionPoolDataSource;
import org.firebirdsql.pool.FBWrappingDataSource;

/**
*
* @author Артём
*/
public class Main implements Runnable {

//static FBConnectionPoolDataSource ds = new FBConnectionPoolDataSource\(\);
static FBWrappingDataSource ds = new FBWrappingDataSource\(\);


/\*\*
 \* @param args the command line arguments
 \*/
public static void main\(String\[\] args\) \{
    BasicConfigurator\.configure\(\);
    ds\.setDatabase\("10\.13\.1\.151:taxi"\);
    ds\.setUserName\("SYSDBA"\);
    ds\.setPassword\("masterkey"\);
    ds\.setMaxPoolSize\(3\);
    ds\.setLoginTimeout\(5\);
    for\(int i=0;i<10;\+\+i\)
    \{
        new Thread\(new Main\(\)\)\.start\(\);
    \}
\}

public void run\(\) \{
    try \{
        Connection c = \(Connection\) ds\.getConnection\(\);
        Statement st = c\.createStatement\(\);
        Thread\.sleep\(100\);//do some work
        st\.close\(\);
        c\.close\(\);
        System\.err\.println\("success"\);
    \} catch \(InterruptedException ex\) \{
        Logger\.getLogger\(Main\.class\.getName\(\)\)\.log\(Level\.SEVERE, null, ex\);
    \} catch \(SQLException ex\) \{
        Logger\.getLogger\(Main\.class\.getName\(\)\)\.log\(Level\.SEVERE, null, ex\);
    \}
\}

}

This code should print success 10 times, but does only three times.

0 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 wants to take connection.
4 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 0, max allowed 3
157 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - Got socket
165 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - http://user.name: Артём
188 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_connect
189 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
189 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_accept
193 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
193 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_attach
193 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_info_database
215 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
219 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
219 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
233 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
233 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - parseDatabaseInfo: first 2 bytes are 318 or: 62, 1
233 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_db_sql_dialect:3
236 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_firebird_version:LI-V2.5.1.26351 Firebird 2.5-LI-V2.5.1.26351 Firebird 2.5/tcp (TESTER)/P10
236 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_version:11
236 [Thread-0] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_minor_version:2
284 [Thread-0] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across commit : true
284 [Thread-0] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across rollback : true
285 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 created connection.
286 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 got connection.
313 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 wants to take connection.
313 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 1, max allowed 3
322 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - Got socket
323 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - http://user.name: Артём
323 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_connect
324 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
324 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_accept
335 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
335 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_attach
336 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_info_database
363 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - parseDatabaseInfo: first 2 bytes are 318 or: 62, 1
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_db_sql_dialect:3
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_firebird_version:LI-V2.5.1.26351 Firebird 2.5-LI-V2.5.1.26351 Firebird 2.5/tcp (TESTER)/P10
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_version:11
380 [Thread-9] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_minor_version:2
380 [Thread-9] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across commit : true
380 [Thread-9] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across rollback : true
380 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 created connection.
381 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 got connection.
381 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 wants to take connection.
381 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 2, max allowed 3
398 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - Got socket
398 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - http://user.name: Артём
399 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_connect
399 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
399 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_accept
410 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
410 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_attach
410 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
430 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_info_database
431 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - sent
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - op_response
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - readStatusVector arg:isc_arg_gds int: 0
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - received
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - parseDatabaseInfo: first 2 bytes are 318 or: 62, 1
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_db_sql_dialect:3
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_firebird_version:LI-V2.5.1.26351 Firebird 2.5-LI-V2.5.1.26351 Firebird 2.5/tcp (TESTER)/P10
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_version:11
438 [Thread-7] DEBUG org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl - isc_info_ods_minor_version:2
438 [Thread-7] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across commit : true
438 [Thread-7] INFO org.firebirdsql.pool.PingablePooledConnection - Pool supports open statements across rollback : true
438 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 created connection.
438 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 got connection.
439 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-5 wants to take connection.
439 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
439 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
439 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
476 [Thread-0] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi will be unblocked
476 [Thread-0] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-0 released connection.
481 [Thread-9] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-9 released connection.
success
success
success
539 [Thread-7] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-7 released connection.
1540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
1540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
1540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
1540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
2540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
2540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
2540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
2540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
3540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
3540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
3540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
3540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
4540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
4540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
4540 [Thread-5] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
4540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-5
5540 [Thread-5] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - No connection in pool. Thread Thread-5
5541 [Thread-3] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Thread Thread-3 wants to take connection.
5542 [Thread-3] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Trying to create connection, total connections 3, max allowed 3
5542 [Thread-3] DEBUG org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Was not able to add more connections.
5542 [Thread-3] WARN org.firebirdsql.pool.AbstractFBConnectionPoolDataSource - Pool 10.13.1.151:taxi is empty and will block here. Thread Thread-3
дек 27, 2011 2:03:37 AM pooltest.Main run
SEVERE: null
org.firebirdsql.jdbc.FBSQLException: Could not obtain connection during blocking timeout (5000 ms)
at org.firebirdsql.pool.PooledConnectionQueue.take(PooledConnectionQueue.java:367)
at org.firebirdsql.pool.AbstractConnectionPool.getPooledConnection(AbstractConnectionPool.java:230)
at org.firebirdsql.pool.AbstractFBConnectionPoolDataSource.getPooledConnection(AbstractFBConnectionPoolDataSource.java:359)
at org.firebirdsql.pool.AbstractFBConnectionPoolDataSource.getPooledConnection(AbstractFBConnectionPoolDataSource.java:379)
at org.firebirdsql.pool.FBWrappingDataSource.getConnection(FBWrappingDataSource.java:216)
at pooltest.Main.run(Main.java:46)
at java.lang.Thread.run(Thread.java:722)

=>

package pooltest;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.log4j.BasicConfigurator;
import org.firebirdsql.jdbc.FBDataSource;
import org.firebirdsql.pool.FBConnectionPoolDataSource;
import org.firebirdsql.pool.FBWrappingDataSource;

/**
*
* @author Артём
*/
public class Main implements Runnable {

//static FBConnectionPoolDataSource ds = new FBConnectionPoolDataSource\(\);
static FBWrappingDataSource ds = new FBWrappingDataSource\(\);


/\*\*
 \* @param args the command line arguments
 \*/
public static void main\(String\[\] args\) \{
    BasicConfigurator\.configure\(\);
    ds\.setDatabase\("10\.13\.1\.151:taxi"\);
    ds\.setUserName\("SYSDBA"\);
    ds\.setPassword\("masterkey"\);
    ds\.setMaxPoolSize\(3\);
    ds\.setLoginTimeout\(5\);
    for\(int i=0;i<10;\+\+i\)
    \{
        new Thread\(new Main\(\)\)\.start\(\);
    \}
\}

public void run\(\) \{
    try \{
        Connection c = \(Connection\) ds\.getConnection\(\);
        Statement st = c\.createStatement\(\);
        Thread\.sleep\(100\);//do some work
        st\.close\(\);
        c\.close\(\);
        System\.err\.println\("success"\);
    \} catch \(InterruptedException ex\) \{
        Logger\.getLogger\(Main\.class\.getName\(\)\)\.log\(Level\.SEVERE, null, ex\);
    \} catch \(SQLException ex\) \{
        Logger\.getLogger\(Main\.class\.getName\(\)\)\.log\(Level\.SEVERE, null, ex\);
    \}
\}

}

This code should print success 10 times, but does only three times.

@firebird-automations
Copy link
Author

Commented by: @mrotteveel

This is fixed in Jaybird 2.2 by the changes for JDBC93 (and related tickets). However, if you are using these datasource in an application server, I advise you to switch to the new ConnectionPoolDatasources in org.firebirdsql.ds which are added in Jaybird 2.2.

If you use these datasources standalone in a normal Java program, you should be able to continue using them (with the fixes in Jaybird 2.2). However, as I am planning on removing the datasources that provide connection pooling in Jaybird 2.3, I advise you to then switch to a third-party implementation of datasources like C3P0, DBCP or BoneCP.

Jaybird 2.2 has not yet been released, but if you are willing to test things, I can create a test build.

@firebird-automations
Copy link
Author

Modified by: @mrotteveel

assignee: Roman Rokytskyy [ rrokytskyy ] => Mark Rotteveel [ avalanche1979 ]

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Duplicate [ 3 ]

@firebird-automations
Copy link
Author

Modified by: @mrotteveel

Link: This issue duplicates JDBC93 [ JDBC93 ]

@firebird-automations
Copy link
Author

Modified by: @mrotteveel

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants