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
}
親トピック: 非同期リクエストの送信