1. tpsvcinfo結構體
void tpservice(tpsvcinfo *svcinfo);
只有乙個引數,該引數是指向tpsvcinfo結構的指標(atmi.h)。該結構定義如下:
2.除錯和出錯處理
當呼叫atmi出錯時,返回值為-1,全程變數tperrno被設值,該變數提供系統定義的出錯原因。函式tpstrerror()以此變數為引數,返回錯誤的字元說明資訊。完整的錯誤號和文字錯誤資訊存在於檔案$tuxdir/include/atmi.h。函式userlog()重定向輸出檔案為ulog.mmddyy。使用方法同printf()。該函式每次輸出都寫硬碟,這樣在系統失敗時也能保留除錯資訊。
usrlog(「atmi error logged %d %s」,tperrno,tpstrerror(tperrno));
3.tuxedo基本的資料緩衝型別:
² string 以空值結尾的單域字元資料。
² carray 有長度定義的單域二進位制資料,不進行編、解碼。
² view 類c結構或cobol記錄的多域組織。
² fml 無固定結構的自定義緩衝。
4.資料緩衝管理
函式用法:
(char *)tpalloc((char *)type, (char *)subtype, long size)
(char *)tprealloc((char *)bufptr, long newsize)
voidtpfree((char *)bufptr)
5.同步通訊和非同步通訊
同步通訊 int tpcall((char *)servicename, (char *)bufptr, long length, (char **)bufptr, (long *)length, long flags)
函式tpcall()有6個引數。如下:
交易名² 請求資料緩衝
² 請求資料緩衝的長度(僅緩衝型別為carry時需要)
² 返回資料緩衝的位址。緩衝大小可以根據收到資料而改變。
² 返回資料緩衝大小的位址
² 標誌量
標誌量可以是以下值:
² tpnotran 如有交易不呼叫
² tpnoblock 如有阻塞不等待
² tpnotime 願意等待直到超時
² tpsigrstrt 系統中斷訊號在tuxedo完成後再發布
出錯返回-1,錯誤原因如下:
² tpeinval 引數錯誤
² tpetran 交易相關錯誤
² tpetime 超時
ret = tpcall(「toupper」,bufptr,len,&bufptr,&len,flags);
atmi提供2個非同步通訊函式
tpacall()和tpgetrply()
int tpacall((char *)service, (char *)bufptr, long len, long flags);
flag:tpnoblock,tpsigrstrt,tpnotime,tpnotran,tpnochange,tpgetany
int tpgetrply((int *)handle, (char **)bufptr, (long *)len, long flags);
flag:tpnoblock,tpsigrstrt,tpnotime,tpnotran
tpacall()有4個引數
² 交易名
² 請求資料緩衝
² 請求資料緩衝的長度(僅緩衝型別為carry時需要)
² 標誌量(同tpcall())
返回值是乙個非負描述符(控制代碼),用於其後的tpgetrply()呼叫。如果tpacall()呼叫失敗,控制代碼是-1,錯誤原因設定在tperrno,可能是以下值:
tpelimit 過多未處理的tpacall()
tpetime 超時
tpacall()後總跟隨乙個tpgetrply(),有4個引數
² 變數位址,可以傳入tpcall()所得控制代碼,或另設乙個
² 返回資料緩衝的位址。緩衝大小可以根據收到資料而改變。
² 返回資料緩衝大小的位址
² 標誌量
標誌量的值可以是如下之一:
tpgetany 取第乙個返回值,設控制代碼
tpnochange 取傳送請求的匹配的型別的資訊
參見tpcall()中的值
返回值0表示成功,-1表示失敗,錯誤原因可能如下:
² tpeinval 引數錯誤
² tpeotype 返回資料緩衝型別錯誤
² tpetime 超時
C 自學筆記 一
1.類組合的建構函式 類名 類名 物件成員所需的形參,本類成員形參 物件1 引數 物件2 引數 2.int a 10 int b a 即b a 10 myclass circle 將呼叫建構函式初始化 myclass newcircle circle 將呼叫 拷貝建構函式,若沒得,則呼叫預設的拷貝建...
Oracle自學筆記(一)
1 建立使用者並指定表空間 create user gy 3004 identified by gy 3004 default tablespace gy 3004 data temporary tablespace gy 3004 temp 2 給使用者授予許可權 方式一 grant create...
JAVA自學筆記一
二 表示式 基本語句 1.算數運算子 加減乘除 取餘 運算子,均為二目運算子 結合方向自左向右 算術運算的精度由高到低排列 byte short char int long float double 當算術表示式運算過程中如果表示式中有不等的精度,結果均按照高精度排列 2.自增自減運算子 自增自減運...