Sun Java logo     Copyright      Index      Next     

Sun logo
Sun Java System Application Server Enterprise Edition 8.1 2005Q1 Developer's Guide 

Contents


Preface
Who Should Use This Book
Before You Read This Book
How This Book Is Organized
Conventions Used in This Book
Typographic Conventions
Symbols
Default Paths and File Names
Shell Prompts
Related Documentation
Books in This Documentation Set
Other Server Documentation
Accessing Sun Resources Online
Contacting Sun Technical Support
Related Third-Party Web Site References
Sun Welcomes Your Comments

Part I Developing and Deploying Applications

Chapter 1   Setting Up a Development Environment
Installing and Preparing the Server for Development
High Availability Features
Tools
The asadmin Command
The Administration Console
The asant Utility
deploytool
Verifier
Migration Tool
Debugging Tools
Profiling Tools
Sample Applications

Chapter 2   Securing Applications
Security Goals
Application Server Specific Security Features
Container Security
Programmatic Security
Declarative Security
Application Level Security
Component Level Security
Realm Configuration
Supported Realms
How to Configure a Realm
How to Set a Realm for an Application or Module
Creating a Custom Realm
JACC Support
Pluggable Audit Module Support
Configuring an Audit Module
The AuditModule Class
The server.policy File
Default Permissions
Changing Permissions for an Application
Configuring Message Security
Message Security Responsibilities
Application Developer
Application Deployer
System Administrator
Application-Specific Message Protection
Using a Signature to Enable Message Protection for All Methods
Configuring Message Protection For a Specific Method Based on Digital Signatures
Understanding and Running the Example Application
Setting Up the Sample Application
Running the Sample Application
Monitoring Message Security
Programmatic Login
Precautions
Granting Programmatic Login Permission
The ProgrammaticLogin Class
User Authentication for Single Sign-on
Defining Roles

Chapter 3   Assembling and Deploying Applications
Overview of Assembly and Deployment
Modules
Applications
J2EE Standard Descriptors
Sun Java System Application Server Descriptors
Naming Standards
Directory Structure
Runtime Environments
Module Runtime Environment
Application Runtime Environment
Classloaders
The Classloader Hierarchy
Classloader Universes
Circumventing Classloader Isolation
Assembling Modules and Applications
deploytool
Apache Ant
The Deployment Descriptor Verifier
Deploying Modules and Applications
Deployment Errors
The Deployment Life Cycle
Dynamic Deployment
Disabling a Deployed Application or Module
Dynamic Reloading
Automatic Deployment
Tools for Deployment
Apache Ant
The deploytool
JSR 88
The asadmin Command
The Administration Console
Deployment by Module or Application
Deploying a WAR Module
Deploying an EJB JAR Module
Deploying a Lifecycle Module
Deploying an Application Client
Deploying a J2EE CA Resource Adapter
Access to Shared Frameworks
asant Assembly and Deployment Tool
asant Tasks for Sun Java System Application Server
sun-appserv-deploy
sun-appserv-undeploy
sun-appserv-instance
sun-appserv-component
sun-appserv-admin
sun-appserv-jspc
sun-appserv-update
Reusable Subelements
server
component
fileset

Chapter 4   Debugging Applications
Enabling Debugging
JPDA Options
Generating a Stack Trace for Debugging
The Java Debugger
Using the NetBeans IDE for Debugging
Sun Java System Message Queue Debugging
Enabling Verbose Mode
Logging
Profiling
The HPROF Profiler
The Optimizeit Profiler

Part II Developing Applications and Application Components

