No part of this publication may be
reproduced, stored in a retrieval system, or
transmitted, in any form or by any means,
mechanical, electronic, photocopying,
recording, or otherwise, without prior
written permission of Apple Inc., with the
following exceptions: Any person is hereby
authorized to store documentation on a
single computer for personal use only and
to print copies of documentation for
personal use provided that the
documentation contains Apple’s copyright
notice.
The Apple logo is a trademark of Apple Inc.
Use of the “keyboard” Apple logo
(Option-Shift-K) for commercial purposes
without the prior written consent of Apple
may constitute trademark infringement and
unfair competition in violation of federal
and state laws.
No licenses, express or implied, are granted
with respect to any of the technology
described in this document. Apple retains
all intellectual property rights associated
with the technology described in this
document. This document is intended to
assist application developers to develop
applications only for Apple-labeled or
Apple-licensed computers.
Every effort has been made to ensure that
the information in this document is
accurate. Apple is not responsible for
typographical errors.
Apple Inc.
1 Infinite Loop
Cupertino, CA 95014
408-996-1010
Microsystems, Inc. in the U.S. and other
countries.
Simultaneously published in the United
States and Canada.
Even though Apple has reviewed this document,
APPLE MAKES NO WARRANTY OR
REPRESENTATION, EITHER EXPRESS OR
IMPLIED, WITH RESPECT TO THIS
DOCUMENT, ITS QUALITY, ACCURACY,
MERCHANTABILITY, OR FITNESS FOR A
PARTICULAR PURPOSE. AS A RESULT, THIS
DOCUMENT IS PROVIDED “AS IS,” AND
YOU, THE READER, ARE ASSUMING THE
ENTIRE RISK AS TO ITS QUALITY AND
ACCURACY.
IN NO EVENT WILL APPLE BE LIABLE FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL,
OR CONSEQUENTIAL DAMAGES
RESULTING FROM ANY DEFECT OR
INACCURACY IN THIS DOCUMENT, even if
advised of the possibility of such damages.
THE WARRANTY AND REMEDIES SET
FORTH ABOVE ARE EXCLUSIVE AND IN
LIEU OF ALL OTHERS, ORAL OR WRITTEN,
EXPRESS OR IMPLIED. No Apple dealer, agent,
or employee is authorized to make any
modification, extension, or addition to this
warranty.
Some states do not allow the exclusion or
limitation of implied warranties or liability for
incidental or consequential damages, so the
above limitation or exclusion may not apply to
you. This warranty gives you specific legal
rights, and you may also have other rights which
vary from state to state.
.Mac is a service mark of Apple Computer,
Inc.
Apple, the Apple logo, Logic, Mac, and Mac
OS are trademarks of Apple Computer, Inc.,
registered in the United States and other
countries.
Finder is a trademark of Apple Computer,
Inc.
Java and all Java-based trademarks are
trademarks or registered trademarks of Sun
Contents
Introduction
Chapter 1
Chapter 2
Chapter 3
Introduction to Java Application Server Guide 7
Organization of This Document 7
See Also 8
Application Server Overview 9
JBoss in Mac OS X Server 9
Three Deployment Configurations 10
Configuring Applications 11
Starting the Application Server 11
Configuring Your Application 13
Starting the JBoss Deployment Tool 14
Loading Your Application 14
Configuring Your Application’s Components 17
Saving a Configured Application 18
Deploying Your Application 19
Configuring and Deploying Sun’s Pet Store 21
Set Up the Environment 21
Configure the Pet Store Enterprise Application 22
Open the petstore.ear File in the Deployment Tool 22
Configure Application-Wide Settings 23
Configure the AsyncSender Enterprise Bean 24
Configure the Catalog Enterprise Bean 24
Configure the Customer Module 25
Configure the PetStore Web Application 29
Configure the SignOn Module 30
Configure the User Enterprise Bean 30
Configure the Counter Enterprise Bean 30
Save the Application 31
Configure the Supplier Enterprise Application 31
Open the supplier.ear file in the Deployment Tool 31
Configure Application-Wide Settings 31
Configure the Supplier Module 32
Configure the SupplierPurchaseOrder Module 33
Configure the Supplier Web Application Module 34
Save the Application 35
Deploy and Test the Application 35
Chapter 4
Chapter 5
Administering Application Servers 37
Logging In to the Management Tool 37
Choosing a Task 39
Managing Application Servers 40
Configuring Application Servers 43
Monitoring Application Servers 43
Starting and Stopping Services 44
Creating a Data Source 45
Creating a Topic or a Queue 45
Deploying Applications 46
Balancing User Load and Replicating Sessions 47
Distributable Applications 47
Load Balancing and Clustering 48
Enable Load Balancing in the Web Server 48
Enable Load Balancing in the Application Servers 51
Test the Configuration 52
Note: This document was previously titled Mac OS X Server Java Application Server Administration.
JBoss is a powerful Java-based open-source application server that is very popular among Java 2,
Enterprise Edition (J2EE) application developers. This document describes how to configure and use
the JBoss application server in Mac OS X Server, which lets you deploy J2EE applications easily and
reliably.
This document is intended for system administrators, J2EE application assemblers, and developers.
It assumes you have a solid background in system administration and J2EE technology. You must be
familiar with Mac OS X Server, especially how to use Terminal to issue shell commands. Knowledge
of database engines, such as MySQL, is helpful but not required.
Organization of This Document
This document has the following chapters:
“Application Server Overview” (page 9) provides an overview of JBoss for Mac OS X Server.
■
“Configuring Applications” (page 11) explains how to perform certain tasks with the deployment
■
tool, such as opening, configuring, and saving application archives.
“Configuring and Deploying Sun’s Pet Store” (page 21) walks you through configuring and
■
deploying Sun’s Pet Store application in Mac OS X Server.
“Administering Application Servers” (page 37) teaches you how to manage application servers,
■
which are JBoss instances running on one or more computers.
“Balancing User Load and Replicating Sessions” (page 47) explains how to enable an application
■
to be distributable among cluster nodes and walks you through configuring HTTP load balancing
for Pet Store using three computers.
This document also contains a revision history, a glossary, and an index.
JBoss is an open-source highly popular Java-based application server. Based on the Java 2, Enterprise
Edition (J2EE) platform, JBoss provides an affordable delivery system for enterprise applications.
Applications that follow the J2EE standard can be deployed on other application servers, such as
WebLogic, WebSphere, and JRun, with little or no modification. JBoss provides many useful features
in addition those defined in the J2EE standard, including support for clustering, session replication,
mail, and security.
Mac OS X Server includes two easy-to-use, HTML-based tools that facilitate the configuration of J2EE
applications for deployment: The deployment tool and the management tool. The deployment tool
allows you to open application or component archives (EAR files, WAR files, JAR files, SAR files, and
so on) without having to manually decompress the archives. The application lets you view or change
the values of settings specified in the META-INF and WEB-INF directories of the archives. See
“Configuring Applications” (page 11) for more information.
The management tool allows you to manage application servers (JBoss instances) running on one or
more computers. This application lets you start and stop services provided by individual application
servers, configure services, and create data sources, queues, and topics. See “Administering Application
Servers” (page 37) for details.
This chapter provides an overview of JBoss for Mac OS X Server.
JBoss in Mac OS X Server
Mac OS X Server version 10.3 includes JBoss version 3.2.2RC2. To provide a high level of availability,
Mac OS X Server includes a “watchdog” process that ensures that the application server is always
running (if you turn on the application server in Server Admin). If the application server freezes or
crashes, the daemon restarts it automatically.
In addition, Mac OS X Server offers load balancing and session failover through Apache and JBoss:
■
Apache, coupled with the mod_jk plug-in, provides HTTP load balancing with session affinity
(sticky sessions) and connects to JBoss instances through AJP connectors.
JBoss offers session failover through HTTP session state replication in the cluster configuration.
■
JBoss also provides load balancing for enterprise beans, including failover for stateful session
In Mac OS X Server, JBoss is configured to use Tomcat (using the AJP connector) as its web server
and servlet container. In addition, HTTP and HTTPS (through port 8443) are enabled by default.
You can manage the application server from the Server Admin application. This provides you with
a simple way to start, stop, and monitor the application server. You can use the command line, if you
prefer.
Mac OS X Server includes two applications that allow you to deploy applications on JBoss and monitor
their performance. They are the JBoss deployment tool and the JBoss management tool.
The deployment tool allows you to configure an application or an application component so that, for
example, it accesses the appropriate data sources and database tables when it’s run. This is how
application developers decouple business logic from the database engine that is used to persist data.
That way, you can use the database engine that meets your needs and not the one the developer used
while developing the application. For details on the deployment tool, see “Configuring
Applications” (page 11).
The management tool lets you administer the local (running on the computer you are logged in to)
application server, and monitor local and remote (running on a computer in the local network)
application servers. As part of administering an application server, you may start and stop services,
configure services, deploy applications, and add data sources, queues, and topics. When monitoring
an application server, the management tool lets you access the statistics provided by the resources
and services running on it. For example, a service may indicate its name, its purpose, and when it
was started. For more information on the management tool, see “Administering Application
Servers” (page 37).
Three Deployment Configurations
In Mac OS X Server, all the JBoss configurable settings are set up for maximum J2EE compliance.
There are three standard deployment configurations in JBoss for Mac OS X Server:
The development configuration offers increased logging and also consults schema documents.
■
As a result, an application is not deployed when the configuration files do not adhere to their
respective schemas.
The standalone configuration is set up for high performance on a single server.
■
The cluster configuration is optimized for high performance on a cluster of servers. This includes
■
load balancing as well as session replication among stateful session beans and HTTP sessions.
Before you can deploy an application on an application server, you have to start the application server
and then configure or assemble the application. This is the process through which you specify data
sources, database mappings, JNDI resources, and so on.
You configure J2EE applications by modifying XML files in META-INF and WEB-INF directories in
application archives. Performing this task manually is tedious and error prone. The JBoss deployment
tool allows you to configure applications without having to unarchive EAR files, WAR files, or JAR
files, as the tool lets you configure these files directly.
This chapter explains how to start the application server and configure and deploy your application.
Starting the Application Server
To configure an application using the deployment tool, you must connect to a running application
server. Follow these steps to start the application server on a computer.
1.
Launch Server Admin, located in /Applications/Server.
3.In the configuration pane, click Settings. From Configuration Name pop-up menu, choose the
appropriate configuration.
4.Click the Start Service toolbar button. After a few seconds the application server should be running.
You can confirm that JBoss is running by accessing http://localhost:8080 in your web browser.
You should see a webpage titled Welcome to JBoss/Tomcat.
You can also start JBoss in Terminal with the following command:
To get detailed information on JBoss activities, use the develop configuration. This is useful when
you need to make sure JBoss notices when you deploy or undeploy a module, or when you need to
determine whether exceptions are thrown as JBoss starts a deployed application. The develop
configuration produces a detailed log of JBoss activities. It is more useful when you launch the
application server from the command line because you see the results of actions immediately in the
Terminal window from which you launch the application server.
Configuring Your Application
The following sections teach you how to start the deployment tool and configure your application.
After a moment, the Load Application window appears.
Note: Running the JBoss Deployment Tool requires a web browser that supports Frames and Javascript.
Some web browsers may need to have pop-up blocking disabled.
Loading Your Application
The Load Application window is where you specify the location of the application or component you
want to configure. Although the window is titled Load Application, you can also use the deployment
tool to configure EAR files, WAR files, and JAR files.
“Figure 3-1” shows the Load Application window.
Figure 2-1The Load Application window of the deployment tool
1.Enter the full path to the file in the text field in the Load Application window, and click Load
Application.
Note: The file path you enter in the text field is from the perspective of the server the deployment
tool runs on. That is, if you access the deployment tool from a web browser that runs on a different
computer, the archive you configure must reside on the server, not the computer the web browser
runs on.
14
Normally, you cannot save an application with invalid XML files. That is, you have to configure
all the elements that show up in red in the main window. You can override this by deselecting
Validate XML Files in the Load Application window. However, you may not be able to reload
an application that has been saved in this state.
After the deployment tool loads the application, it displays the Loaded Application window,
shown in “Figure 3-2”.
Figure 2-2The Loaded Application window
2.Click “Click here to continue” to move on.
The deployment tool displays the main window (also known as the navigation window). The
main window presents a hierarchy of components generated from the XML files present in the
META-INF and WEB-INF directories of the components contained in the archive you opened. For
example, “Figure 3-3” shows the components present in the petstore.ear file of Sun
Microsystem’ s Pet Store application. You must configure the items in red to save the application.
“Configuring Your Application’s Components” (page 17) shows you how to do this.
“Figure 3-3” shows the components of the petstore.ear archive. The following list describes some
of the items in the main window:
PetStoreEAR (Application) Represents the Pet Store enterprise-application archive.
■
Application Settings Clicking this link allows you to configure settings that affect all the modules
■
in the archive when the application is deployed.
AsyncSenderEJB (EJB) Represents the archive (JAR file) that contains the files that define the
■
AsyncSender enterprise bean (the asyncsender-ejb.jar file). Clicking the Module Settings link
lets you configure module-wide settings and set default values for some settings for all the
enterprise beans defined in the module. See “Configure the Customer Module” (page 25) for an
example.
PetStoreWAR (WebApp) Represents the archive (WAR file) that contains the files that define
■
the web module of the Pet Store enterprise application.
To configure a component, you choose it from the main window by clicking the appropriate link.
This causes the deployment tool to display the configuration window for the component. As you can
see in “Figure 3-4”, this is a tabbed window that contains one or more panes, which you use to
configure specific aspects of the component. The configuration window also contains a Quick Config
pane, which contains elements of the component that you must configure for the application to be
deployable. “Figure 3-4” shows the Quick Config pane of the CatalogEJB module. It indicates that
the JBoss resource references must be configured. The JBoss resource references also appear in the
JNDI Resource Refs pane. However, you need to configure them in only one of the two panes.
Figure 2-4The Quick Config pane of a component’s configuration window
Note: For applications with many components, you may want to configure the Quick Config pages
of the invalid components and save the application. Then you can configure each component further
in a piecemeal fashion.
Some settings apply to an entire module, for example, security roles. In addition, some module settings
serve as defaults for settings of individual components in the module. “Figure 3-5” shows some of
the module settings of the CustomerJAR module of the petstore.ear application. Configuring
modules settings can help to speed up the configuration of a module. See “Configure Module-Wide
After configuring the elements in a pane, you click Update to confirm the changes. Keep in mind that
the changes are not saved until you save the application.
Saving a Configured Application
To save a configured application, that is, when no components are shown in red in the main window,
click Save in the top of the main window. The Save Application window (“Figure 3-6”) appears.
Figure 2-6The Save Application window of the deployment tool
Pet Store is a sample J2EE application from Sun Microsystems. Pet Store showcases the power and
flexibility of the J2EE platform. This chapter provides a tutorial on the configuration of Sun’ s Pet Store
for deployment in Mac OS X Server.
Sun’s Pet Store is comprised of several applications. This tutorial uses the Pet Store enterprise
application and the Supplier enterprise application.
In this tutorial you obtain the Pet Store files from Sun, prepare your Mac OS X Server system for a
Pet Store deployment, and configure the Pet Store and Supplier applications for deployment on JBoss.
Note: The companion files of this document include configured Pet Store archives that are ready for
deployment using MySQL as the database engine. They’re at
Application_Server_companion/Configured_Pet_Store_archives. You need to perform only
the steps listed in “Set Up the Environment” (page 21) and “Deploy and Test the Application” (page
35).
See http://developer.java.sun.com/developer/releases/petstore for more information on Sun’s Pet
Store application.
Set Up the Environment
Before you can configure an enterprise application for deployment in Mac OS X Server, make sure
that you have all the files you need. Then create any necessary tables in your database, and ensure
that the appropriate processes are running:
1.Get Pet Store from Sun.
Download the Pet Store enterprise application from
http://developer.java.sun.com/developer/releases/petstore, and place the petstore1.3.2
directory in your home directory. (Pet Store 1.3.2 is also included as part of this document’s
companion files.)
2.Configure MySQL:
a.
Launch MySQL Manager, located in /Applications/Server.
b. Click the lock button, and authenticate as the system administrator.
file included in this document’s companion files to /Library/JBoss/3.2/deploy.
5.Start the application server.
You must be running the application server to configure Pet Store. Make sure the application
server is running on your computer. See “Starting the Application Server” (page 11) for details.
Configure the Pet Store Enterprise Application
This section guides you through the steps required to configure the petstore.ear file so that it can
be deployed in Mac OS X Server. This process involves specifying the data source that enterprise
beans use to obtain a connection to the database, mapping the enterprise beans’ CMP fields to table
columns, defining relationships among enterprise beans, and so on.
Open the petstore.ear File in the Deployment Tool
1.Launch the JBoss deployment tool. (See “Starting the JBoss Deployment Tool” (page 14) for
details.)
22
2.
In the Load Application window, enter the full path to the petstore.ear file in the text field,
and click Load Application.
3.Click “Click here to continue.”
4.In the PetStoreEAR (Application) window (also known as the main window or the navigation
window), click Connect.
5.In the Connect to Server window, enter the host name and the port of the application server. (By
default the host is localhost and the port is 1099.)
6.Click Connect to Server.
7.Close the Connect to Server window.
Configure Application-Wide Settings
In this section you configure the settings that affect all the modules in the petstore.ear archive.
6.Click Update to finish configuring the Catalog enterprise bean, and close the window.
Configure the Customer Module
The following sections guide you through the configuration of the Customer module.
Configure Module-Wide Settings
This section walks you through setting the data source and data-source mapping for the enterprise
beans in the Customer module. It also details how to configure the relationships between some of the
enterprise beans.
1.Under CustomerJAR (EJB), click Module Settings.
2.In the CustomerJAR window, click the CMP - Default Settings tab.
3.From the Datasource pop-up menu, choose MySQL 4.0.14 (java:/MySqlDS).
4.
From the Datasource Mapping pop-up menu, choose mySQL, and click Update.
From the Entity Command Name pop-up menu, choose no-select-before-insert.
26
The advantage of configuring the database and the data-source mapping at the module level is
that the settings apply to all the enterprise beans in the module. Therefore, you don’t have to
configure those settings for each enterprise bean in the module, unless they differ from the ones
set for the module.
6.Click the CMP - PK Generation tab.
7.
In the Unknown Pk Class text field, enter java.lang.Long.
f.Click Update to finish configuring the relationship role.
g. Click Update to finish configuring the relationship.
13. Click Update to finish configuring the Customer module settings, and close the window.
Configure the Account Enterprise Bean
1.Under CustomerJAR (EJB), click Enterprise Beans. Then click AccountEJB.
2.
From the Table Name pop-up menu in the AccountEJB window, choose PS_Account.
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click the CMP - Mapping tab. From the Entity Command Name pop-up menu, choose
mysql-get-generated-keys.
5.Click Update to finish configuring the Account enterprise bean, and close the window.
Configure the Address Enterprise Bean
1.Under Enterprise Beans under CustomerJAR (EJB), click AddressEJB.
2.
From the Table Name pop-up menu in the AddressEJB window, choose PS_Address.
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click the CMP - Mapping tab. From the Entity Command Name pop-up menu, choose
mysql-get-generated-keys.
5.Click Update to finish configuring the Address enterprise bean, and close the window.
Configure the ContactInfo Enterprise Bean
1.Under Enterprise Beans under CustomerJAR (EJB), click ContactInfoEJB.
2.
From the Table Name pop-up menu in the ContactInfoEJB window, choose PS_ContactInfo.
28
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click the CMP - Mapping tab. From the Entity Command Name pop-up menu, choose
mysql-get-generated-keys.
5.Click Update to finish configuring the ContactInfo enterprise bean, and close the window.
1.Under Enterprise Beans under CustomerJAR (EJB), click CreditCardEJB.
2.
From the Table Name pop-up menu in the CreditCardEJB window, choose PS_CreditCard.
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click the CMP - Mapping tab. From the Entity Command Name pop-up menu, choose
mysql-get-generated-keys.
5.Click Update to finish configuring the CreditCard enterprise bean, and close the window.
Configure the Customer Enterprise Bean
1.Under Enterprise Beans under CustomerJAR (EJB), click CustomerEJB.
2.
From the Table Name pop-up menu in the CustomerEJB window, choose PS_Customer.
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click Update to finish configuring the Customer enterprise bean, and close the window.
Configure the Profile Enterprise Bean
1.Under Enterprise Beans under CustomerJAR (EJB), click ProfileEJB.
2.
From the Table Name pop-up menu in the ProfileEJB window, choose PS_Profile.
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click the CMP - Mapping tab. From the Entity Command Name pop-up menu, choose
mysql-get-generated-keys.
5.Click Update to finish configuring the Profile enterprise bean, and close the window.
In the JBoss Resource Refs list, select url/CatalogDAOSQLURL, and click Edit.
5.
In the Resource URL text field, enter http://localhost:8080/petstore/CatalogDAOSQL.xml,
and click Update.
6.Click Update to finish configuring the PetStore web application, and close the window.
Configure the SignOn Module
1.Under SignOnJAR (EJB), click Module Settings.
2.In the SignOnJAR window, click the CMP - Default Settings tab.
3.
From the Entity Command Name pop-up menu, choose no-select-before-insert, and click
Update.
4.Close the window.
Configure the User Enterprise Bean
1.Under Enterprise Beans under SignOnJAR (EJB), click UserEJB.
2.From the Datasource pop-up menu in the UserEJB window, choose MySQL 4.0.14 (java:/MySqlDS).
3.
From the Datasource Mapping pop-up menu, choose mySql.
4.
From the Table Name pop-up menu, choose PS_User.
5.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
6.Click Update to finish configuring the User enterprise bean, and close the window.
Configure the Counter Enterprise Bean
1.Under UniqueIdGeneratorJAR (EJB), click Enterprise Beans. Then click CounterEJB.
2.From the Datasource pop-up menu in the CounterEJB window, choose MySQL 4.0.14
(java:/MySqlDS).
30
3.
From the Datasource Mapping pop-up menu, choose mySql.
4.
From the Table Name pop-up menu, choose PS_Counter.
5.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
The following sections explain how to configure the SupplierJAR module.
Configure the Module Settings
1.Under SupplierJAR (EJB), click Module Settings.
2.In the SupplierJAR window, click the CMP - Default Settings tab.
3.From the Datasource pop-up menu, choose MySQL 4.0.14 (java:/MySqlDS).
4.
From the Datasource Mapping pop-up menu, choose mySql, and click Update.
5.Close the window.
Configure the Inventory Enterprise Bean
1.Under SupplierJAR (EJB), click Enterprise Beans. Then click InventoryEJB.
2.
From the Table Name pop-up menu, choose SUPP_Inventory.
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click Update to finish configuring the Inventory enterprise bean, and close the window.
Configure the OrderFulfillmentFacade Enterprise Bean
1.Under Enterprise Beans under SupplierJAR (EJB), click OrderFulfillmentFacade.
2.In the JBoss Resource Refs list in the OrderFulfillmentFacadeEJB window, select
url/EntityCatalogURL, and click Edit.
3.
In the Res URL text field, enter http://localhost:8080/opc/EntityCatalog.jsp, and click
Update.
4.Click Update to finish configuring the OrderFulfillmentFacade enterprise bean, and close the
window.
32
Configure the SupplierOrder Message-Driven Bean
1.Under Enterprise Beans under SupplierJAR (EJB), click SupplierOrderMDB.
2.
In the JBoss Resource Refs list, select jms/QueueConnectionFactory, and click Edit.
3.
From the Jndi Name pop-up menu, choose /ConnectionFactory, and click Update.
2.In the SupplierPurchaseOrderJAR window, click the CMP - Default Settings tab.
3.From the Datasource pop-up menu, choose MySQL 4.0.14 (java:/MySqlDS).
4.
From the Datasource mapping pop-up menu, choose mySql.
5.
From the Entity Command Name pop-up menu, choose no-select-before-insert.
6.Click the CMP - PK Generation tab.
7.
In the Unknown Pk Class text field, enter java.lang.Long.
8.
In the Field Name text field, Enter pk.
9.
In the Column Name text field, enter pk.
10. Set Auto Increment to yes, and click Update.
11. Close the window.
Configure the Address Enterprise Bean
1.Under SupplierPurchaseOrderJAR (EJB), click Enterprise Beans. Then click AddressEJB.
2.
From the Table Name pop-up menu in the AddressEJB window, choose PS_Address.
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click the CMP - Mapping tab. From the Entity Command Name pop-up menu, choose
mysql-get-generated-keys.
5.Click Update to finish configuring the Address enterprise bean, and close the AddressEJB window.
1.Under Enterprise Beans under SupplierPurchaseOrderJAR (EJB), click ContactInfoEJB.
2.
From the Table Name pop-up menu in the ContactInfoEJB window, choose PS_ContactInfo.
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click the CMP - Mapping tab. From the Entity Command Name pop-up menu, choose
mysql-get-generated-keys.
5.Click Update to finish configuring the ContactInfo enterprise bean, and close the window.
Configure the LineItem Enterprise Bean
1.Under Enterprise Beans under SupplierPurchaseOrderJAR (EJB), click LineItemEJB.
2.
From the Table Name pop-up menu in the LineItemEJB window, choose SUPP_LineItem.
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click the CMP - Mapping tab. From the Entity Command Name pop-up menu, choose
mysql-get-generated-keys.
5.Click Update to finish configuring the LineItem enterprise bean, and close the window.
Configure the SupplierOrder Enterprise Bean
1.Under Enterprise Beans under SupplierPurchaseOrderJAR (EJB), click SupplierOrderEJB.
2.From the Table Name pop-up menu in the SupplierOrderEJB window, choose
SUPP_SupplierOrder.
3.Map the CMP fields to the appropriate column names by selecting the field in the Cmp Fields
list, clicking Edit, choosing the corresponding column name from the Column Name list, and
clicking Update.
4.Click the CMP - Mapping tab. From the Entity Command Name pop-up menu, choose
mysql-get-generated-keys.
34
5.Click Update to finish configuring the SupplierOrder enterprise bean, and close the window.
In the JBoss Resource Env Refs list, select jms/opc/InvoiceTopic, and click Edit.
3.
From the Jndi Name pop-up menu, choose /topic/opc/InvoiceTopic, and click Update.
4.
In the JBoss Resource Refs list, select jms/TopicConnectionFactory, and click Edit.
5.
From the Jndi Name pop-up menu, choose /ConnectionFactory, and click Update.
6.Click Update to finish configuring the Supplier web-application module, and close the window.
Save the Application
1.In the navigation window, click Save.
2.In the text field in the Save Application window, enter
/Library/Configured_Apps/supplier.ear, and click Save Application.
3.Close the window.
Deploy and Test the Application
To deploy Pet Store in Mac OS X Server, copy the configured files to /Library/JBoss/3.2/deploy.
(You can also use the management tool to deploy the application. See “Deploying Applications” (page
46) for details.) After about a minute, open http://localhost:8080/petstore in your web browser.
You could also have saved the EAR files directly to the JBoss deploy directory. However, it’ s generally
safer to configure application files of undeployed archives.
Follow these steps to test Pet Store:
1.
Open http://localhost:8080/petstore in a web-browser window.
2.Click the link that takes you to the store.
3.In the Welcome to the BluePrints Petstore webpage, click Birds.
4.In the Items webpage, click Amazon Parrot.
5.In the Product webpage, click Add to Cart.
6.In the Cart webpage, click Check Out.
7.In the Sign On webpage, click Sign In.
8.In the Enter Order Information webpage, click Submit.
If you get an error page during the test, make sure JBoss is running and recheck the configuration
settings described in “Configure the Pet Store Enterprise Application” (page 22) and “Configure the
Application-server management involves configuring the services available in an application server,
turning services on and off, deploying applications, and monitoring application-server resources.
This chapter teaches how to manage application servers, which are JBoss instances running on one
or more computers.
Logging In to the Management Tool
Before you can log in to the management tool, the tool must be running. You can launch the
management tool by executing the following command:
You log in to the management tool through your web browser. To connect to the management tool,
enter the following URL into the Address text field in your web browser: https://localhost:40000.
Alternatively, you can click Manage JBoss in the Settings pane in the Server Admin window.
To log in to the management tool you must enter the user name and password of an administrator
of your computer or a user who is a member of the appserveradm group or the appserverusr group.
There are two types of users with the authority to use the management tool: administrator users
(which are members of the appserveradm group) and monitor users (which are members of the
appserverusr group). The user defined while configuring Mac OS X Server for the first time is added
to the appserveradm group.
Note: The management tool allows only registered users to manage, configure, or monitor application
servers. If you enter the name of a registered user in the Username text field but enter an incorrect
password in the Password text field, you can only monitor the application server. Also, only members
of appserveradm and appserverusr can launch the management tool.
To authorize another user to manage application servers with the management tool, execute the
following command in the command line, and restart your computer:
After logging in to the management tool, the Configuration window appears. This window lets you
choose the kind of activity you want to perform with the management tool. There are three activities
to choose from:
Managing: Allows you to start and stop services, configure services, observe resource statistics,
■
create data sources, create topics or queues, and deploy applications.
Configuring: Lets you start and stop services, create data sources, create topics or queues, and
■
deploy applications.
Monitoring: Allows you to observe resource statistics of application servers.
To manage an application server, enter the JNDI port of the application server you want to manage
(by default, 1099) in the Configuration window (shown in “Figure 5-1”), and click “Manage localhost”.
Figure 4-1The Configuration window of the management tool
The left side of the JBoss Management Console window (shown in “Figure 5-2”) lists the application
servers available and the resources they provide. You specify the resource you want to manage by
clicking the triangle next to the appropriate resource type and selecting a resource from the list that
appears.
Figure 4-2The JBoss Management Console window
40
For example, to change an application server’s security configuration, click the triangle next to the
Services resource group and select login-config.xml. After that, the Security Configuration pane
(shown in “Figure 5-3”) appears on the right side of the window, showing the application policy list,
which you can modify by clicking the appropriate buttons. However, any changes you make take
effect only after you restart the application server.
Figure 4-3The JBoss Management Console window showing the Security Configuration pane of the log-in
configuration service
When you’re managing the services deployed on the application server, you can also monitor the
statistics of deployed applications and resources. For example, if you deploy Sun’s Pet Store in your
application server, log in to the management tool, choose to manage the application server from the
Configuration window, and click local/ShoppingCartEJB under cart-ejb.jar under petstore.ear
under the Applications group in the application-server list, the JBoss Management Console window
displays the Statistics pane with information on the performance of the ShoppingCart enterprise bean,
as shown in “Figure 5-4”.
To configure local application servers, choose the configuration you want to modify from the “Modify
configuration” pop-up menu, and click “Modify configuration” in the Configuration page.
The JBoss Management Console window appears. This window allows you to select a service and
change its configuration.
For example, to configure the transaction-connection factory service, select jms-ds.xml under services
in the application-server list.
You can also configure the provider and the session pool of the transaction-connection factory service
by clicking the triangle next to jms-ds.xml in the application-server list and selecting the appropriate
item, as shown in “Figure 5-5”.
Figure 4-5The JBoss Management Console window showing one of the configuration panes for the JMS
Directory Service
Note: After you’re done making changes, you have to restart the application server for the changes
to take effect.
Monitoring Application Servers
To monitor application servers, enter the name of the computer on which the application server is
running (by default, localhost) and the JNDI port of the application server (by default, 1099) in the
Configuration page, and click “Monitor host”.
To view the statistics provided by particular applications, resources, or services, select the appropriate
item in the application-server list. The statistics appear in the Statistics pane, shown in “Figure 5-6”.
Figure 4-6The JBoss Management Console window showing the statistics of the Deploy Service
Starting and Stopping Services
You can start and stop services while managing or configuring application servers. To do so, in the
application server list, select the application server you want to configure, and click Start/Stop Services
in the Host Information pane. The Start or Stop Services pane is displayed in the right side of the
JBoss Management Console window, as shown in “Figure 5-7”.
Figure 4-7The JBoss Management Console window showing the Start or Stop Services pane
Creating a Data Source
You can create a data source while managing or configuring application servers. To do so, select the
application server you want to add the data source to in the server list. Next, enter the name of the
data source in the Datasource Name text field in the Create a Datasource group in the Host Information
pane, choose a data-source type from the Datasource Type pop-up menu, and click Create Datasource.
Enter the appropriate information in the Local TX Datasource pane, and click Update.
Note: Make sure to enter a unique JNDI name in the Jndi Name text field of the Local TX Datasource
pane.
The newly added data source appears under the Resources group in the application-server list.
Creating a Topic or a Queue
You can create a topic or a queue while managing or configuring an application server. Follow these
steps to create a topic or a queue:
1.In the application server list, select the application server you want to add the topic or queue to.
2.From the Topic or Queue pop-up menu in the Create a Topic or Queue group in the Host
Information pane, choose Topic or Queue.
HTTP load balancing provides a way to distribute user load among a group of application servers.
The application servers can be standalone or configured as a cluster, in which case they are know as
nodes. Load balancing is better used with sticky sessions. This means that once the load balancer (a
web server) forwards a client request to a particular application server, it sends all further requests
from the client to the same application server.
Using load balancing across standalone application servers allows you to scale your deployment with
little increase in request-processing overhead. However, when an application server fails, other
application servers cannot pick up the failed-server’s load, which may provide an undesirable user
experience: Users may have to log in to the application again or may lose the contents of their
“shopping carts.”
Load balancing across clustered application servers (or nodes) provides session replication among
the nodes, so that when a node fails, another node can take over its duties with little or no user impact.
However, as you add nodes to the cluster, each request may take longer to process.
This chapter explains how to enable an application to be distributable among cluster nodes and walks
you through configuring HTTP load balancing for Sun’ s Pet Store using three computers: One serving
only as the web server and load balancer, and the other two serving as application-server nodes.
Distributable Applications
Before deploying an application in a cluster of nodes using the deploy-cluster configuration, make
sure that the application is distributable.
To make an application distributable set Distributable to yes in the Web-App pane of the application’s
WebApp window. “Figure 6-1” shows the WebApp window of the petstore.ear archive.
Load balancing provides a way to distribute user load among application servers. Clustering enables
session failover when a node in a cluster becomes unavailable. Load balancing can be used with a
group of standalone application servers or with a cluster or application server or nodes. This section
describes a simple, three-computer setup in which one computer runs the web server and balances
user load among two application servers.
Start by stopping the Web service on the web-server computer and the application servers on the
nodes. Then follow the steps described in the following sections.
Enable Load Balancing in the Web Server
Follow these steps to configure a computer as the web server and load balancer for a deployment:
1.Launch Server Admin, if it’s not already running.
2.Select Web in the Computers & Services list, and click Settings in the configuration pane.
3.Click the Modules tab and select “jk_module,” which is at the bottom of the modules list.
18. Change line 27 so that it references the second node. It should look similar to this:
worker.JBoss2.host=node2.mydomain.com
19. Change line 31 to:
worker.JBoss2.cachesize=10
20. Add the following line to the file to enable sticky sessions:
worker.loadbalancer.sticky_session=1
21. Save the file.
Enable Load Balancing in the Application Servers
For load balancing to work, each application server has to report its existence to the web server. Follow
these steps to configure the application-server so that they identify themselves to the web server:
1.
Open the jboss-service.xml file, located at
/Library/JBoss/3.2/deploy-cluster/deploy/jbossweb-tomcat41.sar/META-INF, in a text
editor.
For non-cluster deployment, open the jboss-service.xml file at
Remove the !-- at the beginning of the first line and the -- and end of the last line while making
sure to leave the left angle bracket and the right angle bracket in place.
6.Save the file.
7.
Repeat steps 1 through 6 for the second application server, but set jvmRoute to "JBoss2" in step
application server JBoss instance, which is started
through Server Admin.
CMP (container-managed persistence) Enterprise
bean persistence model in which the J2EE
container is responsible for persisting
enterprise-bean instances to a data store and
populating the fields of enterprise-bean instances
when they are retrieved.
deployment tool HTML-based application
through which J2EE application or component
archives can be configured or assembled in
preparation for deployment in Mac OS X Server.
EJB (Enterprise JavaBeans) Specification that
provides an infrastructure through which
data-based components can be developed and
deployed in a variety of platforms.
J2EE (Java 2, Enterprise Edition) Specification
that defines a platform for the development and
deployment of Web applications. It describes an
environment under which enterprise beans,
servlets, and JSP pages can share resources and
work together.
JBoss Java-based open-source application server
capable of deploying J2EE-based applications.
JBoss provides many useful features in addition
those defined in the J2EE standard, including
support for clustering, session replication, mail,
and security.
management tool HTML-based application
through which an application-server configuration
can be modified. It also allows for the viewing of
statistics of resources and services deployed on
application servers, starting and stopping services,
and adding topics, queues, and data sources.
Pet Store Pet Store is a sample J2EE application
from Sun Microsystems, which showcases the
power and flexibility of the J2EE platform.
queue A queue is a JMS construct that allows for
point-to-point messaging between applications.
A message sent to a queue can be received by only
one application. When several applications are
subscribed to the queue, the messages are load
balanced between the subscribers.
server Computer running Mac OS X Server.
topic Topics are one of the message distribution
center types for J2EE-based applications. Message
senders send messages only to topics instead of
specific applications, while only the applications
interested in receiving messages sent to a
particular topic subscribe to the topic and,
therefore, receive the messages sent to it. A topic
can have one or more subscribers. Any message
sent to the topic is broadcasted to all the topic’s
subscribers.
JMS (Java Message Service) Java-based
programming interface that implements an
asynchronous message-exchange system. It
facilitates the development of message-based
applications. JMS is part of the J2EE platform.