Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010052981 | QA76.73.J38 J385 2002 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
This is a guide to a diverse range of window treatments. Each of the more than 100 ideas - several of which are no-sew - can easily be accomplished in less than two hours. The authors dispense professional advice on what makes a window treatment successful, and show how to salvage old favourites, incorporate special hardware and use natural light. And of course there is information on fabrics, tassels, ties and more.
Author Notes
Mark Hapner is Lead Architect for the Java 2 Platform, Enterprise Edition. He participated in the development of the JDBC API, wrote the Java Message Service specification, and co-authored the Enterprise JavaBeans specification.
Rich Burridge is a Staff Engineer at Sun Microsystems, where he has worked for over fifteen years. Currently with the Accessibility group, he is the creator of the Java Shared Data Toolkit (JSDT) and a coauthor of the Java Message Service API specification. Previously he worked on the "Netscape 6 for Solaris," OpenStep, and OpenWindows products.
Rahul Sharma is the lead architect of the J2EE Connector architecture and a Senior Staff Engineer at the Java Software division of Sun Microsystems, Inc. Presently, he is the lead architect of the JAX-RPC (Java APIs for XML based RPC) 1.0. Rahul has been with Sun for the last five years. Rahul holds a computer engineering degree from the Delhi University, India, and an MBA from the Haas School of Business, UC Berkeley.
Joseph Fialli is a Senior Staff Engineer at Sun Microsystems, where he has worked for the past four years. Currently, he is the lead architect for the Java Architecture for XML Binding (JAXB). Previously, he was the technical lead for the Java Message Service API within the J2EE Software Development Kit, version1.3, and maintained Java serialization within the Java 2 Platform, Standard Edition, version 1.2.
Kim Haase is a staff writer with Sun Microsystems, where she documents the J2EE platform. In previous positions she has documented compilers, debuggers, and floating-point programming. She currently writes about the Java Message Service and J2EE SDK tools.
Excerpts
Excerpts
The Java™ Message Service Tutorial and Reference provides an introduction to the Java Message Service (JMS) API for new users. It has the following goals: To introduce the JMS API to new users, with simple JMS client program examples To show how to use the JMS API within the Java 2 Platform, Enterprise Edition (J2EE™ platform), with additional simple examples showing how to Consume messages asynchronously with a message-driven bean Produce messages from an application client Produce messages from a session bean Access an entity bean from a message-driven bean Produce and consume messages on more than one system To provide a full reference to the JMS API for JMS client programmers The audience for this book is programmers who expect to write JMS applications, especially applications for the J2EE platform ("J2EE applications") that use the JMS API. We assume that you are familiar with the Java programming language and that you have some experience with earlier versions of the J2EE platform. In order to run the tutorial examples, we recommend that you download and install the Java 2 Software Development Kit, Enterprise Edition (J2EE SDK), version 1.3 or above, which is available at no charge and runs on the Solaris™ Operating Environment and on the Linux and Windows NT/2000 operating systems. See http://java.sun.com/j2ee/ for more information and a link to the J2EE SDK. You should first install the required version of the Java 2 Software Development Kit, Standard Edition (J2SE™ SDK), if it is not already installed. You can download the examples in this book, along with an HTML version of the tutorial, from the following location: http://java.sun.com/products/jms/tutorial/. The downloaded examples are in a directory named jms_tutorial/examples (on UNIX(R) systems) or jms_tutorial\examples (on Microsoft Windows systems). You may adapt the examples to other implementations of the JMS API and the J2EE platform, but you will need to study your vendor's documentation to determine how to modify the parts of the examples and instructions that deal with external resources, such as JMS administered objects (connection factories and destinations) and databases. For the J2EE platform examples, you will also need to adapt the instructions to use your vendor's packaging and deployment tools. Part Two, the reference, is based on the API documentation for JMS version 1.0.2b. The reference describes all parts of the API that apply to JMS application programmers. It does not describe the methods and interfaces that are used only for implementing a JMS provider. This book uses a few simple documentation conventions: Monospace fontis used for code, which includes what would be typed in a source code file or on the command line, URLs, file names, keywords, and names of classes, interfaces, exceptions, constructors, methods, and fields. Italic code font is used for variables in text, command lines, and method explanations. Italic font is used for introducing new terms, for book titles, and for emphasis. We welcome your comments, questions, and suggestions. Please send them to the following e-mail address: jms-book@sun.com. Errata for this book and information on other books in the Addison-Wesley Java series will be posted at http://java.sun.com/Series. 0201784726P02132002 Excerpted from Java Message Service API Tutorial and Reference: Messaging for the J2EE Platform by Richard Burridge, Rahul Sharma, Joseph Fialli, Kim Haase, Mark Hapner All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.Table of Contents
Preface | p. xvii |
Acknowledgments | p. xix |
About the Authors | p. xxi |
Part 1 p. 1 | |
1 Overview | p. 3 |
1.1 What Is Messaging? | p. 3 |
1.2 What Is the JMS API? | p. 4 |
1.3 When Can You Use the JMS API? | p. 5 |
1.4 How Does the JMS API Work with the J2EE Platform? | p. 6 |
2 Basic JMS API Concepts | p. 9 |
2.1 JMS API Architecture | p. 9 |
2.2 Messaging Domains | p. 10 |
2.2.1 Point-to-Point Messaging Domain | p. 11 |
2.2.2 Publish/Subscribe Messaging Domain | p. 11 |
2.3 Message Consumption | p. 13 |
3 The JMS API Programming Model | p. 15 |
3.1 Administered Objects | p. 16 |
3.1.1 Connection Factories | p. 17 |
3.1.2 Destinations | p. 18 |
3.2 Connections | p. 18 |
3.3 Sessions | p. 19 |
3.4 Message Producers | p. 20 |
3.5 Message Consumers | p. 21 |
3.5.1 Message Listeners | p. 22 |
3.5.2 Message Selectors | p. 23 |
3.6 Messages | p. 23 |
3.6.1 Message Headers | p. 23 |
3.6.2 Message Properties | p. 24 |
3.6.3 Message Bodies | p. 25 |
3.7 Exception Handling | p. 26 |
4 Writing Simple JMS Client Applications | p. 27 |
4.1 Setting Your Environment for Running Applications | p. 28 |
4.2 A Simple Point-to-Point Example | p. 29 |
4.2.1 Writing the PTP Client Programs | p. 29 |
4.2.2 Compiling the PTP Clients | p. 37 |
4.2.3 Starting the JMS Provider | p. 37 |
4.2.4 Creating the JMS Administered Objects | p. 37 |
4.2.5 Running the PTP Clients | p. 38 |
4.2.6 Deleting the Queue | p. 39 |
4.3 A Simple Publish/Subscribe Example | p. 39 |
4.3.1 Writing the Pub/Sub Client Programs | p. 39 |
4.3.2 Compiling the Pub/Sub Clients | p. 48 |
4.3.3 Starting the JMS Provider | p. 48 |
4.3.4 Creating the JMS Administered Objects | p. 49 |
4.3.5 Running the Pub/Sub Clients | p. 49 |
4.3.6 Deleting the Topic and Stopping the Server | p. 50 |
4.4 Running JMS Client Programs on Multiple Systems | p. 51 |
4.4.1 Communicating Between Two J2EE Servers | p. 51 |
4.4.2 Communicating Between a J2EE Server and a System Not Running a J2EE Server | p. 52 |
5 Creating Robust JMS Applications | p. 55 |
5.1 Using Basic Reliability Mechanisms | p. 56 |
5.1.1 Controlling Message Acknowledgment | p. 56 |
5.1.2 Specifying Message Persistence | p. 58 |
5.1.3 Setting Message Priority Levels | p. 59 |
5.1.4 Allowing Messages to Expire | p. 59 |
5.1.5 Creating Temporary Destinations | p. 60 |
5.2 Using Advanced Reliability Mechanisms | p. 60 |
5.2.1 Creating Durable Subscriptions | p. 61 |
5.2.2 Using JMS API Local Transactions | p. 64 |
6 Using the JMS API in a J2EE Application | p. 67 |
6.1 Using Enterprise Beans to Produce and to Synchronously Receive Messages | p. 67 |
6.1.1 Administered Objects | p. 68 |
6.1.2 Resource Management | p. 68 |
6.1.3 Transactions | p. 69 |
6.2 Using Message-Driven Beans | p. 69 |
6.3 Managing Distributed Transactions | p. 71 |
6.4 Using the JMS API with Application Clients and Web Components | p. 74 |
7 A Simple J2EE Application that Uses the JMS API | p. 75 |
7.1 Writing and Compiling the Application Components | p. 76 |
7.1.1 Coding the Application Client: SimpleClient.java | p. 77 |
7.1.2 Coding the Message-Driven Bean: MessageBean.java | p. 79 |
7.1.3 Compiling the Source Files | p. 82 |
7.2 Creating and Packaging the Application | p. 82 |
7.2.1 Starting the J2EE Server and the Deploytool | p. 83 |
7.2.2 Creating a Queue | p. 83 |
7.2.3 Creating the J2EE Application | p. 84 |
7.2.4 Packaging the Application Client | p. 84 |
7.2.5 Packaging the Message-Driven Bean | p. 87 |
7.2.6 Checking the JNDI Names | p. 90 |
7.3 Deploying and Running the Application | p. 90 |
7.3.1 Looking at the Deployment Descriptor | p. 91 |
7.3.2 Adding the Server | p. 93 |
7.3.3 Deploying the Application | p. 93 |
7.3.4 Running the Client | p. 94 |
7.3.5 Undeploying the Application | p. 95 |
7.3.6 Removing the Application and Stopping the Server | p. 95 |
8 A J2EE Application that Uses the JMS API with a Session Bean | p. 97 |
8.1 Writing and Compiling the Application Components | p. 98 |
8.1.1 Coding the Application Client: MyAppClient.java | p. 99 |
8.1.2 Coding the Publisher Session Bean | p. 100 |
8.1.3 Coding the Message-Driven Bean: MessageBean.java | p. 106 |
8.1.4 Compiling the Source Files | p. 108 |
8.2 Creating and Packaging the Application | p. 109 |
8.2.1 Starting the J2EE Server and the Deploytool | p. 109 |
8.2.2 Creating a Topic | p. 110 |
8.2.3 Creating a Connection Factory | p. 110 |
8.2.4 Creating the J2EE Application | p. 111 |
8.2.5 Packaging the Application Client | p. 111 |
8.2.6 Packaging the Session Bean | p. 113 |
8.2.7 Packaging the Message-Driven Bean | p. 115 |
8.2.8 Specifying the JNDI Names | p. 117 |
8.3 Deploying and Running the Application | p. 118 |
8.3.1 Adding the Server | p. 118 |
8.3.2 Deploying the Application | p. 119 |
8.3.3 Running the Client | p. 119 |
8.3.4 Undeploying the Application | p. 120 |
8.3.5 Removing the Application and Stopping the Server | p. 120 |
9 A J2EE Application that Uses the JMS API with an Entity Bean | p. 123 |
9.1 Overview of the Human Resources Application | p. 124 |
9.2 Writing and Compiling the Application Components | p. 125 |
9.2.1 Coding the Application Client: HumanResourceClient.java | p. 126 |
9.2.2 Coding the Message-Driven Beans | p. 132 |
9.2.3 Coding the Entity Bean | p. 145 |
9.2.4 Compiling the Source Files | p. 155 |
9.3 Creating and Packaging the Application | p. 155 |
9.3.1 Starting the J2EE Server and the Deploytool | p. 156 |
9.3.2 Creating a Queue | p. 156 |
9.3.3 Starting the Cloudscape Database Server | p. 157 |
9.3.4 Creating the J2EE Application | p. 157 |
9.3.5 Packaging the Application Client | p. 157 |
9.3.6 Packaging the Equipment Message-Driven Bean | p. 160 |
9.3.7 Packaging the Office Message-Driven Bean | p. 163 |
9.3.8 Packaging the Schedule Message-Driven Bean | p. 165 |
9.3.9 Packaging the Entity Bean | p. 167 |
9.3.10 Specifying the Entity Bean Deployment Settings | p. 169 |
9.3.11 Specifying the JNDI Names | p. 170 |
9.4 Deploying and Running the Application | p. 171 |
9.4.1 Adding the Server | p. 171 |
9.4.2 Deploying the Application | p. 172 |
9.4.3 Running the Client | p. 172 |
9.4.4 Undeploying the Application | p. 173 |
9.4.5 Removing the Application and Stopping the Server | p. 173 |
10 An Application Example that Uses Two J2EE Servers | p. 175 |
10.1 Overview of the Applications | p. 176 |
10.2 Writing and Compiling the Application Components | p. 177 |
10.2.1 Coding the Application Client: MultiAppServerRequester.java | p. 177 |
10.2.2 Coding the Message-Driven Bean: ReplyMsgBean.java | p. 184 |
10.2.3 Compiling the Source Files | p. 188 |
10.3 Creating and Packaging the Application | p. 188 |
10.3.1 Starting the J2EE Servers and the Deploytool | p. 189 |
10.3.2 Creating a Connection Factory | p. 189 |
10.3.3 Creating the First J2EE Application | p. 190 |
10.3.4 Packaging the Application Client | p. 191 |
10.3.5 Creating the Second J2EE Application | p. 194 |
10.3.6 Packaging the Message-Driven Bean | p. 194 |
10.3.7 Checking the JNDI Names | p. 197 |
10.4 Deploying and Running the Applications | p. 198 |
10.4.1 Adding the Server | p. 198 |
10.4.2 Deploying the Applications | p. 199 |
10.4.3 Running the Client | p. 200 |
10.4.4 Undeploying the Applications | p. 200 |
10.4.5 Removing the Applications and Stopping the Servers | p. 201 |
10.5 Accessing a J2EE Application from a Remote System that Is Not Running a J2EE Server | p. 201 |
10.5.1 Accessing a J2EE Application from a Standalone Client | p. 201 |
10.5.2 Using runclient to Access a Remote Application Client | p. 208 |
Part 2 p. 209 | |
11 BytesMessage | p. 211 |
11.1 Overview and Related Methods and Interfaces | p. 211 |
11.2 Interface Definition | p. 212 |
11.3 Methods | p. 213 |
12 Connection | p. 225 |
12.1 Overview and Related Interfaces | p. 225 |
12.2 Interface Definition | p. 226 |
12.3 Methods | p. 227 |
13 ConnectionFactory | p. 233 |
13.1 Overview and Related Interfaces | p. 233 |
13.2 Interface Definition | p. 234 |
14 ConnectionMetaData | p. 235 |
14.1 Overview | p. 235 |
14.2 Interface Definition | p. 235 |
14.3 Methods | p. 236 |
15 DeliveryMode | p. 239 |
15.1 Overview | p. 239 |
15.2 Interface Definition | p. 239 |
15.3 Fields | p. 240 |
16 Destination | p. 241 |
16.1 Overview and Related Interfaces | p. 241 |
16.2 Interface Definition | p. 242 |
17 ExceptionListener | p. 243 |
17.1 Overview and Related Method | p. 243 |
17.2 Interface Definition | p. 243 |
17.3 Methods | p. 244 |
18 IllegalStateException | p. 245 |
18.1 Overview | p. 245 |
18.2 Class Definition | p. 245 |
18.3 Constructors | p. 246 |
19 InvalidClientIDException | p. 247 |
19.1 Overview | p. 247 |
19.2 Class Definition | p. 247 |
19.3 Constructors | p. 248 |
20 InvalidDestinationException | p. 249 |
20.1 Overview | p. 249 |
20.2 Class Definition | p. 249 |
20.3 Constructors | p. 250 |
21 InvalidSelectorException | p. 251 |
21.1 Overview | p. 251 |
21.2 Class Definition | p. 251 |
21.3 Constructors | p. 252 |
22 JMSException | p. 253 |
22.1 Overview | p. 253 |
22.2 Class Definition | p. 254 |
22.3 Constructors | p. 254 |
22.4 Methods | p. 255 |
23 JMSSecurityException | p. 257 |
23.1 Overview | p. 257 |
23.2 Class Definition | p. 257 |
23.3 Constructors | p. 258 |
24 MapMessage | p. 259 |
24.1 Overview and Related Methods and Interfaces | p. 259 |
24.2 Interface Definition | p. 261 |
24.3 Methods | p. 261 |
25 Message | p. 273 |
25.1 Overview | p. 273 |
25.1.1 Message Bodies | p. 274 |
25.1.2 Message Headers | p. 275 |
25.1.3 Message Properties | p. 275 |
25.1.4 Provider Implementations of JMS Message Interfaces | p. 277 |
25.1.5 Message Selectors | p. 278 |
25.1.6 Related Methods and Interfaces | p. 283 |
25.2 Interface Definition | p. 284 |
25.3 Fields | p. 285 |
25.4 Methods | p. 286 |
26 MessageConsumer | p. 309 |
26.1 Overview and Related Interfaces | p. 309 |
26.2 Interface Definition | p. 310 |
26.3 Methods | p. 310 |
27 MessageEOFException | p. 315 |
27.1 Overview | p. 315 |
27.2 Class Definition | p. 315 |
27.3 Constructors | p. 316 |
28 MessageFormatException | p. 317 |
28.1 Overview | p. 317 |
28.2 Class Definition | p. 317 |
28.3 Constructors | p. 318 |
29 MessageListener | p. 319 |
29.1 Overview | p. 319 |
29.2 Interface Definition | p. 319 |
29.3 Methods | p. 320 |
30 MessageNotReadableException | p. 321 |
30.1 Overview | p. 321 |
30.2 Class Definition | p. 321 |
30.3 Constructors | p. 322 |
31 MessageNotWriteableException | p. 323 |
31.1 Overview | p. 323 |
31.2 Class Definition | p. 323 |
31.3 Constructors | p. 324 |
32 MessageProducer | p. 325 |
32.1 Overview and Related Interfaces | p. 325 |
32.2 Interface Definition | p. 326 |
32.3 Methods | p. 326 |
33 ObjectMessage | p. 333 |
33.1 Overview and Related Methods and Interfaces | p. 333 |
33.2 Interface Definition | p. 334 |
33.3 Methods | p. 334 |
34 Queue | p. 337 |
34.1 Overview and Related Methods and Interfaces | p. 337 |
34.2 Interface Definition | p. 337 |
34.3 Methods | p. 338 |
35 QueueBrowser | p. 339 |
35.1 Overview and Related Methods and Interfaces | p. 339 |
35.2 Interface Definition | p. 339 |
35.3 Methods | p. 340 |
36 QueueConnection | p. 343 |
36.1 Overview and Related Interfaces | p. 343 |
36.2 Interface Definition | p. 343 |
36.3 Methods | p. 343 |
37 QueueConnectionFactory | p. 345 |
37.1 Overview and Related Interfaces | p. 345 |
37.2 Interface Definition | p. 345 |
37.3 Methods | p. 345 |
38 QueueReceiver | p. 347 |
38.1 Overview and Related Methods and Interfaces | p. 347 |
38.2 Interface Definition | p. 347 |
38.3 Methods | p. 348 |
39 QueueRequestor | p. 349 |
39.1 Overview and Related Interfaces | p. 349 |
39.2 Class Definition | p. 349 |
39.3 Constructor | p. 350 |
39.4 Methods | p. 350 |
40 QueueSender | p. 353 |
40.1 Overview and Related Methods and Interfaces | p. 353 |
40.2 Interface Definition | p. 354 |
40.3 Methods | p. 354 |
41 QueueSession | p. 359 |
41.1 Overview and Related Methods and Interfaces | p. 359 |
41.2 Interface Definition | p. 359 |
41.3 Methods | p. 360 |
42 ResourceAllocationException | p. 365 |
42.1 Overview | p. 365 |
42.2 Class Definition | p. 365 |
42.3 Constructors | p. 366 |
43 Session | p. 367 |
43.1 Overview and Related Interfaces | p. 367 |
43.2 Interface Definition | p. 369 |
43.3 Fields | p. 370 |
43.4 Methods | p. 371 |
44 StreamMessage | p. 377 |
44.1 Overview and Related Methods and Interfaces | p. 377 |
44.2 Interface Definition | p. 379 |
44.3 Methods | p. 380 |
45 TemporaryQueue | p. 391 |
45.1 Overview and Related Methods and Interfaces | p. 391 |
45.2 Interface Definition | p. 391 |
45.3 Methods | p. 391 |
46 TemporaryTopic | p. 393 |
46.1 Overview and Related Methods and Interfaces | p. 393 |
46.2 Interface Definition | p. 393 |
46.3 Methods | p. 393 |
47 TextMessage | p. 395 |
47.1 Overview and Related Methods and Interfaces | p. 395 |
47.2 Interface Definition | p. 396 |
47.3 Methods | p. 396 |
48 Topic | p. 397 |
48.1 Overview and Related Methods and Interfaces | p. 397 |
48.2 Interface Definition | p. 397 |
48.3 Methods | p. 398 |
49 TopicConnection | p. 399 |
49.1 Overview and Related Interfaces | p. 399 |
49.2 Interface Definition | p. 399 |
49.3 Methods | p. 399 |
50 TopicConnectionFactory | p. 401 |
50.1 Overview and Related Interfaces | p. 401 |
50.2 Interface Definition | p. 401 |
50.3 Methods | p. 401 |
51 TopicPublisher | p. 403 |
51.1 Overview and Related Method | p. 403 |
51.2 Interface Definition | p. 404 |
51.3 Methods | p. 404 |
52 TopicRequestor | p. 409 |
52.1 Overview and Related Interface | p. 409 |
52.2 Class Definition | p. 409 |
52.3 Constructor | p. 410 |
52.4 Methods | p. 410 |
53 TopicSession | p. 413 |
53.1 Overview and Related Methods and Interfaces | p. 413 |
53.2 Interface Definition | p. 413 |
53.3 Methods | p. 414 |
54 TopicSubscriber | p. 421 |
54.1 Overview and Related Methods and Interfaces | p. 421 |
54.2 Interface Definition | p. 422 |
54.3 Methods | p. 422 |
55 TransactionInProgressException | p. 425 |
55.1 Overview | p. 425 |
55.2 Class Definition | p. 425 |
55.3 Constructors | p. 426 |
56 TransactionRolledBackException | p. 427 |
56.1 Overview | p. 427 |
56.2 Class Definition | p. 427 |
56.3 Constructors | p. 428 |
Appendix A JMS Client Examples | p. 429 |
A.1 Durable Subscriptions | p. 429 |
A.2 Transactions | p. 439 |
A.3 Acknowledgment Modes | p. 464 |
A.4 Utility Class | p. 478 |
Glossary | p. 487 |
Index | p. 495 |