DBCHWL - Call-Level Interface Version 2

Teradata® Call-Level Interfaceバージョン2リファレンス - ワークステーション接続システム

Product
Call-Level Interface Version 2
Release Number
17.10
Published
2021年6月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/ttt1608578409164.ditamap
dita:ditavalPath
ja-JP/ttt1608578409164.ditaval
dita:id
B035-2418
Product Category
Teradata Tools and Utilities

アプリケーションからのアクティブなリクエストまたはContextAreaに関連付けられているイベントの完了を待ちます。

完了したリクエストは、トークンとセッションIDを返します。完了したイベントは、イベントの完了を示す値をReturnCodeに返します。

提供されているセッション リストで定義されているセッションだけが適格とみなされます。

パラメータ

Int32 DBCHWL (ReturnCode, ContextArea,sessions, sessid, reqtoken)
Int32 *ReturnCode;
char **ContextArea;
SESSIONS_PTR sessions
Int32 *sessid;
Int32 *reqtoken;

次のような場合に当てはまります。

パラメータ 内容
ReturnCode アプリケーション プログラムによって割り振られた4バイトの符号付き整数のアドレス。

DBCHWLから制御が戻ると、この整数には、成功または失敗を表わすコード値が入っています。 ゼロの戻り値は、成功を示します。ゼロ以外の戻りコードは、失敗の理由を示します。

sessions配列がNULLの場合は、NOSESSIONエラーが返されます。 ContextAreaが正しく初期設定されていない場合は、BADUECNTAエラーが返されます。 ユーザー提供のイベントがタイムアウトになった場合は、EM_TIMEEXCEEDEDエラーが返されます。

ContextArea 文字ポインタを指す間接ポインタ。 DBCHUEはContextAreaを初期設定し、イベントをこのContextAreaに関連付けます。

このパラメータが非NULLの場合、DBCHWLは、定義されたイベントまたはセッション リスト内に含まれる完了済みリクエストのうち、どちらかが完了するのを待ちます。

sessions アプリケーションがリクエストの完了に関心を持つセッションのIDを含む、SESSIONS_PTRの配列。 このユーザー提供配列には、この配列を終了させるNULLのセッション配列エレメントが含まれている必要があります。
sessid (session) 4バイトの符号付き整数を指すポインタ。 制御がDBCHWLから正常に戻ると、sessidに、完了したリクエストのセッションIDの値が入ります。
reqtoken 4バイトの符号付き整数へのポインタ。コントロールがDBCHWLから正常に戻った後、reqtokenにはユーザーが提供するセッション リストから最初に完了するアクティブ リクエスト関連付けられている任意選択のユーザー トークンが入ります。

使用上の注意

DBCHWLには、SESSIONS_PTR配列のエレメントを終了させるNULLセッションが含まれている必要があります。

DBCHWLは、指定されたセッションのリストまたはDBCHUEで定義されているContextAreaに関連付けられたイベントに対するリクエストを待ちます。

DBCHWLのイベント タイプとして、CLI_WIN_TIMEOUTイベントだけがサポートされています。 このイベントに関連する戻りコードは、EM_TIMEEXCEEDEDです。

この関数は、多重スレッドのCLIをサポートします。

単一セッションからのリクエストを5秒間だけ待ちます。

/* supplied from a previous call to DBCHUE - char *cnta, which
	 	 	 contains a 5 second timeout event */
SESSIONS_PTR Sessions;
Int32 Active;
Int32 retcode = 0;
Int32 result = 0;
struct DBCAREA dbc;

/* allocate 2 session arrays and initialize arrays to 0's */
	 	 	 Sessions = (SESSIONS_PTR)calloc(2, sizeof(SESSIONS));
/* the dbcarea has been updated from the dbc.o_sess_id from
	 	 	 DBFCON CLI function */
/* first session is set, second session is NULL */
Sessions[0].session = dbc.i_sess_id;

retcode = DBCHWL(&result, (char **) &cnta, Sessions,
	 	 	 	 	 	 &Active,&dbc.token);
/* done with the event - delete the event and free memory */
retcode = DBCHUE(&result, (char **) &cnta, &time_event,
	 	 	 	 	 	 DELETE_EVENT);