Chapter 5   Developing Web Applications
Introducing Web Applications
Internationalization Issues
The Server
Servlets
Virtual Servers
Default Web Modules
Classloader Delegation
Using the default-web.xml File
Configuring Logging in the Web Container
Configuring Idempotent URL Requests
Specifying an Idempotent URL
Characteristics of an Idempotent URL
Configuring HTML Error Pages
Header Management
Using Servlets
Invoking a Servlet with a URL
Servlet Output
Caching Servlet Results
Caching Features
Default Cache Configuration
Caching Example
CacheKeyGenerator Interface
About the Servlet Engine
Instantiating and Removing Servlets
Request Handling
Using JavaServer Pages
JSP Tag Libraries and Standard Portable Tags
JSP Caching
cache
flush
Options for Compiling JSP Files
Creating and Managing HTTP Sessions
Configuring Sessions
Sessions, Cookies, and URL Rewriting
Coordinating Session Access
Distributed Sessions and Persistence
Session Managers
The memory Persistence Type
The file Persistence Type
The ha Persistence Type
Sample Session Persistence Applications

Chapter 6   Using Enterprise JavaBeans Technology
Summary of EJB 2.1 Changes
Value Added Features
Read-Only Beans
pass-by-reference
Pooling and Caching
Pooling Parameters
Caching Parameters
Bean-Level Container-Managed Transaction Timeouts
Priority Based Scheduling of Remote Bean Invocations
Immediate Flushing
EJB Timer Service
Using Session Beans
About the Session Bean Containers
Stateless Container
Stateful Container
Stateful Session Bean Failover
Choosing a Persistence Store
Enabling Checkpointing
Specifying Methods to Be Checkpointed
Restrictions and Optimizations
Optimizing Session Bean Performance
Restricting Transactions
Using Read-Only Beans
Read-Only Bean Characteristics and Life Cycle
Read-Only Bean Good Practices
Refreshing Read-Only Beans
Invoking a Transactional Method
Refreshing Periodically
Refreshing Programmatically
Deploying Read Only Beans
Using Message-Driven Beans
Message-Driven Bean Configuration
Connection Factory and Destination
Message-Driven Bean Pool
Domain-Level Settings
Restrictions and Optimizations
Pool Tuning and Monitoring
onMessage Runtime Exception
Sample Message-Driven Bean XML Files
Sample ejb-jar.xml File
Sample sun-ejb-jar.xml File
Handling Transactions with Enterprise Beans
Flat Transactions
Global and Local Transactions
Commit Options
Administration and Monitoring

Chapter 7   Using Container-Managed Persistence for Entity Beans
Sun Java System Application Server Support
Container-Managed Persistence Mapping
Mapping Capabilities
The Mapping Deployment Descriptor File
Mapping Considerations
Join Tables and Relationships
Automatic Primary Key Generation
Fixed Length CHAR Primary Keys
Managed Fields
BLOB Support
CLOB Support
Automatic Schema Generation
Supported Data Types
Generation Options
Schema Capture
Automatic Database Schema Capture
Using the capture-schema Utility
Configuring the CMP Resource
Configuring Queries for 1.1 Finders
About JDOQL Queries
Query Filter Expression
Query Parameters
Query Variables
JDOQL Examples
Performance-Related Features
Version Column Consistency Checking
Relationship Prefetching
Read-Only Beans
Restrictions and Optimizations
Eager Loading of Field State
Restrictions on Remote Interfaces
Sybase Finder Limitation
Date and Time Fields as CMP Field Types
No Support for lock-when-loaded on Sybase and DB2
Set RECURSIVE_TRIGGERS to false on MSSQL

Chapter 8   Developing Java Clients
Introducing the Application Client Container
Developing Clients Using the ACC
Using an Application Client to Access an EJB Component
Using an Application Client to Access a JMS Resource
Running an Application Client Using the ACC
Packaging an Application Client Using the ACC
Editing the Configuration File
Editing the appclient Script
Editing the sun-acc.xml File
Setting Security Options
Using the package-appclient Script
Developing Clients Without the ACC
Using a Stand-Alone Client to Access an EJB Component
Using a Server-Side Module to Access an EJB Component
Using a Stand-Alone Client to Access a JMS Resource

