6.3.1.1 例: TPNOTRANとTPNOREPLYフラグを設定した非同期メッセージの送信
次のリストは、tpacall()でTPNOTRANとTPNOREPLYフラグを使用する方法を示しています。このコードは、「例: 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
}親トピック: 非同期リクエストの送信