6.3.1.1 例: TPNOTRANとTPNOREPLYフラグを設定した非同期メッセージの送信

次のリストは、tpacall()TPNOTRANTPNOREPLYフラグを使用する方法を示しています。このコードは、「例: TPNOTRANフラグを設定した同期メッセージの送信」のコードと同じです。ただし、この場合は、PRINTERサービスからの応答は要求されていません。TPNOREPLYフラグとTPNOREPLYフラグの両方を設定することで、クライアントが応答を要求していないこと、およびPRINTERサービスが現在のトランザクションに参加しないことを示します。詳細は、「エラーの管理」を参照してください。

TPNOTRANとTPNOREPLYフラグを設定した非同期メッセージの送信のリスト

#include <stdio.h>
#include "atmi.h"

main()

{
char *rbuf;                 /* report buffer */
long rlen, rrlen;           /* buffer lengths of send, reply buffers for report */

join application

if (rbuf = tpalloc("STRING", NULL, 0) == NULL) /* allocate space for report 
*/
 error
(void)strcpy(rbuf, "REPORT=accrcv DBNAME=accounts");/* send parms of report 
*/
rlen = strlen(rbuf)+1;     /* length of request */

start transaction

if (tpcall("REPORT", rbuf, rlen, &rbuf, &rrlen, 0)
    == -1) /* get report print stream */
    error
if (tpacall("PRINTER", rbuf, rrlen, TPNOTRAN|TPNOREPLY)
    == -1) /* send report to printer */
    error

. . .
commit transaction
free buffer
leave application
}