打印本文 打印本文 关闭窗口 关闭窗口
EAServer Performance Tuning Techniques
作者:武汉SEO闵涛  文章来源:敏韬网  点击数15441  更新时间:2009/4/22 23:10:00  文章录入:mintao  责任编辑:mintao
join tables, but can be used only when one destination instance relates to a given source instance. "Managing Persistent Component State" in the EAServer Programmer's Guide Using EJB-QL

EJB 2.0 entity beans can use EJB Query Language (EJB-QL) in the EJB-JAR deployment descriptor. EAServer translates EJB-QL to SQL at runtime. You can configure additional EAServer query mapping properties to enable caching of the query results for improved performance.

"Configure finder- and ejbSelect-method queries" in EAServer Programmer's Guide Session Bean Pooling Unlike stateful session beans, stateless session beans can be pooled by the server, improving overall application performance. "Stateless session beans" in EAServer Programmer's Guide

Web Components (JSPs / Servlets)

This section contains suggestions applicable to Servlets, JSPs, and Web Applications.

Category Performance Considerations More Information Dynamic Page Caching

To improve the performance of Servlet and JSP requests, you can use the page caching feature. When page caching is enabled for a Servlet or JSP Web component, EAServer checks the cache before invoking the Web component. If an appropriate response is found in the cache, EAServer returns the contents of the cache, instead of calling the Servlet

Page caching is not enabled for any JSPs or Servlets by default. It must be enabled on page by page basis as caching requirements might be different for each jsp/Servlet See:

  • com.sybase.jaguar.servlet.cache=CtsComponents/PageCache
  • com.sybase.jaguar.servlet.cache.timeout
  • "Page caching" in EAServer Programmer's Guide Threading If possible, Servlets should be coded to be thread-safe so the service method can be called concurrently from multiple threads. This threading model is the default for Servlets running in EAServer, and in most cases, offers the best performance "Threading" in EAServer Programmer's Guide JSP / Servlet Performance Advantages over CGI, ISAPI, and NSAPI

    JSPs and Servlets provide superior performance and scalability because they can be compiled, loaded into memory, and reused by multiple clients while running in a single thread, and they can take advantage of connection caching or pooling.

    Additionally, they overcome many of the deficiencies of CGI, ISAPI, and NSAPI. Although the CGI-BIN interface is not platform-specific, code has to be recompiled for different platforms, and performance is poor for large-scale applications because each new CGI request requires a new server process. Similar platform-specific interfaces such as ISAPI and NSAPI improve performance, but at the cost of even less portability.

    "About Java Servlets" in EAServer Programmer's Guide Tune the check interval

    The com.sybase.jaguar.webapplicaton.jspc-interval property value indicates if and when the JSP runtime checks whether a JSP is current.

    • If set to a negative number, the JSP runtime never checks.
    • If set to 0, the JSP runtime always checks.
    • To specify the number of seconds before the next check, set the value to a number greater than 0. If a request comes in before the time expires, the JSP is not checked.
    "Page caching" in EAServer Programmer's Guide Tracing Ensure the com.sybase.jaguar.server.servlet.trace property is set to false. "Repository Properties Reference" in EAServer System Administration Guide Timeouts

    You can set initialization and destroy timeouts for Web Applications, and override most of the settings at the individual Servlet level. See these properties for more information:

  • com.sybase.jaguar.servlet.init.timeout
  • com.sybase.jaguar.servlet.session.timeout
  • com.sybase.jaguar.webapplication.init-timeout
  • com.sybase.jaguar.servlet.destroy.wait-time
  • com.sybase.jaguar.webapplication.destroy-wait-time
  • "Repository Properties Reference" in EAServer System Administration Guide

    "Server properties for Servlets" in EAServer Programmer's Guide

    Load On Startup You can decrease the amount of time it takes to serve up the first request to a Servlet by loading it on server startup with the com.sybase.jaguar.servlet.load-on-startup property. "Repository Properties Reference" in EAServer System Administration Guide

    C++ Components

    Category Performance Considerations More Information External Components If you configure a C++ component to execute within a dedicated external process, be aware the component will not utilize EAServer transactions or connection caches. "Running C++ components externally" in EAServer Programmer's Guide Maximum Active Instances

    The com.sybase.jaguar.component.objects specifies the maximum number of component instances that can exist at once. For a C++ component that runs as an external process, it specifies the maximum number of simultaneously running external processes.

    If a request arrives when the maximum number of instances exist and are all busy, the request blocks, with blocking time constrained by the Maximum Wait setting.

    "Repository Properties Reference" in in EAServer Programmer's Guide

    C Components

    Category Performance Considerations More Information Shared variables After a method finishes all operations on a collection, release the reference and all shared variable references. This helps to prevent memory leaks. Releasing collection and shared variable references does not release the shared variable values. "Release shared variable and collection references" in EAServer Programmer's Guide

    ActiveX Components

    Category Performance Considerations More Information Design issues You can define get and set methods that control runtime properties for your component. However, using get and set methods to access properties over a network decreases performance "ActiveX datatype support" in EAServer Programmer's Guide

    PowerBuilder Components

    In addition to good design and coding practices you would follow for any PowerBuilder applications, follow these suggestions for PowerBuilder components deployed to EAServer.

    Category Performance Considerations More Information DataStore footprint There are a number of steps you can take to reduce the memory footprints of DataStores. Documentation includes an explanation of system resource utilization, monitoring tips, and suggestions. Operating System Constraints Affecting the Scalability of PowerBuilder DataStores in EAServer Component Memory Management A technique for sharing class group loaders can be used to reduce the memory requirements -- sometimes dramatically -- of EAServer when running multiple PowerBuilder components.
    Reducing Memory Requirements When Using PowerBuilder Components in EAServer DataWindow Memory Management

    For large retrievals or imports into a DataWindow object, set the datawindow.storagepagesize property to large. Setting this property allows the DataWindow to most efficiently use the available virtual memory. While the setting LARGE is recommended, a setting of MEDIUM is also available.

    PowerBuilder 7.0.3 readme Will be added to 8.0 and 7.0.3 online help as well. Garbage Collection

    To remove unused objects from memory, you can call the GarbageCollect() function to force garbage collection to occur immediately.

    Forcing the Garbage Collection Process in PowerBuilder Bind Thread property

    Setting the Bind Thread property to false can improve performance. However, you can only set this property to false for a PB component that either:

    • does not declare a DataStore as an instance or global variable, or
    • is deployed to a UNIX server

    If the Bind Thread property is set to true, be sure to utilize Named Instance Pools, which is d

    上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页

    打印本文 打印本文 关闭窗口 关闭窗口