Re: [net] Version 3.7

2018-08-21 Thread sebb
On 21 August 2018 at 18:10, eddma01  wrote:
> Is there a date when commons-net 3.7 is estimated to be released?

Not as yet.

> Need to move away from vulnerability in 3.6.
>

Which vulnerability?

>
> --
> Sent from: 
> http://apache-commons.680414.n4.nabble.com/Commons-User-f735979.html
>
> -
> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
> For additional commands, e-mail: user-h...@commons.apache.org
>

-
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org



Re: [net] Version 3.7

2018-08-21 Thread eddma01
Is there a date when commons-net 3.7 is estimated to be released? Need to
move away from vulnerability in 3.6.



--
Sent from: http://apache-commons.680414.n4.nabble.com/Commons-User-f735979.html

-
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org



Re: [dbcp] Unnecessary ROLLBACK's with BasicDataSource

2018-08-21 Thread Bernd Eckenfels
Hello,

Can you proof that this puts additional pressure on the database? It does make 
some uneccessary round-trips but the database will just ignore the rollbacks 
when there are no open changes/transactions IMHO. Did you see somewhere on the 
database otherwise?

Using rolllback unconditionally to reset the state of transactions is easier 
and more reliable than actually trying to keep track. If it does indeed affect 
the database it would be a bit more work to come up with another solution.
Gruss
Bernd

Gruss
Bernd
--
http://bernd.eckenfels.net


Von: Andrey Shcheglov 
Gesendet: Dienstag, August 21, 2018 5:01 PM
An: user@commons.apache.org
Betreff: [dbcp] Unnecessary ROLLBACK's with BasicDataSource

Hello,

If BasicDataSource (version 1.4, as I'm limited to Java 1.6) is
configured with defaultAutoCommit=false, then two extra ROLLBACK's are
executed, one when a database connection is taken from the pool, and
another one when returning a connection to the pool.

The corresponding stack traces are (/Oracle Thin/'s T4CConnection example):

> T4CConnection(PhysicalConnection).rollback() line: 1950
> PoolableConnection(DelegatingConnection).rollback() line: 368
> PoolableConnectionFactory.passivateObject(Object) line: 685
> BasicDataSource.validateConnectionFactory(PoolableConnectionFactory)
> line: 1559
> BasicDataSource.createPoolableConnectionFactory(ConnectionFactory,
> KeyedObjectPoolFactory, AbandonedConfig) line: 1545
> BasicDataSource.createDataSource() line: 1388
> BasicDataSource.getConnection() line: 1044

and

> T4CConnection(PhysicalConnection).rollback() line: 1950
> PoolableConnection(DelegatingConnection).rollback() line: 368
> PoolableConnectionFactory.passivateObject(Object) line: 685
> GenericObjectPool.addObjectToPool(Object, boolean) line: 1379
> GenericObjectPool.returnObject(Object) line: 1342
> PoolableConnection.close() line: 90
> PoolingDataSource$PoolGuardConnectionWrapper.close() line: 191

Thus, each successful database transaction is a sequence of:

1. ROLLBACK (connection taken from the pool)
2. do something with the database connection (application code)
3. COMMIT (application code)
4. ROLLBACK (connection closed)

(instead of a single COMMIT), while each failed one is a sequence of

1. ROLLBACK (connection taken from the pool)
2. do something with the database connection (application code)
3. ROLLBACK (application code)
4. ROLLBACK (connection closed)

(instead of a single ROLLBACK).

This behaviour applies an additional pressure to the redo and undo
subsystems (particularly, in /Oracle/ case, but the problem holds for
any database accessed via /commons-dbcp/, e. g.: I observed the same
issue with /MySQL/).

*Question 1*: how can I get rid of these extra ROLLBACK's while still
having my data source configured with defaultAutoCommit=false (i. e.
without the need to manually call setAutoCommit(false) for each
connection taken from the data source)?

*Question 2* (I'm aware I may be barking up the wrong tree, but still):
alternatively, how can I mitigate the issue from /Oracle/ side (i. e.
without changing my code or replacing libraries)?

Regards,
Andrey.

-
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org



[dbcp] Unnecessary ROLLBACK's with BasicDataSource

2018-08-21 Thread Andrey Shcheglov
Hello,

If BasicDataSource (version 1.4, as I'm limited to Java 1.6) is
configured with defaultAutoCommit=false, then two extra ROLLBACK's are
executed, one when a database connection is taken from the pool, and
another one when returning a connection to the pool.

The corresponding stack traces are (/Oracle Thin/'s T4CConnection example):

> T4CConnection(PhysicalConnection).rollback() line: 1950
> PoolableConnection(DelegatingConnection).rollback() line: 368  
> PoolableConnectionFactory.passivateObject(Object) line: 685
> BasicDataSource.validateConnectionFactory(PoolableConnectionFactory)
> line: 1559
> BasicDataSource.createPoolableConnectionFactory(ConnectionFactory,
> KeyedObjectPoolFactory, AbandonedConfig) line: 1545 
> BasicDataSource.createDataSource() line: 1388  
> BasicDataSource.getConnection() line: 1044  

and

> T4CConnection(PhysicalConnection).rollback() line: 1950
> PoolableConnection(DelegatingConnection).rollback() line: 368  
> PoolableConnectionFactory.passivateObject(Object) line: 685
> GenericObjectPool.addObjectToPool(Object, boolean) line: 1379  
> GenericObjectPool.returnObject(Object) line: 1342  
> PoolableConnection.close() line: 90
> PoolingDataSource$PoolGuardConnectionWrapper.close() line: 191 

Thus, each successful database transaction is a sequence of:

1. ROLLBACK (connection taken from the pool)
2. do something with the database connection (application code)
3. COMMIT (application code)
4. ROLLBACK (connection closed)

(instead of a single COMMIT), while each failed one is a sequence of

1. ROLLBACK (connection taken from the pool)
2. do something with the database connection (application code)
3. ROLLBACK (application code)
4. ROLLBACK (connection closed)

(instead of a single ROLLBACK).

This behaviour applies an additional pressure to the redo and undo
subsystems (particularly, in /Oracle/ case, but the problem holds for
any database accessed via /commons-dbcp/, e. g.: I observed the same
issue with /MySQL/).

*Question 1*: how can I get rid of these extra ROLLBACK's while still
having my data source configured with defaultAutoCommit=false (i. e.
without the need to manually call setAutoCommit(false) for each
connection taken from the data source)?

*Question 2* (I'm aware I may be barking up the wrong tree, but still):
alternatively, how can I mitigate the issue from /Oracle/ side (i. e.
without changing my code or replacing libraries)?

Regards,
Andrey.

-
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org