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