Chapter 9   Developing Connectors
Connector 1.5 Support in the Application Server
Connector Architecture for JMS and JDBC
Connector Configuration
Deploying and Configuring a Stand-Alone Connector Module
Redeploying a Stand-Alone Connector Module
Deploying and Configuring an Embedded Resource Adapter
Advanced Connector Configuration Options
Thread Pools
Security Maps
Overriding Configuration Properties
Testing a Connection Pool
Handling Invalid Connections
Setting the Shutdown Timeout
Using Last Agent Optimization of Transactions
Inbound Communication Support
Configuring a Message Driven Bean to Use a Resource Adapter
Example Resource Adapter for Inbound Communication

Chapter 10   Developing Lifecycle Listeners
Server Life Cycle Events
The LifecycleListener Interface
The LifecycleEvent Class
The Server Lifecycle Event Context
Deploying a Lifecycle Module
Considerations for Lifecycle Modules

Part III Using Services and APIs

Chapter 11   Using the JDBC API for Database Access
General Steps for Creating a JDBC Resource
Integrating the JDBC Driver
Supported Database Drivers
Making the JDBC Driver JAR Files Accessible
Creating a Connection Pool
Testing a Connection Pool
Creating a JDBC Resource
Creating Applications That Use the JDBC API
Sharing Connections
Obtaining a Physical Connection from a Wrapped Connection
Using Non-Transactional Connections
Using JDBC Transaction Isolation Levels
Configurations for Specific JDBC Drivers
PointBase Type4 Driver
Sun Java System JDBC Driver for DB2 Databases
Sun Java System JDBC Driver for Oracle 8.1.7 and 9.x Databases
Sun Java System JDBC Driver for Microsoft SQL Server Databases
Sun Java System JDBC Driver for Sybase Databases
IBM DB2 8.1 Type2 Driver
JConnect/Type4 Driver for Sybase ASE 12.5 Databases
Inet Oraxo JDBC Driver for Oracle 8.1.7 and 9.x Databases
Inet Merlia JDBC Driver for Microsoft SQL Server Databases
Inet Sybelux JDBC Driver for Sybase Databases
Oracle Thin/Type4 Driver for Oracle 8.1.7 and 9.x Databases
OCI Oracle Type2 Driver for Oracle 8.1.7 and 9.x Databases
IBM Informix Type4 Driver
MM MySQL Type4 Driver
CloudScape 5.1 Type4 Driver

Chapter 12   Using the Transaction Service
Transaction Resource Managers
Transaction Scope
Configuring the Transaction Service
Transaction Logging

Chapter 13   Using the Java Naming and Directory Interface
Accessing the Naming Context
Naming Environment for J2EE Application Components
Accessing EJB Components Using the CosNaming Naming Context
Accessing EJB Components in a Remote Application Server
Naming Environment for Lifecycle Modules
Configuring Resources
External JNDI Resources
Custom Resources
Mapping References

Chapter 14   Using the Java Message Service
The JMS Provider
Message Queue Resource Adapter
Administration of the JMS Service
Configuring the JMS Service
The Default JMS Host
Creating JMS Hosts
Checking Whether the JMS Provider Is Running
Creating Physical Destinations
Creating JMS Resources: Destinations and Connection Factories
Restarting the JMS Client After JMS Configuration
JMS Connection Features
Connection Pooling
Connection Failover
Load-Balanced Message Inflow
Transactions and Non-Persistent Messages
ConnectionFactory Authentication
Message Queue varhome Directory
Delivering SOAP Messages Using the JMS API
Sending SOAP Messages Using the JMS API
Receiving SOAP Messages Using the JMS API

Chapter 15   Using the JavaMail API
Introducing JavaMail
Creating a JavaMail Session
JavaMail Session Properties
Looking Up a JavaMail Session
Sending Messages Using JavaMail
Reading Messages Using JavaMail

Chapter 16   Using the Java Management Extensions (JMX) API
Application Server Management Extensions (AMX)
About AMX
AMX MBeans
Configuration MBeans
Monitoring MBeans
Utility MBeans
J2EE Management MBeans
Other MBeans
MBean Notifications
Access to MBean Attributes.
Proxies
Connecting to the Domain Administration Server
Examining AMX Code Samples
Connecting to the DAS
Starting an Application Server
Deploying an Archive
Displaying the AMX MBean Hierarchy
Setting Monitoring States
Accessing AMX MBeans
Accessing and Displaying the Attributes of an AMX MBean
Listing AMX MBean Properties
Querying
Monitoring Attribute Changes
Undeploying Modules
Stopping an Application Server
Running the AMX Samples

