HP NonStop G-Series User Manual

Page 74

Advertising
background image

Application Design Considerations

Creating Client Applications

4–18

110838 Tandem Computers Incorporated

Note

The term “asynchronous” means the same as the Tandem term “nowait” in the preceding description.

Tandem DDE Gateway

Message Buffers

The DDE Execute function with the INITIALIZESERVICE command allocates buffers
within the Tandem DDE Gateway to store data items that you send with DDE Poke
functions and data items that you request with DDE Request functions. These buffers
are initialized to binary-zeroes by the INITIALIZESERVICE command. For each DDE
conversation, one buffer is allocated for data to be sent to the Tandem system and one
buffer is allocated for reply data received from the Tandem system. The size of the
buffers is determined by your ServiceName object configuration (see Section 2,
“Workstation Configuration” for detailed information on ServiceName object
configuration).

The buffer into which you put data items with DDE Poke functions is not altered,
reallocated, or destroyed by the DDE Execute SEND command. Therefore, if you wish
to perform a series of transactions of the same type within a DDE conversation, you do
not need to use an INITIALIZESERVICE command between each transaction. Also,
you can save workstation processing by not using DDE Poke functions again for data
items in the request message to the Tandem server that are the same for each
transaction of the series.

Client Program Timeout

Considerations

Client applications can take advantage of the timeout capabilities provided by the
Microsoft DDE Management Library and the built-in DDE verbs in many client tools.

Generally, a client application need not be concerned with timeouts occurring on DDE
Request and DDE Poke functions because these are executed entirely on the
workstation. The same is true for all but one of the commands used with the DDE
Execute function, the exception being the SEND command that causes a message to be
sent to a Tandem server.

You can specify a timeout value in a call to the DdeClientTransaction function. If you
do this for a DDE Execute function, then the error DMLERR_EXECACKTIMEOUT
could be returned.

With Microsoft Visual Basic, you can specify a timeout by using the LinkTimeout
property. Review the documentation for the tool that you are using to see how you
can manage timeouts for DDE functions.

After a timeout has occurred, your client application should usually end the DDE
conversation (using the DDE Terminate function). Any reply data that returns from
the Tandem system after the DDE conversation has ended is discarded.

Undefined Filler Areas in

Message Buffers

Tandem server message layouts often have implied filler for padding to get
subsequent binary numbers correctly aligned. As the Tandem DDE Gateway builds
the message in element-by-element mode, these fillers remain undefined by your client
application.

If your client application, say for an update transaction, sends an old and new record
image, the undefined nature of the filler can pose difficulties. For example, suppose
your client program stores the old record data elements element-by-element (after a

Advertising