Application Delivery Management
Application Modernization & Connectivity
CyberRes
IT Operations Management
Note: Borland Enterprise Server lazy-loads all resources that an application might directly or indirectly be using. These resources include initialization of threads in thread pools to service client requests, establishing database connections, filling up of pools and caches for Enterprise JavaBeans, etc. The overhead of these initializations, though a one-time affair, can skew application benchmark times. Therefore, it is essential that the application be ramped up to a steady state (where all the above mentioned resources are initialized) before initial benchmark measurements are recorded. See appendix for more details on how to ensure that steady state has been achieved. |
Name | Description |
Dispatch_POA | Time spent receiving the TCP request, and sending the reply. |
Dispatch_Home | Time spent in the container dispatching methods to EJBHome objects. |
Dispatch_Remote | Time spent in the container dispatching methods to EJBRemote objects. |
Dispatch_Bean | Time spent in the bean methods. Note that this is broken down in detail on a method-by-method basis if detailed timers are used. |
EntityHome | Time spent in the container implementing EJBHome-related operations specific to Entity beans. |
Passivate_SB | Time spent passivating Stateful Session beans. |
BeginTx | Time spent beginning transactions. |
CommitTx | Time spent committing transactions. |
RollbackTx | Time spent rolling back transactions. |
ResourceCommit | Time spent specifically in committing the work done on the resource (that is, in committing to a database such as Oracle). |
Synchronization | Time spent in various Synchronization callbacks. |
LoadClass | Time spent loading classes from EJB Jars, etc. (startup cost only). |
CMP_Init | Time spent initializing the CMP engine (startup cost only). |
CMP | Time spent in the CMP engine (excluding other CMP tasks listed explicitly). |
CMP_Update | Time spent in the CMP engine doing SQL updates. |
CMP_Query | Time spent in the CMP engine doing SQL queries. |
CMP_PrepareStmt | Time spent in the CMP engine preparing statements (startup cost only). |
CMP_GetConn | Time spent in the CMP engine getting JDBC connections (startup cost only). |
ORB_Activate | Time spent in the ORB allocating objects from pools. |
ORB_Deactivate | Time spent in the ORB releasing objects to pools. |
Jdbc(1|2)_GetCon | Time spent in the Jdbc1 or Jdbc2 datasource to get a pooled connection. |
Jdbc(1|2)_NewCon | Time spent in the Jdbc1 or Jdbc2 datasource to get a new connection (startup cost only). |
Jdbc(1|2)_RegRes | Time spent in the Jdbc1 or Jdbc2 datasource to register a transaction resource in transaction service. |
Jdbc2_NewXaCon | Time spent in the Jdbc2 datasource to get a new XA-enabled connection (startup cost only). |
Jdbc2_XaStart | Time spent in the Jdbc2 datasource starting a transaction branch. |
Jdbc2_XaEnd | Time spent in the Jdbc2 datasource to end a transaction branch. |
Action |
Total (ms) |
Count |
T/C (ms) |
Percent |
Description |
Dispatch_POA | 271 | 20004 | 0.01 | 1.31% | |
Dispatch_Home | 9670 | 160001 | 0.00 | 46.81% | |
Dispatch_LHome | 10 | 20000 | 0.0 | 0.04% | |
Dispatch_RHome | 0 | 1 | 0.0 | 0.0% | |
Dispatch_Cmpt | 0 | 140000 | 0.0 | 0.00% | |
Dispatch_Bean | 8870 | 400041 | 0.06 | 42.94% | |
0 |
120000 |
0.0 |
0.0% |
DepartmentBean_PM=>javax.ejb.EntityBean.ejbStore() |
|
0 | 20000 | 0.0 | 0.0% | DepartmentBean_PM=> Department.getPhoneNo() | |
0 | 1 | 0.0 | 0.0% | PerfSessionBean=> PerfSessionHome.create() | |
30 | 120000 |
0.0 |
0.0% |
DepartmentBean_PM=>javax.ejb.EntityBean.ejbLoad() |
|
0 | 1 | 0.0 | 0.0% | PerfSessionBean=>javax.ejb.SessionBean.setSessionContext() | |
10 | 20000 | 0.0 | 0.0% | DepartmentBean_PM=> Department.getMngrNo() | |
0 | 20000 | 0.0 | 0.0% | DepartmentBean_PM=> Department.getLocation() | |
0 | 20000 | 0.0 | 0.0% | DepartmentBean_PM=> Department.getDeptNo() | |
0 | 19 | 0.0 | 0.0% | DepartmentBean_PM=>javax.ejb.EntityBean.ejbActivate() | |
0 | 20 | 0.0 | 0.0% | DepartmentBean_PM=>javax.ejb.EntityBean.setEntityContext() | |
8480 | 20000 | 0.42 | 41.05% | DepartmentBean_PM=> DepartmentHome.findByPrimaryKey() | |
390 | 20000 | 0.01 | 1.88% | PerfSessionBean=> PerfSession.test() | |
0 | 20000 | 0.0 | 0.0% | DepartmentBean_PM=> Department.getDepartment() | |
0 | 20000 | 0.0 | 0.0% | DepartmentBean_PM=> Department.getHeadDept() | |
EntityHome | 10 | 120000 | 0.0 | 0.04% | |
BeginTx | 271 | 20000 | 0.01 | 1.31% | |
CommitTx |
80 |
140000 |
0.0 |
0.38% |
|
Synchronization | 71 | 280006 | 0.0 | 0.34% | |
LoadClass | 50 | 48 | 1.04 | 0.24% | |
PrepareStmt | 110 | 6 | 18.33 | 0.53% | |
ORB_Activate | 40 | 12 | 3.33 | 0.19% | |
Jdbc2_GetCon | 361 | 140002 | 0.0 | 1.74% | |
Jdbc2_NewCon | 0 | 1 | 0.0 | 0.0% | |
Jdbc2_RegRes | 80 | 140002 | 0.0 | 0.38% | |
Jdbcw_NewCon | 762 | 1 | 762.0 | 3.68% | |
Total |
20656 |
Note: The OptimizeIt product can be used to profile and tune Java and J2EE applications. Details of this product and its usage is beyond the scope of this write-up; but a number of online guides and papers are available that enumerate the steps involved in setting up, profiling and analyzing the results obtained by running OptimizeIt on your application. |
Borland Enterprise Server tends to pull a lot of the load from the database-tier and into the AppServer-tier unlike some of the competition. Unfortunately, this may hurt performance on the lower-end of the scale. But databases can only be scaled vertically - that is, getting it to run faster can only be achieved by buying a bigger faster box, and this can get expensive very easily. AppServers on the other hand can be scaled horizontally by clustering them and horizontal scaling is less expensive than vertical scaling. Borland Enterprise Server does more work at the AppServer-tier to avoid doing as much work in the database-tier. With competing products, clustering the AppServer beyond a certain threshold will not increase performance. This is because the database tier is saturated and therefore performance can only be scaled up by buying a bigger machine for the database. Consequently, if a given EJB application imposes a lighter load on the database tier, then the same database can be used for more applications. If benchmarking Borland Enterprise Server against competing products, it is therefore recommended that the load on the database-tier be included as an important factor in benchmark measurements |
vmparam –Xms256m
vmparam –Xmx720m
LD_LIBRARY_PATH=/usr/lib/lwpThis has the effect of adding the following line to the partition's nativeservice.properties file located in the following directory:
nativeservice.environment="LD_LIBRARY_PATH=/usr/lib/lwp"To verify that the above argument is indeed set and used by the partition, add the following line to the above mentioned partition_server.config file:
nativeservice.application.arguments=–debug