Appendix A   Deployment Descriptor Files
Sun Java System Application Server Descriptors
The sun-application.xml File
The sun-web.xml File
The sun-ejb-jar.xml File
The sun-cmp-mappings.xml File
The sun-application-client.xml file
The sun-acc.xml File
Alphabetical Listing of All Elements
activation-config
activation-config-property
activation-config-property-name
activation-config-property-value
as-context
auth-method
auth-realm
bean-cache
bean-pool
cache
cache-helper
cache-helper-ref
cache-idle-timeout-in-seconds
cache-mapping
call-property
caller-propagation
cert-db
check-all-at-commit
check-modified-at-commit
check-version-of-accessed-instances
checkpoint-at-end-of-method
checkpointed-methods
class-loader
client-container
client-credential
cmp
cmp-field-mapping
cmp-resource
cmr-field-mapping
cmr-field-name
cmt-timeout-in-seconds
column-name
column-pair
commit-option
confidentiality
consistency
constraint-field
constraint-field-value
context-root
cookie-properties
create-tables-at-deploy
database-vendor-name
default
default-helper
default-resource-principal
description
dispatcher
drop-tables-at-undeploy
ejb
ejb-name
ejb-ref
ejb-ref-name
endpoint-address-uri
enterprise-beans
entity-mapping
establish-trust-in-client
establish-trust-in-target
fetched-with
field-name
finder
flush-at-end-of-method
gen-classes
group-name
http-method
idempotent-url-pattern
integrity
ior-security-config
is-cache-overflow-allowed
is-one-one-cmp
is-read-only-bean
java-method
jms-durable-subscription-name
jms-max-messages-load
jndi-name
jsp-config
key-field
level
local-home-impl
local-impl
locale-charset-info
locale-charset-map
localpart
lock-when-loaded
lock-when-modified
log-service
login-config
manager-properties
mapping-properties
max-cache-size
max-pool-size
max-wait-time-in-millis
mdb-connection-factory
mdb-resource-adapter
message
message-destination
message-destination-name
message-security
message-security-binding
message-security-config
method
method-intf
method-name
method-param
method-params
name
named-group
namespaceURI
none
one-one-finders
operation-name
parameter-encoding
pass-by-reference
password
pm-descriptors
pool-idle-timeout-in-seconds
port-component-name
port-info
prefetch-disabled
principal
principal-name
property (with attributes)
property (with subelements)
provider-config
query-filter
query-method
query-ordering
query-params
query-variables
read-only
realm
refresh-field
refresh-period-in-seconds
removal-timeout-in-seconds
remote-home-impl
remote-impl
request-policy
request-protection
required
res-ref-name
resize-quantity
resource-adapter-mid
resource-env-ref
resource-env-ref-name
resource-ref
response-policy
response-protection
role-name
sas-context
schema
schema-generator-properties
secondary-table
security
security-role-mapping
service-endpoint-interface
service-impl-class
service-qname
service-ref
service-ref-name
servlet
servlet-impl-class
servlet-name
session-config
session-manager
session-properties
ssl
steady-pool-size
store-properties
stub-property
sun-application
sun-application-client
sun-cmp-mapping
sun-cmp-mappings
sun-ejb-jar
sun-web-app
table-name
target-server
tie-class
timeout
transport-config
transport-guarantee
unique-id
url-pattern
use-thread-pool-id
value
victim-selection-policy
web
web-uri
webservice-description
webservice-description-name
webservice-endpoint
wsdl-override
wsdl-port
wsdl-publish-location

Index


Copyright      Index      Next     


Part No: 819-0217.   Copyright 2004 - 2005 Sun Microsystems, Inc. All rights reserved.