ColdFusion MX Server Administration J2EE Deployment and Clustering Adam Wayne Lehman J2EE Deployment and Clustering Adam Wayne Lehman
Adam Wayne Lehman Senior Systems Engineer, U.S. Department of State –OSAC.gov U.S. Department of State Adobe User Group Manager 10 years of web development experience Adrocknaphobia.com
Overview Installing ColdFusion MX (multi-server mode) –JRun Directory Structure Server Directory Structure JRun Management Console EAR/WAR Deployment –Web Application Overview JRun Tools –Server Instance Management –External Web Servers –Windows Services JRun Clustering –Example Infrastructures
ColdFusion MX Server Administration Considerations for Installing ColdFusion MX Considerations for Installing ColdFusion MX
Drive Setup C: Operating System J: JRun and installed COTS applications W: Web and application files S: Swap / Virtual Memory (PageFile.sys) –HD space equal to the amount of system RAM L: Log Files optional Installing ColdFusion MX
Install multi-server configuration Internal JRun web server only (stand-alone) Installing ColdFusion MX
JRun Full version of JRun installed Download and install the most recent JRun Updater JRun 4 Updater 6 Build Number Installing ColdFusion MX
JRun Directory Structure –Bin –JRE –Lib –Logs –Servers –Verity JRun Utilities and Executables. (JRun Launcher, Webserver Config, JRun Services, etc.) Installing ColdFusion MX
JRun Directory Structure –Bin –JRE –Lib –Logs –Servers –Verity Java Runtime Environment MX 7 ships with version Installing ColdFusion MX
JRun Directory Structure –Bin –JRE –Lib –Logs –Servers –Verity JRun Java Classes Included JVM classpath Installing ColdFusion MX
JRun Directory Structure –Bin –JRE –Lib –Logs –Servers –Verity JRun Log Files Installing ColdFusion MX
JRun Directory Structure –Bin –JRE –Lib –Logs –Servers –Verity Server Instances Installing ColdFusion MX
JRun Directory Structure –Bin –JRE –Lib –Logs –Servers –Verity Verity Search Server Installing ColdFusion MX
ColdFusion MX Server Administration Application Directory Structure
Directory Structure Application Folder –Application –ColdFusion Cache –Components –CustomTags –Lib –Logs –SERVER-INF Application / Web root directory Application Directory Structure
Directory Structure Application Folder –Application –ColdFusion Cache –Components –CustomTags –Lib –Logs –SERVER-INF ColdFusion EAR/WAR files. Application Directory Structure
Directory Structure Application Folder –Application –ColdFusion Cache –Components –CustomTags –Lib –Logs –SERVER-INF ColdFusion Component Base Directory Application Directory Structure
Directory Structure Application Folder –Application –ColdFusion Cache –Components –CustomTags –Lib –Logs –SERVER-INF Custom Tag Base Directory Application Directory Structure
Directory Structure Application Folder –Application –ColdFusion Cache –Components –CustomTags –Lib –Logs –SERVER-INF Java classes (JARs) and other deployed web applications (WARs) Application Directory Structure
Directory Structure Application Folder –Application –ColdFusion Cache –Components –CustomTags –Lib –Logs –SERVER-INF Log files * If not storing on a separate drive Application Directory Structure
Directory Structure Application Folder –Application –ColdFusion Cache –Components –CustomTags –Lib –Logs –SERVER-INF JRun server files Application Directory Structure
ColdFusion MX Server Administration JRun Management Console (JMC) JRun Management Console (JMC)
JMC vs CF Admin JMC runs in a separate process outside of all ColdFusion instances. –JMC can be disabled when not in use. –ColdFusion instances can be managed while offline. CF Admin provides limited functionality. Pre-MX 7 clusters may exhibit strange behaviors when managed through CF Admin.
JRun Management Console (JMC) JRun Admin located at Login –Username: admin (case-sensitive) –Password: CFIDE password set during installation * username/password stored in \servers\admin\jrun-users.xml Default servers installed under /servers JRun Management Console
3 Servers Installed –Samples : Generic J2EE server instance –CFusion : ColdFusion MX server instance –Admin : JRun Administrator instance Remove CFusion and Samples server –Remove the server without removing any associated files or directories JRun Management Console
Creating A New Server 1.Select Create a New Server in the JRun Management Console. 2.Specify the Application Folder as the JRun Server Directory. 3.Remove the default-ear directory from your Application Folder. 4.Start the server. JRun Management Console
JNDI Java Naming and Directory Interface – Servers use this port to communicate within the cluster HTTP Built-in JRun web server Proxy Interface allowing external web servers to communicate with JRun JRun Management Console
EAR/WAR Deployment Archive deployment –Entire structure is contained in a single archive –Compact –Easy to version and swap –Recommended for a single deployment Expanded deployment –Hot deployment –Easy to edit and update files –Recommended for a clustered deployment EAR/WAR Deployment
Archive Deployment 1.Run the ColdFusion installation to create the EAR/WAR archive EAR : Enterprise Application Archive WAR : Web Application Archive An EAR may contain multiple WARs 2.Copy the EAR/WAR to /ColdFusion 3.Select the server in the JRun Management Console to view the J2EE Components 4.Add a new Enterprise Application / Web Application 5.Select the EAR/WAR 6.Deploy EAR/WAR Deployment
Expanded Deployment 1.Expand the EAR/WAR directory structure. 2.Copy the CFIDE, META-INF, and WEB-INF directories to /ColdFusion. –Do not copy the CFIDE if you do not wish to deploy the ColdFusion Administrator. 3.Start the server. –The EAR/WAR will be automatically deployed when the server starts. EAR/WAR Deployment
Web Application Overview JRun Management Console
Web Application Overview Context Path Host: Restricts the host address of the application. Context Path: The base context path of the application. –Context Path Host + Context Path = Application URL Document Root: Application root directory. – /Application Dynamic Reload/Compile: JRun dynamically recompiles and reloads servlets, JSPs, servlet helper classes, and JSP helper classes when a servlet or JSP is called. (Disabled by default). JRun Management Console
Web Application Overview Directory Browsing: Allow users to browse directories if a file is not specified. File Serving: Allow the application to process templates. File-based Session Persistence / Session Replication: Enables session sharing across a cluster Replication Buddy: Determines the servers in the cluster to share sessions with. JRun Management Console
Web Application XML false false false / W:\CFMX7\Application / false UTF-8 /ColdFusion/WEB-INF/jrun-web.xml JRun Management Console
Internal Web Servers ProxyService: Interacts with external web servers (IIS, Apache, etc.) WebService: Built-in JRun web server. JRun Management Console
ColdFusion MX Server Administration JRun Tools
Configuring External Web Servers Web Server Configuration Tool (WSConfig.exe) –Found under \bin –Both GUI & Command Line JRun Tools
Configuring External Web Servers JRun Host / Server: JRun server instance or cluster running ColdFusion Web Server: Type of web server IIS Web Site: Available IIS web sites which are not already connected to JRun Configure web server for ColdFusion MX: –Sets common properties of the web server when using ColdFusion. (Specifies index.cfm as a default document) JRun Tools
Register Windows Services JRunSVC Tool (JRunSVC.exe) –Found under \bin –Command line only –Install, remove, start, and stop the JRun server's Windows service. jrunsvc -install jrun_server [service_name [service_display_name [service_description]]] jrunsvc -[remove|start|stop service_name] * Wrap the service name in quotes (“”) if the name contains any spaces. JRun Tools
JRun Server Management JRun Launcher Tool (JRun.exe) –Found under \bin –Both GUI & command-line Start, stop and restart JRun instances without the need for the running admin service or a web browser. JRun Tools
Coldfusion MX Server Administration JRun Clustering
Infrastructure JRun Clustering
Infrastructure Load Balancer: Balances web requests to multiple web servers. Web Server: Responds to web requests and directs processing or requests to JRun. (IIS, Apache, etc.) JRun Web Connector: Software process which directs processing requests from the web server to JRun. JRun: Application server running multiple instance of ColdFusion MX. ColdFusion MX: If you need a definition, please exit the room quietly. JRun Clustering
JRun provides enterprise-level server clustering for maximum reliability and scalability. Clustering is built into the web server connectors and the JRun kernel: –At the web server connector level, clustering enables load balancing and automatic failover between the web server and the web containers. –At the kernel level, clustering enables load balancing and automatic failover for clusterable server objects, such as EJBs, JNDI trees, or any clusterable custom service. JRun servers use the JINI technology to dynamically locate their peers in the cluster, eliminating the risk inherent to a single point of failure. (multi-casting) JRun Clustering
Basic Request JRun Clustering
Basic Request 1.The page request is received by the Web Server. 2.The Web Server passes a process request to the JRun Web Connector. 3.The JRun Web Connector passes the process request to the JRun server instance running ColdFusion MX. JRun Clustering
Basic Request Single Point of Failure –If any part of the infrastructure fails, the application goes offline. JRun Clustering
Balanced Request JRun Clustering
Balanced Request 1.The page request is directed through the load balancer to the Web Server. Any available Web Server may handle the request. 2.The Web Server passes a process request to the JRun Web Connector. 3.The JRun Web Connector passes the process request to the JRun server instance running ColdFusion MX. JRun Clustering
Balanced Request Single Point of Failure –The Load Balancer only creates redundancy within the Web Servers. –During a ColdFusion MX failure users are redirected to a different ColdFusion MX instance. All session data is lost. –The Load Balancer is not always aware that ColdFusion MX has failed. Most load balancers are unable to monitor the health of a server beyond the web server. The load balancer will continue to forward requests towards a slow running or hung ColdFusion MX server. –When a Web Server fails, a healthy ColdFusion MX is no longer utilized (and vice-versa). JRun Clustering
Clustered Request JRun Clustering
Clustered Request 1.Follows the same path to the JRun Web Connector as the balanced request. 2.The JRun Web Connector forwards the process request to a JRun server instance running ColdFusion MX. Any available ColdFusion MX instance may handle the request. JRun Clustering
Single Point of Failure The clustered infrastructure does not have a single-point-of failure. JRun Clustering Except for the Load Balancer…. and every piece of networking equipment… In a clustered environment the parts of the infrastructure most likely to fail are redundant.
Coldfusion MX Server Administration Creating A JRun Cluster
Register Remote Server 1.Select Register Remote Server in the JRun Management Console. 2.Specify the Host Name, JRun Server Name and JNDI Port Number of the server you wish to register. Use the IP address of the remote server rather than the host name. Creating A JRun Cluster
Creating a Cluster 1.Select Create a New Cluster in the JRun Management Console. 2.Specify the Cluster Name. 3.Add Servers to the cluster. (Do not include the admin server) 4.Restart all servers in the cluster. Creating A JRun Cluster
Session Replication On Web Application Overview page: 1.Check Enable Session Replication 2.Specify * as a New Replication Buddy and click the Add button. 3.Set persistence config to false in the jrun-web.xml file. 4.Restart the server. Session replication does not work with file-based session persistence. Creating A JRun Cluster
Web Application XML false false true / W:\CFMX7\Application / false UTF-8 /ColdFusion/WEB-INF/jrun-web.xml Creating A JRun Cluster
Connecting A Cluster 1.Use the Web Server Configuration Tool to connect the cluster to an external web server following the same process used to connect a single instance. 2.Select the cluster in JRun Server drop-down. –Ensure that all members of the cluster are running before using the Web Server Configuration Tool. –When using multiple NICs specify the local IP address of the NIC card under JRun Host 3.Restart all servers in the cluster. Creating A JRun Cluster
Testing A Cluster The following ColdFusion code will output the JRun server instance name: #createObject(‘java’, ‘jrunx.kernel.JRun’).getServerName()# Creating A JRun Cluster
Reference Clustering ColdFusion MX for J2EE for JRun /endtoend.html /endtoend.html JRun Administrator’s Guide Guide Guide JRun Command-line Tools s4.htm s4.htm
Full-Day Course ColdFusion Server Administration –CFUnited Pre-Conference Course –June 26, 2006 –North Bethesda Marriott –Additonal Topics JRun 4.5 (Cheeta) Build servers and clusters Performance Tuning –My Birthday!
Coldfusion MX Server Administration Q & A?