Summary

 < Free Open Study > 



In this chapter we have covered various issues related to analyzing, improving, and monitoring J2EE web application performance and scalability. The topics we covered include:

  • The impact of architectural decisions on web application performance and scalability

  • Design issues for improving performance and scalability, such as session management, data access, handling business logic, and using message-based interfaces

  • Coding tips for improving performance

  • Load balancing and clustering

  • Using various commercial and freeware tools for performance and scalability monitoring and profiling

  • Creating in-house monitor applications for analyzing web application performance

In the next chapter we will be examining the role of servlets in web services.

+

+ operator

  • coding for performance/scalability, 3

A

addCacheable() method

  • caching data, 22

administered objects

  • connections, 30

  • JMS (Java Message Service), 30

  • JMS types, 30

  • sessions, 30

algorithms

  • Least Recently Used (LRU) algorithm, 17

Apache JMeter

  • main features, 35

  • stress testing tool, 35

  • using, 36

  • web site, 34

architectures

  • !see also web application architecture.

  • performance/scalability considerations in web applications, 7

arrayCopy() method, java.lang.System class

  • coding for performance/scalability, 5

ArrayList class

  • collection framework classes not vectors, 2

asynchronous communication

  • architecture for performance/scalability, 29

  • JMS (Java Message Service), 29, 32

  • MDBs (Message Driven Beans), 29

  • threads, 29

asynchronous logging

  • performance, 6

B

banking example

  • web application, 8

beans

  • message driven beans, 32

  • session beans, 2, 27

business logic

  • handling in web applications, 8

  • task delegation, handling using, 9

C

cache manager

  • ICacheManager interface, 20, 21

  • implementing interfaces, 19

CacheServlet

  • caching framework, 26

caching data

  • architecture for performance/scalability, 17

  • cache manager, 19

  • caching applications and APIs, web site, 17

  • caching framework example, 17

  • interfaces

    • defining caching interfaces, 18

    • ICache interface, 18

    • ICacheable interface, 18

    • ICacheManager interface, 19

    • implementing interfaces, 19

  • Least Recently Used (LRU) algorithm, 17

caching framework

  • caching data, 23

  • running caching application, 25

char arrays

  • coding for performance/scalability, 3

charAt() method

  • coding for performance/scalability, 5

classes

  • collection framework classes not vectors, 2

  • monitor framework classes, 42

cloning

  • coding practice, 7

close() method

  • connection pooling, 15

clusters

  • architecture elements, 33

  • content type and scalability, 34

  • distributed sessions, 34

  • scalability, 33

  • types, 33

coding for performance/scalability

  • arrays, copying, 5

  • asynchronous logging, 6

  • char arrays, 3

  • classes, using, 2

  • cloning, 7

  • collection framework classes not vectors, 2

  • databases, 5

  • externalization, 6

  • good techniques, 2

  • heap tuning, 6

  • immutable instance variables, 3

  • method design, 4

  • method inlining, 5

  • methods

    • charAt() method, 5

    • notify/~All() methods, 5

    • startsWith() method, 5

  • monitor locks, 4

  • non-blocking I/O, 6

  • operators

    • + operator, 3

    • compound operator, 4

    • using operators, 3

  • optimize code during compilation, 6

  • reflection, use sparingly, 2

  • shallow inheritance hierarchies, 2

  • short transactions, 6

  • SingleThreadModel interface, avoid, 2

  • stateful session beans, use sparingly, 2

  • streams, 6

  • StringBuffer object, 3

  • thread-safe code, 2

  • transient modifier, 6

  • variables, using, 3

    • local variables, 3

    • variables inside loops, avoid, 3

collection framework classes

  • vectors or, in good code, 2

columns, selecting

  • database coding, 5

compound operators

  • coding for performance/scalability, 4

connection pooling

  • architecture for performance/scalability, 11

  • creating a connection pool, 12

  • JDBC optional extension API, 14

ConnectionPoolDataSource interface, javax.sql

  • connection pooling, 15

content type

  • scalability, 34

custom performance monitoring tool

  • web applications, 41

D

data access

  • architecture for performance/scalability, 10

  • JDBC optional extension API, 14

  • optimizing record retrieval, 15

  • pooling JDBC connections, 11

data access objects

  • architecture for performance/scalability, 11

data caching see caching data, 17

