In this blog, 25.000 books will be uploaded, so far more than 1400 books are available. Books, will be added daily, please check this blog daily.
Monday, January 17, 2011
VisualAge for Java Enterprise Version 2 Data Access Beans - Servlets - CICS Connector
Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
The Team That Wrote This Redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
Comments Welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Part 1. VisualAge for Java Enterprise Version 2. . . . . . . . . . . . . . . . .1
Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 VisualAge for Java Version 2 Professional. . . . . . . . . . . . . . . . . . . . . . . . 4
Support for Java Development Kit 1.1.6 . . . . . . . . . . . . . . . . . . . . . . . . . . 4
New Integrated Development Environment Features . . . . . . . . . . . . . . . 4
New Visual Composition Editor Features. . . . . . . . . . . . . . . . . . . . . . . . . 4
JavaBeans for Easy Access to Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 VisualAge for Java Version 2 Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . 5
Java Team Programming Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Source Code Management Tools Integration . . . . . . . . . . . . . . . . . . . . . . 5
Open Tool Integrator APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Enterprise Toolkits for Workstation, AS/400, and OS/390 . . . . . . . . . . . 6
Enterprise Access Builders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Automated Object to Relational Mapping . . . . . . . . . . . . . . . . . . . . . . . . . 7
Servlet Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
IDL Development Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Support for SanFrancisco, Tivoli, Lotus, and Component Broker . . . . . . 8
AIX Development Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Chapter 2. Relational Database Access with Data Access Beans . 9
2.1 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Data Access Beans versus Data Access Builder . . . . . . . . . . . . . . . . . . . 11
2.2 Development Process with Data Access Beans . . . . . . . . . . . . . . . . . . . 11
Loading the Data Access Bean Feature . . . . . . . . . . . . . . . . . . . . . . . . . 11
Using the Select Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Development Process Step by Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Building a Sample Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Application Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Development Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Creating the Project and the Package . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Creating the Sample Panel and the Select Bean . . . . . . . . . . . . . . . . . . 21
Building the User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Improving the Select Bean. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Run the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Chapter 3. Enterprise Application Development with Servlets . 47
3.1 Server-Side Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Common Gateway Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
What Are Servlets? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Servlet Creation Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Web Server Consideration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2 Inside Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Simple Servlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Invoking a Servlet in HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Invoking a Servlet with Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
HttpServlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Complex Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3 Servlet Builder Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
How Do Servlet Builder Beans Work?. . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Advantages of the Servlet Builder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Visual Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Servlet Builder Visual Beans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Servlet Builder Nonvisual Beans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Form Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Cookie Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Session Data Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Run Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Invoking Another Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.4 Creating Visual Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Simple Servlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Server-Side Include Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Counter Servlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Passing Data to the Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.5 Advanced Servlet Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Advanced HTML Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Servlet Chaining. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Keeping and Passing Data between Servlets . . . . . . . . . . . . . . . . . . . . . 81
Servlet Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Condition Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Disable Caching of Generated HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Servlet with JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Chapter 4. CICS Access with the CICS Connector . . . . . . . . . . . . . 91
4.1 The Enterprise Access Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.2 Connectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.3 The CICS Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
CICS Connector Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
CICS Connector Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4 CICS Universal Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Communcation Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Client Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Client Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.5 CICS Transaction Gateway. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
What the CICS Transaction Gateway Provides . . . . . . . . . . . . . . . . . . 101
How the CICS Transaction Gateway Accesses CICS . . . . . . . . . . . . . . 101
4.6 A Discussion Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.7 Accessing Enterprise Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Structure Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Records and the Java Record Framework. . . . . . . . . . . . . . . . . . . . . . . 105
Record Bean Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Navigators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Business Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Mappers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Executing the Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.8 A Review of Accessing Enterprise Data . . . . . . . . . . . . . . . . . . . . . . . . 124
Part 2. Implementing the ATM Application . . . . . . . . . . . . . . . . . . .125
Chapter 5. ATM Application Requirements and ATM Database 127
5.1 ATM Application Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.2 ATM Database Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Sample Data of ATM Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Chapter 6. ATM Application Business Model . . . . . . . . . . . . . . . . . 137
6.1 Application Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Application Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Application Layer Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.2 Business Object Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Business Logic Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Testing the Business Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
6.3 Application Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Persistence Layer Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Controller Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Controller and Persistence Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Implementing the Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
6.4 Persistence Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Chapter 7. ATM Application Persistence Using Data Access Beans
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.1 Persistence Layer Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
7.2 Database Access with ATM Database Beans . . . . . . . . . . . . . . . . . . . . 165
PIN Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
List of Accounts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Debit and Credit Transactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Transaction History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.3 Business Object Creation with ATM Database Beans . . . . . . . . . . . . 178
PIN Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
List of Accounts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Debit and Credit Transactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Transaction History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.4 Implementing the Persistence Interface . . . . . . . . . . . . . . . . . . . . . . . 186
AtmDB Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Testing the Implementation of the Persistence Interface . . . . . . . . . . 188
7.5 Preparation for Servlet Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Chapter 8. Swing GUI for ATM Application . . . . . . . . . . . . . . . . . . 191
8.1 Design of the GUI Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Application Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Panel Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
8.2 Implementation of the Application Panels . . . . . . . . . . . . . . . . . . . . . . 195
Card Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
PIN Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Select Account Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Transaction Panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
ATM Applet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
8.3 Running the ATM GUI Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Chapter 9. ATM Application Using Servlets . . . . . . . . . . . . . . . . . . 205
9.1 Create a Skeleton Controller Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . 206
9.2 Servlet Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Card Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
PIN Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Account Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Transaction Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Thank You Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.3 Application Flow Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.4 Implementing the Controller Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Preparation for Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Customer Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
PIN Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Account Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Deposit Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Withdraw Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Query Transaction History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Termination and Restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Disable Caching of the Output HTML . . . . . . . . . . . . . . . . . . . . . . . . . 233
Controller Servlet Total Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
9.5 Testing the ATM Servlet Application . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Built-in HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Using the WebSphere Application Server. . . . . . . . . . . . . . . . . . . . . . . 235
Using the ATM Servlet Application with DB2 . . . . . . . . . . . . . . . . . . . 236
9.6 Deploying Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Chapter 10. ATM Application with the CICS Connector . . . . . . . 239
10.1 A Review of the ATM Application Design . . . . . . . . . . . . . . . . . . . . . 240
The Persistence Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
10.2 Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Only a Subset of the Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . 242
CICS Infrastructure Assumptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
CICS Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Tasks Implemented . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
10.3 CICS Infrastructure Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 243
CICS Server Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
CICS Client Configuration and Startup . . . . . . . . . . . . . . . . . . . . . . . . 244
Starting the CICS Transaction Gateway . . . . . . . . . . . . . . . . . . . . . . . 245
10.4 Initial Creation of AtmCICS Class . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
10.5 ATM Header for the COMMAREA . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
10.6 CICS Transaction to Retrieve an ATM Card . . . . . . . . . . . . . . . . . . . 246
CICS COBOL Program ATMCARDI . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Card Record Bean. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Card Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Building a Navigator to Execute the CICS Transaction . . . . . . . . . . . 252
Implement the extGetCard Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
10.7 Using Mappers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Input Mapper for Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Output Mapper for Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Create a Command with Mappers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Execute the CICS Transaction with Mappers . . . . . . . . . . . . . . . . . . . 257
Change the AtmCICS Class to Use the Mappers . . . . . . . . . . . . . . . . . 259
10.8 Test the CICS Card Transaction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Prepare Test Output for Card Transaction. . . . . . . . . . . . . . . . . . . . . . 260
Testing Card Transaction with a Scrapbook Script . . . . . . . . . . . . . . . 261
Testing without CICS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
10.9 Discussion Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
10.10 CICS Transaction to Retrieve Accounts . . . . . . . . . . . . . . . . . . . . . . 263
CICS COBOL Program ATMACCNT . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Accounts Record Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Accounts Input Mapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Accounts Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Navigator to Execute the CICS Accounts Transaction. . . . . . . . . . . . . 267
Implement the extGetAccounts Method . . . . . . . . . . . . . . . . . . . . . . . . 270
10.11 Testing the CICS Accounts Transaction. . . . . . . . . . . . . . . . . . . . . . 270
Prepare Test Output for Accounts Transaction . . . . . . . . . . . . . . . . . . 270
Testing the Accounts Transaction with a Scrapbook Script . . . . . . . . 271
10.12 Testing the ATM Application with CICS . . . . . . . . . . . . . . . . . . . . . 272
Testing the Real Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
10.13 Using an Advanced Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Design of a Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Implementation of the Navigator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Testing the Navigator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
10.14 Implementation of the Back-End Programs. . . . . . . . . . . . . . . . . . . 277
10.15 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Chapter 11. ATM Application Using MQSeries. . . . . . . . . . . . . . . . 279
11.1 A Brief Overview of MQSeries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Messages and Queues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
MQSeries Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
MQSeries Clients and Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
11.2 MQSeries Version 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
11.3 About MQSeries and Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
MQSeries Client for Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
MQSeries Bindings for Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
The MQSeries Java Programming Interface . . . . . . . . . . . . . . . . . . . . 289
11.4 Implementing the ATM Application with MQSeries . . . . . . . . . . . . . 291
11.5 MQSeries Queue Manager and Objects . . . . . . . . . . . . . . . . . . . . . . . 292
Create a Queue Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Define MQSeries Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Command File to Start the Queue Manager. . . . . . . . . . . . . . . . . . . . . 294
11.6 Imprting MQSeries into VisualAge for Java . . . . . . . . . . . . . . . . . . 294
11.7 Create an MQAccess Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Sample MQSeries Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
MQAccess Bean. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Implement the MQAccess Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
11.8 ATM MQSeries Design Choices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Conforming to the ATM Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Unit of Work Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
11.9 ATM Request Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
AtmRequest Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Card Request. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Accounts Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
11.10 ATM Response Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
AtmResponse Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Card Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Accounts Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
11.11 ATM Access Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Card Access Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Account Access Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
11.12 Persistence Interface with MQSeries . . . . . . . . . . . . . . . . . . . . . . . . 315
AtmMQ Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
11.13 Adding Additional Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Create a Class for the MQSeries Request . . . . . . . . . . . . . . . . . . . . . . . 319
Create a Class for the MQSeries Response . . . . . . . . . . . . . . . . . . . . . . 320
Create a Transaction-Specific Access Class . . . . . . . . . . . . . . . . . . . . . 320
Modify the AtmMQ Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Create a Back-End Application Program . . . . . . . . . . . . . . . . . . . . . . . 324
11.14 Back-End Programs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Java Back-End Server Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Testing the ATM MQSeries Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Testing the ATM Application with MQSeries. . . . . . . . . . . . . . . . . . . . 331
CICS COBOL Back-End Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Chapter 12. Deployment of the ATM Application Implementations
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
12.1 Deployment of Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Prerequisites for Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Exporting an Application from VisualAge for Java . . . . . . . . . . . . . . . 334
Deployment Process for Applications . . . . . . . . . . . . . . . . . . . . . . . . . . 335
12.2 Deployment of Applets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Exporting Applets from VisualAge for Java . . . . . . . . . . . . . . . . . . . . . 336
Deployment Process for Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
12.3 Deployment of Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Deployment of Servlets for Lotus Domino Go Webserver . . . . . . . . . . 339
Target Location. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Class Path Setting for Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
12.4 Deployment of Applications with Swing. . . . . . . . . . . . . . . . . . . . . . . 344
12.5 Tailoring the Web Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Chapter 13. High-Performance Compiler and Remote Debugger
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
13.1 High-Performance Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Compiler Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Base Java Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Swing Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
13.2 Compiling the ATM Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Export the ATM Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Compile the ATM Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Compile the Data Access Beans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Compile the DB2 JDBC Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Remove the Object Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
13.3 Run the Compiled ATM Application. . . . . . . . . . . . . . . . . . . . . . . . . . 350
13.4 Alternative Compile Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
13.5 Remote Debugger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Reasons for Remote Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Running the Remote Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
13.6 Remote Debugging of the ATM Application. . . . . . . . . . . . . . . . . . . . 354
13.7 Debugging a Compiled Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Appendixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359
Appendix A. Installation, Setup, and Configuration . . . . . . . . . . 361
A.1 Setup of VisualAge for Java Enterprise Version 2 . . . . . . . . . . . . . . . 362
A.2 Setup for Data Access Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
A.3 Setup for the Servlet Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
A.4 Setup for the CICS Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Setup of the CICS Server and Client. . . . . . . . . . . . . . . . . . . . . . . . . . . 365
COBOL Sample Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
A.5 Setup for MQSeries on Windows NT . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Installation Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Queue Manager and Queue Setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
VisualAge for Java Setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
MQSeries CICS Bridge Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
A.6 Installation of the Redbook Samples . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Appendix B. Special Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Appendix C. Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
C.1 International Technical Support Organization Publications . . . . . . . 380
C.2 Redbooks on CD-ROMs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
C.3 Other Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
How to Get ITSO Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
How IBM Employees Can Get ITSO Redbooks. . . . . . . . . . . . . . . . . . . . . . 383
How Customers Can Get ITSO Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . 384
IBM Redbook Order Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
List of Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
ITSO Redbook Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Another Java Books
Another J2EE Books
Download
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment