Contents

Title Page

Copyright Page

1. Introduction and a Simple Application

About This Chapter

Some Preliminaries

The CSIMPAPP Tutorial

Step 1: Copy the CSIMPAPP Files

Step 2: Examine the Client Program

References

Step 3: Compile the Client

References

Step 4: Examine the Server

References

Step 5: Build the Server

References

Step 6: Edit the Configuration File

References

Step 7: Load the Configuration File

References

Step 8: Boot the Application

References

Step 9: Enter a Request

Step 10: Using tmadmin

References

Step 11: Shut Down the Application

References

Summary

2. STOCKAPP Files

Directory Structure for STOCKAPP

Files

Additional PATH Component for SunOS

3. STOCKAPP Client Programs

A Look at STOCKAPP Client Programs

System Client Programs

Record Types

BUY.cbl-A Request/response Client

BUY.cbl Source Code

Building Client Programs

References

4. STOCKAPP Servers

A Look at STOCKAPP Servers

Service Definitions

Building Servers

Using the buildserver Command in the STOCKAPP

The BUYSELL Server

Servers Built in STOCKAPP.mk

References

5. The STOCKAPP Makefile

A Look at the STOCKAPP Makefile

Editing STOCKAPP.mk

TUXDIR

APPDIR

Running STOCKAPP.mk

6. Edit STOCKAPP Configuration File

Configuration File for STOCKAPP

Notes to Listing 6-1

References

7. Create TUXCONFIG

Loading the Configuration File

References

8. Boot the Application

Executing tmboot

The Userlog: ULOG

References

9. Run STOCKAPP

Run the Application

Running the audit Client Program

Using tmadmin

Shutting STOCKAPP Down

References

10. The BEA TUXEDO System Development Environment

Introduction

Client Processes

Basic Client Operation

Client Sending Repeated Service Requests

Server Processes and Service Subroutines

Basic Server Operation

Servers as Requesters

The ATMI Calls

An Overview of X/Open's TX Interface

Typed Records

Using VIEW and FML Buffers

Relationship Between VIEW Buffers and FML

Corresponding Data Type Definitions

Creating COBOL COPY Files from View Descriptions

FML/VIEW Conversion

Environment Variables

Configuration File

Making the Configuration Usable

The Bulletin Board

Starting and Stopping an Application

11. Writing Client Programs

Introduction

Preliminaries

Client Naming

Unsolicited Notification

Security Strategy

The TPINFDEF-REC Record

The USRNAME, CLTNAME and GRPNAME Members of
TPINFDEF-REC

The PASSWD Member of TPINFDEF-REC

The Settings Members of TPINFDEF-REC

The DATALEN Member of TPINFDEF-REC

Joining and Leaving an Application

Record Management

Typed Records for Messages

Record Types: STRING

Record Types: CARRAY

Record Types: FML and FML32

Record Types: VIEW, X_COMMON and VIEW32

Record Types: Summary

ATMI Record Calls

Service Calls

Sending Synchronous Messages: TPCALL

Values for the Settings: TPCALL

Examples of the Use of Settings

Sending Asynchronous Messages: TPACALL

Values for the Settings: TPACALL

Getting an Asynchronous Reply: TPGETRPLY

Getting and Setting Priority

Initiating a Conversational Connection

Sending a Broadcast Message

Handling Unsolicited Notification

Compiling Client Programs

The buildclient Command

The buildclient -o Option

The buildclient -f and -l Options

The buildclient -r Option

12. Writing Service Routines

Writing Request/Response Services

Application Service Template

The TPSVCSTART Routine

The TPSVCDEF-REC Structure

The Settings of TPSVCDEF-REC

The APPKEY Member of TPSVCDEF-REC

The CLIENTID Member of TPSVCDEF-REC

Accessing Data that Comes with the Request

Checking The Priority of the Service Request

The TPRETURN and TPFORWAR Routines

Sending Replies

TPRETURN Arguments: TP-RETURN-VAL IN
TPSVCRET-REC

TPRETURN Arguments: APPL-CODE IN TPSVCRET-REC

TPRETURN Arguments: DATA-REC and LEN IN
TPTYPE-REC

TPRETURN Example

Invalidating Handles: TPCANCEL

Forwarding Requests

TPFORWAR Arguments

TPFORWAR Example

Sending Unsolicited Messages

TPBROADCAST Arguments

TPBROADCAST Example

TPNOTIFY Arguments

Advertising, Unadvertising Services

TPADVERTISE Arguments

TPADVERTISE Example

TPUNADVERTISE

System-supplied Servers and Subroutines

System-Supplied Server: AUTHSVR

The BEA TUXEDO System Controlling Program

BEA TUXEDO System-Supplied Subroutines

TPSVRINIT

Using TPSVRINIT to Receive Command Line Options

Using TPSVRINIT to Open a Resource Manager

TPSVRDONE

Compiling Subroutines to Build Servers

The buildserver Command

The buildserver -o Option

The buildserver -f and -l Options

The buildserver -r Option

The buildserver -s Option

13. Conversational Clients and Services

Introduction

Conversational Mode

The Communications Handle

Record Management

Joining an Application

Establishing a Connection

Values for the Settings: TPCONNECT

Sending

Values for the Settings: TPSEND

Receiving

Values for the Settings: TPRECV

Ending a Conversation

Subordinate Calls TPRETURN

Hierarchy of Connections and TPRETURN

Ending a Conversation: Summary

Events and Their Significance

Disorderly Disconnection

Request/Response Calls and Conversations

Configuration Parameters

Building Conversational Clients and Servers

14. Global Transactions in the BEA TUXEDO System

Introduction

What Is a Global Transaction?

ATMI Transaction Primitives

Explicitly Defining a Global Transaction

Starting the Transaction

Terminating the Transaction

Implicitly Defining a Global Transaction

What a Service in an XA-Compliant Server Group Expects

15. Error Management

Introduction

Communicating Errors

Values of TP-STATUS

Protocol Errors

BEA TUXEDO System Errors

Operating System Errors

Errors from Invalid Arguments

Other Possible Error Categories

No Entry Errors

Permission Errors

Resource Manager Errors

Transaction-Related Errors

Typed Record Errors

Communication Handle Errors

General Communication Call Errors

Conversational Errors

Time-out Errors

Errors Leading to Abort

Heuristic Decision Errors

How to Deal with Errors

Fatal Transaction Errors

Time-out

Blocking vs. Transaction Time-out

Effect on TPCOMMIT

Effect of the TPNOTRAN Flag

Roles of TPRETURN and TPFORWAR

Service in Same Transaction as Caller

Service in Different Transaction with AUTOTRAN Set

Service Starts New Explicit Transaction

Transaction Rules

Communication Etiquette

BEA TUXEDO System-Supplied Subroutines

TPSVRINIT

TPSVRDONE

Leaving the Application

Global Transactions and Resource Managers

The Central Event Log

How the Log Is Named

What Log Entries Look Like

How to Write to the Event Log

16. Workstation COBOL Language Binding Feature

Introduction

UNIX

Programming Consideration with UNIX Clients

Writing Client Programs

Building Client Programs

Environment Variables

DOS

Programming Considerations with MS-DOS Clients

Writing Client Programs

Building Client Programs

Environment Variables

Windows

Programming Considerations with the Windows DLL

Writing Client Programs

Building Client Programs

Building ACCEPT/DISPLAY Clients

OS/2

Programming Considerations with OS/2 Clients

Writing Presentation Manager Client Programs

Blocking Network Behavior

Building Client Programs