databases

  • coding for performance/scalability, 5

    • getObject() method, 5

    • getString() method, 5

    • PreparedStatements, 6

    • selecting columns, 5

DataSource interface, javax.sql

  • connection pooling, 14

debugging

  • JProbe Memory Debugger, 40

  • JProbe threadanalyzer, 40

  • Optimizeit thread debugger, 40

deployment strategies

  • clustering, 33

  • load balancing, 33

doGet() method

  • CacheServlet, 26

  • caching framework, 24

  • session management, 27

doPost() method

  • handling business logic, 8

E

expire() method

  • caching data, 20, 22

externalization

  • custom serialization algorithms, 6

F

final, declaring method as

  • coding for performance/scalability, 5

findByLastName() method

  • record retrieval, 15

framework classes

  • collection framework classes, 2

  • monitor framework classes, 42

G

getConnection() method

  • connection pooling, 13

getObject() method

  • database coding, 5

getString() method

  • database coding, 5

H

HashMap class

  • collection framework classes not vectors, 2

heap

  • tuning heap size, 6

hierarchies

  • shallow inheritance hierarchies, 2

hprof see JDK hprof, 40

HTTPServletRequest interface

  • session management, 27

  • storing sessions in stateful session beans, 28

HTTPSession interface

  • session management, 27

  • storing sessions in stateful session beans, 28

I

ICache interface

  • caching data, 18, 21

ICacheable interface

  • caching data, 18

  • caching framework, 23

ICacheManager interface

  • caching data, 19, 20, 21

immutable instance variables

  • coding for performance/scalability, 3

inheritance

  • shallow inheritance hierarchies, 2

init() method

  • CacheServlet, 26

  • caching framework, 24

initialize() method

  • connection pooling, 13

interfaces

  • ConnectionPoolDataSource interface, 15

  • DataSource interface, 14

  • HTTPServletRequest interface, 26, 27, 28

  • HTTPSession interface, 27, 28

  • ICache interface, 18, 21

  • ICacheable interface, 18, 23

  • ICacheManager interface, 19, 20, 21

  • implementing interfaces, 19

  • MessageDrivenBean interface, 32

  • MessageListener interface, 32

  • PooledConnection interface, 15

  • Serializable interface, 34

internalization

  • coding practice, 7

J

JDBC connections

  • architecture for performance/scalability, 11

JDBC optional extension API

  • connection pooling, 14

JDK hprof

  • profiling tool, 40

  • table of options, 41

JMeter see Apache JMeter, 35

JMS (Java Message Service)

  • administered objects, 30

  • architecture, 29, 30

  • asynchronous communication, 29

  • asynchronous messaging, 32

  • clients, 29

  • message driven beans, 32

  • messages, 29

  • messaging models, 31

  • point-to-point messaging model, 31

  • providers, 29

  • publish/subscribe messaging model, 31

  • scalability improvement, 32

JNDI (Java Naming and Directory Interface)

  • administered objects, 30

JProbe ServerSide Suite

  • profiling tool, 40

  • web site, 39

L

late binding

  • coding for performance/scalability, 5

Least Recently Used (LRU) algorithm

  • caching data, 17

load balancing

  • scalability, 33

local variables

  • coding for performance/scalability, 3

M

Matrix class

  • monitor framework classes, 42

    • source code, 45

MDBs (Message Driven Beans)

  • asynchronous communication, 29

  • JMS (Java Message Service), 32

message producers/consumers

  • administered objects, 30

MessageDrivenBean interface, javax.ejb

  • JMS (Java Message Service), 32

MessageListener interface, javax.ejb

  • JMS (Java Message Service), 32

messaging models

  • JMS (Java Message Service), 31

method inlining

  • coding for performance/scalability, 5

methods

  • addCacheable() method, 22

  • arrayCopy() method, 5

  • close() method, 15

  • coding for performance/scalability, 4

  • doGet() method, 24, 26, 27

  • doPost() method, 8

  • expire() method, 20, 22

  • findByLastName() method, 15

  • getConnection() method, 13

  • getObject() method, 5

  • getString() method, 5

  • init() method, 24, 26

  • initialize() method, 13

  • notify/~All () methods, 5

  • onMessage() method, 32

  • releaseConnection() method, 14

  • startsWith() method, 5

Microsoft Web Application Stress

  • stress testing tool, 35

  • web site, 34

monitor framework classes

  • classes, 42

