Hi,
It seems like JBoss
3.2.3 commit option B or C a lot slower than JBoss 3.2.1 with same commit
options. The only difference is that with JBoss 3.2.1 we were running CMP 1.1
with 'modified' flag optimization to minimize the number of synchronizations
with Database (it served as some kind of dirty bit for an instance of entity
bean). With JBoss 3.2.3 we moved to CMP 2.0 and lost the option to use
'modified' optimization. Can this be the source of slowdown? By the way, all my
get methods are declared to be read only in the jboss.xml. Here is a piece of
log that I got:
- JBOSS 3.2.3
with Commit-Option B (Sybase row-level locking)
I am doing a findBy***() to retrieve a Collection of
references to an Entity Bean. While iterating through the collection, it appears
that a SELECT statement is executed for every get() method that is called.In
addition, the response time of each SELECT
statement is ~300ms. How can I improve this performance? The Entity Bean is
configured for transaction "Required".
See logs below:
2004-01-16 08:45:22,706 136813 DEBUG
[org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.PositionDetail#findByAccountId]
(TP-Processor4:) Executing SQL: SELECT t0_o.accountId, t0_o.accountType,
t0_o.countryCode, t0_o.currency, t0_o.symbol, t0_o.symbolType FROM
PositionDetail t0_o WHERE (t0_o.accountId = ?)
2004-01-16 08:45:22,706 136813 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) supplying ManagedConnection from pool:
[EMAIL PROTECTED]
2004-01-16 08:45:22,706 136813 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Getting connection from pool [InUse/Available/Max]:
[1/10/20]
2004-01-16 08:45:23,096 137203 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) putting ManagedConnection back into pool
2004-01-16 08:45:23,096 137203 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Returning connection to pool [InUse/Available/Max]:
[0/10/20]
2004-01-16 08:45:23,096 137203 DEBUG
[org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.PositionDetail]
(TP-Processor4:) Executing SQL: SELECT dayTradingAmount, dayTradingQuantity,
marketValue, nonNegPosition, oca, requiredBoxQuantity, safekeepingQuantity,
settlementDatePosition, tradeDatePosition, transferQuantity FROM PositionDetail
WHERE (accountId=? AND accountType=? AND countryCode=? AND currency=? AND
symbol=? AND symbolType=?)
2004-01-16 08:45:23,096 137203 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) supplying ManagedConnection from pool:
[EMAIL PROTECTED]
2004-01-16 08:45:23,096 137203 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Getting connection from pool [InUse/Available/Max]:
[1/10/20]
2004-01-16 08:45:23,300 137407 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) putting ManagedConnection back into pool
2004-01-16 08:45:23,300 137407 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Returning connection to pool [InUse/Available/Max]:
[0/10/20]
2004-01-16 08:45:23,300 137407 DEBUG
[org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.PositionDetail]
(TP-Processor4:) Executing SQL: SELECT dayTradingAmount, dayTradingQuantity,
marketValue, nonNegPosition, oca, requiredBoxQuantity, safekeepingQuantity,
settlementDatePosition, tradeDatePosition, transferQuantity FROM PositionDetail
WHERE (accountId=? AND accountType=? AND countryCode=? AND currency=? AND
symbol=? AND symbolType=?)
2004-01-16 08:45:23,300 137407 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) supplying ManagedConnection from pool:
[EMAIL PROTECTED]
2004-01-16 08:45:23,300 137407 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Getting connection from pool [InUse/Available/Max]:
[1/10/20]
2004-01-16 08:45:23,628 137735 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) putting ManagedConnection back into pool
2004-01-16 08:45:23,628 137735 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Returning connection to pool [InUse/Available/Max]:
[0/10/20]
2004-01-16 08:45:23,628 137735 DEBUG
[org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.PositionDetail]
(TP-Processor4:) Executing SQL: SELECT dayTradingAmount, dayTradingQuantity,
marketValue, nonNegPosition, oca, requiredBoxQuantity, safekeepingQuantity,
settlementDatePosition, tradeDatePosition, transferQuantity FROM PositionDetail
WHERE (accountId=? AND accountType=? AND countryCode=? AND currency=? AND
symbol=? AND symbolType=?)
2004-01-16 08:45:23,628 137735 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) supplying ManagedConnection from pool:
[EMAIL PROTECTED]
2004-01-16 08:45:23,628 137735 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Getting connection from pool [InUse/Available/Max]:
[1/10/20]
2004-01-16 08:45:23,956 138063 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) putting ManagedConnection back into pool
2004-01-16 08:45:23,956 138063 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Returning connection to pool [InUse/Available/Max]:
[0/10/20]
2004-01-16 08:45:23,956 138063 DEBUG
[org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.PositionDetail]
(TP-Processor4:) Executing SQL: SELECT dayTradingAmount, dayTradingQuantity,
marketValue, nonNegPosition, oca, requiredBoxQuantity, safekeepingQuantity,
settlementDatePosition, tradeDatePosition, transferQuantity FROM PositionDetail
WHERE (accountId=? AND accountType=? AND countryCode=? AND currency=? AND
symbol=? AND symbolType=?)
2004-01-16 08:45:23,956 138063 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) supplying ManagedConnection from pool:
[EMAIL PROTECTED]
2004-01-16 08:45:23,956 138063 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Getting connection from pool [InUse/Available/Max]:
[1/10/20]
2004-01-16 08:45:24,300 138407 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) putting ManagedConnection back into pool
2004-01-16 08:45:24,300 138407 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Returning connection to pool [InUse/Available/Max]:
[0/10/20]
2004-01-16 08:45:24,300 138407 DEBUG
[org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.PositionDetail]
(TP-Processor4:) Executing SQL: SELECT dayTradingAmount, dayTradingQuantity,
marketValue, nonNegPosition, oca, requiredBoxQuantity, safekeepingQuantity,
settlementDatePosition, tradeDatePosition, transferQuantity FROM PositionDetail
WHERE (accountId=? AND accountType=? AND countryCode=? AND currency=? AND
symbol=? AND symbolType=?)
2004-01-16 08:45:24,300 138407 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) supplying ManagedConnection from pool:
[EMAIL PROTECTED]
2004-01-16 08:45:24,300 138407 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Getting connection from pool [InUse/Available/Max]:
[1/10/20]
2004-01-16 08:45:24,628 138735 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) putting ManagedConnection back into pool
2004-01-16 08:45:24,628 138735 TRACE
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
(TP-Processor4:) Returning connection to pool [InUse/Available/Max]:
[0/10/20]
2004-01-16 08:45:24,628 138735 DEBUG
[org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.PositionDetail]
(TP-Processor4:) Executing SQL: SELECT dayTradingAmount, dayTradingQuantity,
marketValue, nonNegPosition, oca, requiredBoxQuantity, safekeepingQuantity,
settlementDatePosition, tradeDatePosition, transferQuantity FROM PositionDetail
WHERE (accountId=? AND accountType=? AND countryCode=? AND currency=? AND
symbol=? AND symbolType=?)
Thanks,
Misak
This message and any attachments are intended only for the use of the addressee and
may contain information that is privileged and confidential. If the reader of the
message is not the intended recipient or an authorized representative of the
intended recipient, you are hereby notified that any dissemination of this
communication is strictly prohibited. If you have received this communication in
error, please notify us immediately by e-mail and delete the message and any
attachments from your system.