ColdFusion MX Server Administration - MD ColdFusion User's Group

Document Sample
ColdFusion MX Server Administration - MD ColdFusion User's Group Powered By Docstoc
					ColdFusion MX Server
      Administration
     J2EE Deployment and
               Clustering

            Adam Wayne Lehman
      adrocknaphobia@gmail.com
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
                                Installing ColdFusion MX

Drive Setup
• C: Operating System
• J: JRun and installed COTS applications
• W: Web and application files
optional

• S: Swap / Virtual Memory (PageFile.sys)
    – HD space equal to the amount of system RAM
• L: Log Files
                          Installing ColdFusion MX

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 106363
                      Installing ColdFusion MX

JRun Directory Structure
<JRun-root>
  –   Bin
  –   JRE            JRun Utilities and
  –   Lib              Executables.
  –   Logs      (JRun Launcher, Webserver Config,
                       JRun Services, etc.)
  –   Servers
  –   Verity
                     Installing ColdFusion MX

JRun Directory Structure
<JRun-root>
  –   Bin
  –   JRE
  –   Lib
                Java Runtime Environment
  –   Logs        MX 7 ships with version 1.4.2
  –   Servers
  –   Verity
                   Installing ColdFusion MX

JRun Directory Structure
<JRun-root>
  –   Bin
  –   JRE
  –   Lib
  –   Logs
  –   Servers     JRun Java Classes
                  Included JVM classpath
  –   Verity
                  Installing ColdFusion MX

JRun Directory Structure
<JRun-root>
  –   Bin
  –   JRE
  –   Lib
  –   Logs
  –   Servers      JRun Log Files
  –   Verity
                  Installing ColdFusion MX

JRun Directory Structure
<JRun-root>
  –   Bin
  –   JRE
  –   Lib
  –   Logs
  –   Servers
  –   Verity      Server Instances
                  Installing ColdFusion MX

JRun Directory Structure
<JRun-root>
  –   Bin
  –   JRE
  –   Lib
  –   Logs
  –   Servers
  –   Verity
                 Verity Search Server
 ColdFusion MX Server
       Administration
Application Directory Structure
                       Application Directory Structure

Directory Structure
• Application Folder
  – Application
  – ColdFusion            Application / Web root
      • Cache                    directory
  –   Components
  –   CustomTags
  –   Lib
  –   Logs
  –   SERVER-INF
                       Application Directory Structure

Directory Structure
• Application Folder
  – Application
  – ColdFusion
      • Cache          ColdFusion EAR/WAR files.
  –   Components
  –   CustomTags
  –   Lib
  –   Logs
  –   SERVER-INF
                       Application Directory Structure

Directory Structure
• Application Folder
  – Application
  – ColdFusion
      • Cache
  –   Components
  –   CustomTags       ColdFusion Component Base
                                Directory
  –   Lib
  –   Logs
  –   SERVER-INF
                       Application Directory Structure

Directory Structure
• Application Folder
  – Application
  – ColdFusion
      • Cache
  –   Components
  –   CustomTags
  –   Lib              Custom Tag Base Directory
  –   Logs
  –   SERVER-INF
                        Application Directory Structure

Directory Structure
• Application Folder
  – Application
  – ColdFusion
      • Cache
  –   Components
  –   CustomTags
  –   Lib
  –   Logs             Java classes (JARs) and other
                         deployed web applications
  –   SERVER-INF
                                  (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                   JRun server files
  –   SERVER-INF
ColdFusion MX Server
      Administration
  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

JRun Management Console (JMC)
• JRun Admin located at
  http://127.0.0.1:8000
• Login
  – Username: admin (case-sensitive)
  – Password: CFIDE password set during installation
     * username/password stored in
       <jrun-root>\servers\admin\jrun-users.xml

• Default servers installed under
  <jrun-root>/servers
                         JRun Management Console

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

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
                                      EAR/WAR Deployment

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 <Application Folder>/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 <Application Root>/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.
                JRun Management Console

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 Folder>/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
<Application Folder>/ColdFusion/WEB-INF/jrun-web.xml
<jrun-web-app>
   <enable-jrun-web-services>false</enable-jrun-web-services>
   <session-config>
         <persistence-config>
                  <active>false</active>
         </persistence-config>
         <replication-config>
                  <active>false</active>
         </replication-config>
   </session-config>
   <virtual-mapping>
         <resource-path>/</resource-path>
         <system-path>W:\CFMX7\Application</system-path>
   </virtual-mapping>
   <context-root>/</context-root>
   <compile>false</compile>
   <reload>false</reload>
   <uri-character-encoding>UTF-8</uri-character-encoding>
</jrun-web-app>
                       JRun Management Console

Internal Web Servers




• ProxyService: Interacts with external
  web servers (IIS, Apache, etc.)
• WebService: Built-in JRun web server.
ColdFusion MX Server
      Administration
            JRun Tools
                                  JRun Tools

Configuring External Web Servers
• Web Server Configuration Tool
  (WSConfig.exe)
  – Found under <JRun Root>\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 <JRun Root>\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 <JRun Root>\bin
  – Both GUI & command-line
• Start, stop and restart JRun instances
  without the need for the running admin
  service or a web browser.
Coldfusion MX Server
      Administration
         JRun Clustering
                 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 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.

            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
                                  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
<Application Folder>/ColdFusion/WEB-INF/jrun-web.xml
<jrun-web-app>
   <enable-jrun-web-services>false</enable-jrun-web-services>
   <session-config>
         <persistence-config>
                  <active>false</active>
         </persistence-config>
         <replication-config>
                  <active>true</active>
         </replication-config>
   </session-config>
   <virtual-mapping>
         <resource-path>/</resource-path>
         <system-path>W:\CFMX7\Application</system-path>
   </virtual-mapping>
   <context-root>/</context-root>
   <compile>false</compile>
   <reload>false</reload>
   <uri-character-encoding>UTF-8</uri-character-encoding>
</jrun-web-app>
                                             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:
<cfoutput>
   #createObject(‘java’, ‘jrunx.kernel.JRun’).getServerName()#
</cfoutput>
Reference
• Clustering ColdFusion MX for J2EE for JRun
  http://www.macromedia.com/devnet/coldfusion/j2ee/articles
  /endtoend.html
• JRun Administrator’s Guide
  http://livedocs.macromedia.com/jrun/4/JRun_Administrators_
  Guide
• JRun Command-line Tools
  http://livedocs.macromedia.com/jrun/4/JRun_SDK_Guide/api
  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?

				
DOCUMENT INFO