Presentation is loading. Please wait.

Presentation is loading. Please wait.

Best Practices for AppServers & WebSpeed Operation

Similar presentations


Presentation on theme: "Best Practices for AppServers & WebSpeed Operation"— Presentation transcript:

1 Best Practices for AppServers & WebSpeed Operation
Dan Foreman Progress Expert, BravePoint

2 Introduction – Dan Foreman
Progress User since 1984 Author of several publications & utilities Publications Progress Performance Tuning Guide Progress Database Administration Guide Progress Virtual System Tables Progress V10 DBA Jumpstart Utilities ProMonitor – Database monitoring ProCheck – AppServer/WebSpeed monitoring Pro Dump&Load – Dump/load with minimum downtime Balanced Benchmark – Load testing tool

3 Glossary/Terminology
AS = AppServer WS = WebSpeed Agent Progress Explorer – the original graphical tool for managing AS, WS, and other processes OpenEdge Explorer – replacement for Progress Explorer starting in V10.2; shares the same interface as OpenEdge Management

4 Starting & Stopping – Command Line or GUI
Advantages of GUI (i.e. Progress/OpenEdge Explorer) Easy to use Can easily access resources on multiple servers Safer way to edit the ubroker.properties file although using mergeprop is a safe way to manually edit the properties files

5 Starting & Stopping – Command Line or GUI
Disadvantages of GUI Some attributes are not ‘visible’ (no check box or fill in) although they can be referenced by using a parameter (.pf) file In Progress Explorer right-clicking can be dangerous if your finger or mouse slips

6 Starting & Stopping – Command Line or GUI
Advantages of Command Line Scriptable Repeatable Better logging Disadvantages of Command Line Sometimes not as easy to talk someone through on the phone Primitive method (in the eyes of some)

7 Mode of Operation StateAware StateReset Stateless StateFree

8 StateAware & StateReset
The Advantage of StateAware/StateReset is that the AppServer maintains application context. This is because each user of an application is bound to and locks a single Appserver for the duration an "Application Session". This binding is also the main disadvantage since it means that it is necessary to spawn one AppServer for each active user, which leads to the consumption of more OS resources and potentially more licenses

9 Stateless & StateFree Stateless and StateFree are shared by multiple Clients and should only be locked by a Client for a very short period of time. Since a single AS/WS can service many Clients (with well written code), this mode of operation is very scalable and the most widely used; The disadvantage is that the Application must be written to maintain user context

10 Performance Tuning AS & WS are Progress Clients just like GUI and CHUI 4GL/ABL Clients and use the same tuning parameters

11 Performance Tuning Quick Request (-q)
Trim all AppServers when implementing new code Execution Buffer (-mmax <big>) The default of 3072k is usually too small for AS & WS Use a minimum of

12 Performance Tuning Sorting (-TB 31 -TM 32)
The Progress documentation recommends –TB 24 but 24 has slower performance than 31

13 Performance Tuning Temp Table Buffers (-Bt <big>)
Most AS/WS applications make heavy use of Temp Tables Temp Table DB Blocksize (-tmpbsize #) Set explicitly because the default value has changed multiple times

14 Performance Tuning Message Size (-Mm)
Somewhat tricky to implement because it must be used on both the AS/WS and the database(s) that the AS/WS connects to Good performance improvement with NO-LOCK reads Recommend 4096 or 8192

15 Performance Tuning Message Compression (-mc)
Best gains seen over a WAN or a very slow LAN connection

16 Performance Tuning Shared Procedure Libraries (sometimes called Memory Mapped Procedure Libraries) To ‘unload’ and make updates to the library, it may be necessary to trim all of the AS & WS Main benefits are for large scale AS/WS sites

17 Performance Tuning For best performance, AS and WS should normally reside on the same server as the Database

18 Other Parameters -rereadnolock Extremely important for AS and WS
Numerous Kbase entries describe this parameter

19 Do I want to talk to the Name Server?
Depending upon the Mode of operation & programming model used, AS & WS calls might need to communicate with the Name Server Performance can be improved by stopping this ‘conversation’ by using the –DirectConnect parameter

20 Do I want to talk to the Name Server?
Disadvantages of -DirectConnect No AS Load Balancing No AS Failover The Connection port is hardcoded

21 Logging Can be set for all or individual AS/WS
Logging level can be dynamically changed in OE 10.2B

22 Logging Higher logging levels can
Degrade performance Cause the logs to grow quickly The increased ‘verbosity’ can make it difficult to find what you are looking for when there are problems Lower logging levels can make it difficult to troubleshoot problems

23 Logging In general the Server log is the first place to look when troubleshooting

24 Monitoring Options Graphical Progress Explorer – V10.1 and earlier
OpenEdge Explorer – V10.2 and later OpenEdge Management – AS/WS capabilities added in late V10

25 Monitoring Options Command Line Other asbman wtbman
Actional – a Progress product ProCheck – from BravePoint

26 What to Monitor Memory utilization Java memory utilization
Memory utilization of _progres & _proapsv processes Memory leaks caused by code that doesn’t cleanup after itself are magnified on AS & WS

27 What to Monitor WebSpeed Should never see LOCKED
Send an Alert if there are no AVAILABLE Agents Average Request Duration (importance is dependent upon the WS mode of operation) Average Request Wait (importance is dependent upon the WS mode of operation)

28 What to Monitor AppServer
If an AS shows as SENDING, that is usually R-Code execution Send an Alert if there are no AVAILABLE Agents Average Request Duration (importance is dependent upon the AS mode of operation) Average Request Wait (importance is dependent upon the AS mode of operation)

29 Miscellaneous Tips Use separate AppServer Brokers for ASYNC and SYNC calls In proxyGen there is a choice of adding the procedure as persistent or non-persistent. In order to ensure the best performance out of WebServices, it is a good idea to configure the procedures as non-persistent. Otherwise you may find your StateFree AppServers all locked by just a few users

30 New Admin Features in V10.1B
“Smart Connections” (10.1B) – Improved connection procedure connection (e.g. failure) reporting from the connection procedure Life Span (10.1B) - shutdown/restart AS/WS after a specified period of time serverLifespan=0 serverLifespanPadding=5

31 New Admin Features in V10.2A
List AppServer Connections (10.2A) – show a list of connections to an AS/WS Examples on the next two slides

32 List AppServer Connections
>asbman -i asbroker1 –listclients ConnHdl User Rmt IP Rmt Port State CONNECTED CONNECTED

33 List AppServer Connections
> asbman -i asbroker1 -clientdetail 2 conn hdl= 2 user name= remote addr= remote port= 1203 connection state= CONNECTED conn ID= ::asbroker1::3090::<snip> request count= 1 agent PID= 2176 agent port= 2002

34 New Admin Features in V10.2B
ASK - AppServer KeepAlive - (10.2B) appServerKeepaliveCapabilities=denyClientASK,denyServerASK serverASKActivityTimeout=60 serverASKResponseTimeout=60 Dynamic Properties (10.2B) AutoStop on Timeout (10.2B) – Limit the amount of time given to an operation

35 New Admin Features in V10.2B
Actional Monitoring (10.2B) – Use Actional to monitor AS/WS in addition to other resources in an SOA environment

36 Conclusion Thank you for coming
Contact Info for Dan Foreman Telephone


Download ppt "Best Practices for AppServers & WebSpeed Operation"

Similar presentations


Ads by Google