glassfish in production environments
DESCRIPTION
Get to know GlassFish Community, the differences between Oracle GlassFish Server, and also all the capabilities for Management, Administrative tasks, Monitoring, Tuning and Configuration for Production Environments of all your Java EE applicationsTRANSCRIPT
![Page 1: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/1.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1
GlassFish in Production EnvironmentsBruno BorgesPrincipal Product ManagerJava Evangelist
![Page 2: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/2.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.2
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
![Page 3: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/3.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3
OpenSourceProject
Commercial Product
GlassFish Server
ReferenceImplementation
GlassFish
![Page 4: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/4.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4
GlassFish ServerReference Implementation
![Page 5: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/5.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5
Java EE – And GlassFish - Journey
Java EE 7
2005-2012
Ease ofDevelopment
Lightweight
Developer Productivity & HTML5
32 specs
1998-2004
Enterprise Java Platform
Robustness
Web Services J2EE
20 specs EE 5, EE 6
28 specs
2013 - Future
![Page 6: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/6.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6
Java EE 7 ThemesJava EE 7 Themes
DEVELOPER PRODUCTIVITY
MEETING ENTERPRISE DEMANDS
Java EE 7
Batch Concurrency Simplified JMS
More annotated POJOs Less boilerplate code Cohesive integrated
platform
WebSockets JSON Servlet 3.1 NIO REST
![Page 7: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/7.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7
Java EE 7 Community Momentum
AC
TIV
E P
RO
JEC
TS
26
Active and transparent mailing lists
JSR
s AD
OP
TE
D
22
JUG
s
19
Adopt a JSR
PR
OM
OT
ED
BU
ILD
S89
GlassFish
YOU
187
CO
MP
AN
IES
32
EX
PE
RT
S
SP
EC
LE
AD
S
16
AC
TIV
E JS
Rs
14
![Page 8: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/8.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8
GlassFish ServerOpen Source Project
![Page 9: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/9.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9
GlassFish Server
Built in open source
World’s first Java EE 7 Application Server
Lightweight / modular / easy to use
Production ready
Open Source Project
![Page 10: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/10.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10
The GlassFish Community
10+ million annual downloads
FishCAT - Early testing and fixes
Active user forums
Community contributions
![Page 11: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/11.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11
Centralized management
Integrated GlassFish Server Provisioning Manage instance/cluster lifecycle Manage configurations Manage Java EE resources Manage application lifecycle
![Page 12: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/12.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12
Flexible Administration
Web Browser
REST API
Command Line
![Page 13: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/13.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13
GlassFish Server Administration Architecture
Cluster 1
DomainAdministration
Server
(DAS)
instance4
ssh /dcom /http
http
Repository
instance2
instance3
instance1
RESTJSONXML
![Page 14: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/14.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14
GlassFish Server Clustering
Manage 100 instances per domain– Standalone
– Clusters (max 10 per cluster)
Dynamically resize cluster JMS Broker Clustering Load Balancing
– Commercial plugin
– AJP (mod_jk, mod_proxy)
![Page 15: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/15.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15
Application Versioning
Deploy multiple versions application versions Activate any version For example:
– Roll forward and backwards between versions
– Pre-deploy application for later activation
– Enable new version at specific time of day Deploy versi
on 1
Dep
loy
vers
ion
2
Rollback
![Page 16: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/16.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16
GlassFish Modularity
Starts in seconds Only loads required
modules Including
“infrastructure” features
In a nutshell
OSGi
EJB Servlet
274
JPA
…
JMS Broker
app1.war
CDI
CDI REST WebSocket Bean Validation
Clustering Console HTTP
app2.ear
![Page 17: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/17.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17
OSGi Support
OSGi Runtime (Apache Felix)– Also runs on others
– Ships with ~275 modules
– Integrates OSGi management tools
Hybrid Java EE / OSGi Applications– Expose EJBs as OSGi Services
– Inject OSGi services into Java EE applications
Run any OSGi bundle Supports OSGi Enterprise
![Page 18: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/18.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18
Extending GlassFish Server
Define a new container– System-level logic
– Implement administration commands
Expose administration capabilities– Administration Console
– Command Line
– RESTful Interface
Embeddable API Re-brand user interface
![Page 19: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/19.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19
Built-in Developer Features
Ultra-fast deployment– Hot deployment
– Directory deployment
– Auto-deploy directory
Run as a single JAR java –jar glassfish.jar app1.war
Maven Plugin mvn gf:run, gf:start, gf:deploy
![Page 20: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/20.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20
Active Redeploy
Maintains state across redeploys
Rapid Iterative development– Edit
– Save
– Refresh
1) Edit
2) Save
3) Refresh
![Page 21: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/21.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21
NetBeans 7.3.1 + GlassFish 4.0
NetBeans bundles GlassFish Incremental compilation; auto-deploy Complete Java EE 7 support
– All Java EE 7 project types
– Maven Support
– Wizards
– Advanced Wizards Entity to REST generation Database to JSF 2.2
![Page 22: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/22.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22
Oracle GlassFish ServerCommercial Product
![Page 23: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/23.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23
Oracle GlassFish Server
Commercial Distribution of GlassFish Server Open Source Edition
GlassFish Server Control Java SE support 24 x 7 x 365 premium support Regular patch releases Indemnification
Java EE 6 Compliant
![Page 24: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/24.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24
Oracle Enterprise Manager 12c
Features– Discovery
Applications not discovered
– OOTB Monitoring (live, historical)
– Event Monitoring
– Configuration management
– Process controle (live, schduled)
EM FMW Plugin 12.1.0.4 GlassFish Open Source and Commercial versions
GlassFish Plugin
![Page 25: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/25.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25
GlassFish Server Control
Performance TunerDAS Backup & RecoveryMonitoring
Scripting Client
ActiveCache for GlassFishOracle Access
Manager IntegrationLoad Balancer
Plugin & Installer
![Page 26: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/26.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26
TUNING FOR PRODUCTION ENVIRONMENTS
![Page 27: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/27.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27
Quick Start and Overview
Download from glassfish.org– ZIP and native installers (Mac, Linux, Windows)
– Download Size Smallest at 37Mb for English Web Profile Biggest at 114Mb for Multilingual Full Profile
Install (requires JDK 7)
– Execute native installer or uncompress ZIP file
Run– $ cd glassfish4
– $ ./bin/asadmin start-domain
Download, Install, Run
![Page 28: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/28.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28
![Page 29: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/29.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29
Default configurations
GlassFish comes by default best configured for development environments
– Default security configurations OTOH come pre-configured
– A default GF domain does not enables remote access for admin
Best for hot deployment Great for integrating and using from within IDEs
Development purpose
![Page 30: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/30.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30
Basic stuff: JVM options
A production domain will need more memory, and other fine tuned options
– Edit <java-config> inside domain.xml manually, or
– Edit through Admin CLI or Web UI
JVM Options
-Xms and -Xmx to same value (at least 2GB)
-XX:MaxPermSize and -XX:MinPermSize to same value (at least 256mb)
More memory for production environments
![Page 31: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/31.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31
Garbage Collector and Heaps
There are several options, but G1 is available for a while and you should consider it. Analyse, compare, and decide
Enable -verboce:gc Enable -XX:+PrintGCDetails Inform -Xloggc:/tmp/my_glassfish_vm_gc.log Make sure devs can’t freeze your VM by enabling
– XX:+DisableExplicitGC
Enable heap dump for when you get OOME
Analyse and consider G1 from HotSpot 7
![Page 32: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/32.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32
Disabling Developer Features
Disable auto-deploy and dynamic application reload Disable JSP check for modified date Enable cache of characters in Strings
– Edit domain1/config/default-web.xml
– genStrAsCharArray=true
– ** this might bring encoding issues
Because this is a production environment
![Page 33: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/33.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.33
Request and Acceptor Threads
Define Acceptor Threads to a number similar to the number of Cores in your CPU
Increase the number of threads for the HTTP Listener, to as much as your CPU can handle simultaneously
Set min and max threads pool size to same value
Handling more than <several> users at the same time
![Page 34: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/34.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.34
LOGGING
Always disable:
Unnecessary logging
![Page 35: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/35.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.35
Monitor, tune, monitor, tune
Always monitor
Keep tuning
Tools– jmap / jps, jstat, jconsole
![Page 36: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/36.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.36
CUSTOMERSTORIES
![Page 37: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/37.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.37
Customers using GlassFish in Production
Jelastic was the first cloud to provide GlassFish 4.0 with Java EE 7 Pense Imóveis, real estate buyer/seller network Guia da Semana, enterteinment/schedule website Parleys.com CloudBees first to ofer Java EE 7 (Using GlassFish)
Besides Jelastic
![Page 38: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/38.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.38
ROADMAP
![Page 39: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/39.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.39
GlassFish Server 4.x
2013 2014
GlassFish Server 4.0• Java EE 7• Open Source Edition• Clustering (early access)
GlassFish Server 4.0.1• Bug Fixes
GlassFish Server 4.1• Clustering• Improve modularization• GlassFish Server Control• Oracle GlassFish Server• Bug fixes
Major
Minor
![Page 40: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/40.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.40
Future of Java EE
JCACHEStateManagementConfiguration
HTML5 ++Cloud / PaaS
JSONBinding
Java EE 8and Beyond
NoSQL
![Page 41: GlassFish in Production Environments](https://reader036.vdocuments.us/reader036/viewer/2022062405/554fcc68b4c90542018b5331/html5/thumbnails/41.jpg)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.41