monitor locks

  • coding for performance/scalability, 4

MonitorFilter class

  • monitor framework classes, 43

    • source code, 46

MonitorServlet class

  • monitor framework classes, 43

    • source code, 47

N

notify/~All() methods

  • coding for performance/scalability, 5

O

objects

  • administered objects, 30

onMessage() method

  • JMS (Java Message Service), 32

operators

  • + operator, 3

  • coding for performance/scalability, 3

  • compound operators, 4

Optimizeit ServerSide Suite

  • profiling tool, 40

  • web site, 39

P

performance

  • !see also coding for performance/scalability.

  • custom performance monitoring tool, 41

  • definition, web applications, 1

  • monitoring in web applications, 41

  • stress testing tools, 34

point-to-point messaging model

  • JMS (Java Message Service), 31

PooledConnection interface, javax.sql

  • connection pooling, 15

PreparedStatements

  • database coding, 6

profiling tools

  • JDK hprof, 40

  • JProbe ServerSide Suite, 40

  • Optimizeit ServerSide Suite, 40

public, declaring method as

  • coding for performance/scalability, 5

publish/subscribe messaging model

  • JMS (Java Message Service), 31

R

record retrieval

  • data access, optimizing for, 15

references to web sites

  • Apache JMeter, 34

  • caching applications and APIs, 17

  • JProbe ServerSide Suite, 39

  • Microsoft Web Application Stress, 34

  • Optimizeit ServerSide Suite, 39

reflection

  • when to use, good coding practice, 2

releaseConnection() method

  • connection pooling, 14

Request class

  • monitor framework classes, 42

    • source code, 43

ResultSet object

  • database coding, 5

S

scalability

  • !see also coding for performance/scalability.

  • clustering, 33

  • content type, 34

  • definition, web applications, 1

  • JMS (Java Message Service), 32

  • load balancing, 33

  • stress testing tools, 34

Serializable interface, java.io

  • distributed sessions and clusters, 34

serialization

  • externalization, 6

  • faster custom serialization algorithms, 6

  • transient modifier, 6

session beans

  • storing sessions in stateful session beans, 27

  • when to use, 2

sessions/session management

  • architecture for performance/scalability, 26

  • distributed sessions and clusters, 34

  • schemas for storing session data compared, 28

  • stateful session beans, 27

  • storing sessions in backend databases, 27

shallow inheritance hierarchies

  • coding for performance/scalability, 2

SingleThreadModel interface

  • avoidance in good code, 2

startsWith() method

  • coding for performance/scalability, 5

stateful session beans

  • when to use, good coding practice, 2

stateless protocol

  • J2EE web applications, 26

static, declaring method as

  • coding for performance/scalability, 5

streams

  • coding practice, 6

stress testing tools

  • Apache JMeter, 35

  • Microsoft Web Application Stress, 35

  • performance and scalability, 34

String objects

  • coding for performance/scalability, 3

StringBuffer object

  • coding for performance/scalability, 3

T

task delegation

  • handling business logic, 9

threads

  • asynchronous communication, 29

  • effect on performance/scalability, 7

thread-safe code

  • coding for performance/scalability, 2

tiers, communication between

  • effect on performance/scalability, 7

tools

  • profiling tools, 39

  • stress testing tools, 34

topic publishers/subscribers

  • JMS messaging model, 31

transient modifier

  • serialization, 6

U

Unicode format

  • coding practice, 6

Unit class

  • monitor framework classes, 42

    • source code, 43

V

variables

  • coding for performance/scalability, 3

Vector class

  • prefer collection framework classes, 2

W

web application architecture

  • !see also architectures.

  • asynchronous communication, 29

  • business logic, handling, 8

  • caching data, 17

  • cluster types, 33

  • clustering, 33

  • connection pooling, 11

  • data access, 10

  • data access objects, 11

  • JMS (Java Message Service), 29

  • load balancing, 33

  • monitor framework classes example, 42

  • performance/scalability considerations, 7

  • session management, 26

web applications

  • banking example, 8

  • custom performance monitoring tool, 41

  • performance definition, 1

  • performance monitoring, 41

  • profiling tools, 39

  • scalability definition, 1

  • stress testing tools, 34



 < Free Open Study > 



Professional Java Servlets 2.3
Professional Java Servlets 2.3
ISBN: 186100561X
EAN: 2147483647
Year: 2006
Pages: 130

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net