Access to add and change pages is restricted. See: https://cwiki.apache.org/confluence/display/OFBIZ/Wiki+access

Configuration, Deployment and Maintenance

Target Audience

  1. System Administrators
  2. Database Administrators
  3. Application Server Administrators
  4. Application Support Personnel

Topics Covered

  1. Building Blocks
    1. Operating System Recommendations
      1. Linux
      2. OS X
      3. Unix Varieties
      4. Windows Server
    2. Database Server Recommendations
      1. MySQL MaxDB (was SAP DB)
      2. Postgres
      3. Oracle, Sybase, MS SQLServer, DB2, other commercial databases
    3. Application Server Recommendations
      1. Servlet & JSP Container
        1. Jetty
        2. Tomcat
        3. Orion, Weblogic & other commercial containers
      2. Transaction Manager
        1. JOTM
        2. Orion, Weblogic & other commercial containers
      3. Connection Pool
        1. Minerva
        2. XAPool
        3. Orion, Weblogic & other commercial containers
    4. Server Farm & Network Layout Recommendations
      1. Single Server - all in one
      2. Separate Application & Database Servers
      3. Independent Static Content Server Option
      4. Load Balanced Application Server Farm Options
        1. IP Based Load Balancer
        2. Session Aware Load Balancer
        3. Application Server Specific Load Balancers
        4. Session Replication Note
      5. Load Balanced Database Options
  2. Setting Up a Database
  3. Downloading and Installing Java - java.sun.com
  1. OFBiz
    1. Getting OFBiz
      1. Download a Release
        1. Best for demonstration, evaluation, low profile deployments
      2. Getting from CVS
        1. Best for larger projects or where any real customization is done
        2. CVS Client - OS Dependent, or in IDE
        3. CVS Server Location & Login Account
      3. Building
        1. Download and Install Ant - ant.apache.org
        2. Build Files
    1. Deploying & Configuring OFBiz
      1. Database Configuration
        1. jndiservers.xml
        2. entityengine.xml
      2. J2EE Application Server Configuration
        1. Servlet & JSP Container
        2. Transaction Manager
        3. Connection Pool
        4. JMS Configuration
      3. Production Oriented Settings
        1. URL Settings
          1. HTTP & HTTPS Setup and cross-forwarding with the ofbizUrl tag
          2. Static Content Server Location Setup
          3. url.properties
          4. WebSite entity
        2. Cache Settings & Analysis
          1. cache.properties
            1. Persistent Cache Settings (used when server starts up)
          2. WebTools Cache UI
            1. See Cache Statistics
            2. Change Cache Parameters on-the-fly (cleared on server restart)
        3. Debug & Logging Settings
          1. Log4J
          2. debug.properties
        4. Multiple OFBiz instance on Different Ports
          1. base/config/jndi.properties
          2. base/config/ofbiz-containers.xml
          3. base/src/start/org/ofbiz/base/start/start.properties
          4. framework/entityext/servicedef/services.xml
          5. framework/jotm/config/carol.properties
    2. Keeping Up With OFBiz
      1. Benefits of Staying Up-To-Date with The Project
      2. Open Source versus Proprietary
        1. Benefits of Putting as Much as Possible in the Open Source Project
        2. What to Keep Proprietary
      3. Code Design for Easier Maintenance
      4. Managing Your Own Code Repository
        1. Separate CVS Modules
        2. Single CVS Modules with Proprietary Branch and Vendor Branch
          1. Branched Tagging
          2. Importing Vendor Branch
          3. Merging Branches
  1. Restarting versus Run-time Changeable
  2. The OFBiz WebTools
    1. General Tools
    2. Entity Engine Tools
    3. Service Engine Tools
    4. Workflow Engine Tools
    5. Performance Tools
  3. Performance & Reliability
    1. Monitoring
      1. Network Load Monitoring
        1. Internal Network
        2. Internet Bandwidth Used
      2. Server Resource Monitoring
        1. Memory (RAM) Usage
          1. Amount Used/Available Over Time (tends to go up and down)
          2. Read/Write Volume
        2. Virtual Memory Usage (watch closely...)
        3. Disk Usage
          1. Amount Used/Available (tends to steadily increase)
          2. Read/Write Volume
          3. Data Warehousing
            1. Active versus Warehoused Data
            2. Separate Databases with Different Performance and Volume Needs
        4. Different Needs for Different Server Roles
          1. Static Content Servers
          2. Application Servers
          3. Database Servers
          4. Special Purpose Boxes
          5. Developing, Testing and Production Servers
      3. Load Testing
        1. Tests Different Activities (browse, search, small & large transactions, ...)
        2. Test on Production Servers, preferably with little or no real customer load
        3. Should generally be done before launch, and before known busy seasons
        4. Load Testing Tools
          1. Commercial (like LoadRunner, others)
          2. Open Source: Apache Jakarta JMeter - jakarta.apache.org
      4. Production Monitoring
        1. Client Response Time on a Remote Network
        2. Resource Availability
          1. Secure and Non-secure Ports for Web Servers (Static Content & App Servers)
          2. Database Availability
        3. Automated Notifications (email, pager, etc)
        4. Internal versus Remote Monitoring
          1. Monitoring and Management Software
            1. Commercial
              1. HP OpenView
              2. Patrol
              3. Netcool/Omnibus
            1. Open Source
              1. *NOCOL - www.netplex-tech.com/software/nocol
              2. *Netsaint - www.netsaint.org
              3. *Big Brother (fee for commercial use) - maclawran.ca/sean/bb-dnld
              4. Mon - www.kernel.org/software/mon
              5. Angel Network Monitor - www.ism.com.br/paganini/angel
              6. Autostatus - www.angio.net/consult/autostatus
              7. The Event Monitor Project - www.gsyc.inf.ec3m.es/~assman/em/
              8. MARS - www.altara.com/mars.html
              9. Netup - www.pasteur.fr/units/sys/netup
              10. OverCR - www.monitor.org/overcr
              11. Spong - monsters.org/pub/spong
              12. PIKT - pikt.uchicago.edu/pikt
              13. JMon - www.dsp.sun.ac.za/jjb/jmon
              14. Sysmon - www.sysmon.org
              15. NocMonitor - www.nocmonitor.net
          1. Outsourced Monitoring Services
    1. Improving Performance
      1. Load Balancing with a Server Farm
        1. Also Good for Reliability
        2. More Difficult and Expensive to Setup and Maintain than a Single Server per Function
        3. Easiest for the Application Server and Static Content Server
        4. Possible with Database, Depends a Lot on the Database Used
      2. Separate Static Content to Independent Server, or on a Content Service like Akamai
      3. Caching
        1. Easiest Scaling on Application Server Level, Cache Dynamic Content There
        2. Database Data on the Application Server
        3. Full or Partial Rendered Content on Application Server
        4. Issues with Caching
          1. Large Content
          2. Infrequently Viewed Content
          3. Frequenctly Changed Content
      4. Query Analysis and Optimization
        1. Analysis Tools, Common Parameters (records searched, time, temp space used, etc)
        2. Indexes
        3. Changing Queries
        4. Server Hardware
          1. Memory
            1. Watch RAM versus Virtual Memory (disk based) Activity
            2. Putting Commonly Used Tables in Memory for Queries Requiring Full Table Scans
            3. Consider More Memory
          2. Hard Disks & Storage Volumes: Indexes, Data, etc
      5. Code Analysis and Optimization
        1. Optimization Technique
          1. It is almost always hard to know what will be slowest for a given piece of code
          2. First write the code to do what is required, don't worry too much about performance
          3. Analyze the execution of the code with a profiling tool to find where most of the time is being used
          4. Concentrate only on the places where a lot of time is used, ie bang for the buck
        2. Code Profiling Tools
        3. Analyzing Results
          1. Calls to Methods
          2. Time Spent in Methods
          3. Allocated Object Counts
          4. Browsing Hierarchies of Calls and Objects
        4. Common Slow Spots
          1. Watch Java Classpath Searching, Very Expensive (and mostly eliminated)
          2. Watch the Inner Loop, ie the code that is run the largest number of times
          3. Communication with other external resources and serialization/deserialization
            1. Databases
            2. Browsers
            3. Peer Application Servers
            4. File Systems
            5. Local versus Wide Area Networks
          4. Expensive Object Creation/Initialization, Object Reuse Concept
    2. Improving Reliability
      1. Load Balancing (see comments under Improving Performance)
      2. Hot, Warm and Cold Fail-over
        1. Session replication
      3. Redundant Internet Connections
      4. Reliability Inside the Box
        1. Redundant Disk Arrays
        2. Redundant Power Supplies
        3. Redundant Network Connections
        4. Other Redundancies (less common): CPUs, Memory, etc
      5. The Importance of Security
        1. Firewalls
        2. Internal Only versus Internet Accessable Servers
          1. Keep Database Servers on local network only
          2. Put Application Servers and Content Servers on Local and Public Networks
  1. eCommerce Specific
    1. Web Sites, Stores and Catalogs
    2. Payment Processing
      1. Service Providers
        1. Cybersource
        2. ClearCommerce
        3. Verisign PayflowPro
        4. PayPal
        5. WorldPay
        6. ValueLink (gift cards)
        7. Offline Payment
      2. Payment Properties File
      3. Payment Services
      4. Store Payment Settings
    3. Tax Calculation
      1. OFBiz Internal
      2. ZipSales Data Subscription, with OFBiz code to use it
      3. TaxWare Integration
      4. Other
    4. Shipping Calculation
      1. OFBiz Internal
      2. Other
    5. Inventory Settings
      1. Check Inventory
      2. Require Inventory for Purchase (or allow back-orders)
      3. Reserve Inventory
      4. Inventory Warehouse (a type of Facility)
        1. Single Facility
        2. Multiple Facilities
    6. TODO: Fill-in all store related settings, etc
  • No labels