討論區快速選單
知識庫快速選單
軟體開發過程中有哪些資安漏洞? 網路投保旅行平安險 討論區最近新進100則主題
[ 回上頁 ] [ 討論區發言規則 ]
VB 連結 informix 的問題 急!!
更改我的閱讀文章字型大小
作者 : jamesjantw2(jj)
[ 貼文 8 | 人氣 2784 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/21 下午 05:31:13
小弟對 Informix Server 不甚暸解

請問各位有沒有遇過 VB 連結 informix 的問題

我在 VB 透過 Informix ODBC Driver 下 query 指令去抓資料
當我抓一筆沒問題, 不限一筆時, 就會把 Informix 整個 hang 住
然後 Informix 就會去執行 CKPT REQ

很奇怪的是 當我去抓另一個 DBSpace 是 rootdbs 上的 Database 時又不會

我透過 ADO (2.5 版) 去連, Informix Driver 是 IBM Informix Client-SDK 2.81
Informix 版本是 9.40.UC1

請問有誰知道是啥問題嗎?


sConnectERP = "DRIVER={IBM INFORMIX 3.82 32 BIT};DATABASE=ds22;uid=aaaaaa;pwd=12345678;HOST=xxx.xxx.xxx.xxx;SERVER=on_XXXX;SERVICE=on_tcp_srv;PROTOCOL=onsoctcp;CLIENT_LOCALE=zh_tw.big5;DB_LOCALE=zh_tw.big5"

Set cnn = CreateObject("ADODB.Connection")


  cnn.ConnectionString = sConnectERP
  DoEvents
  Call cnn.Open
  
  Set rs = CreateObject("ADODB.Recordset")
  rs.CursorLocation = 3
  rs.CursorType = 3
  rs.LockType = 3
  Set rs.ActiveConnection = cnn
  
  Call rs.Open("select rvu01 from rvu_file") <-- 一執行就當掉

  Call rs.Open("select rvu01 from rvu_file where rvu01='XX -nnnnnn'") <-- 運作正常

感謝各位大大
作者 : hedge(hedge)
[ 貼文 127 | 人氣 2031 | 評價 290 | 評價/貼文 2.28 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/22 上午 07:10:55
VB 我沒有經驗......sorry !!!!

但是很久以前有寫過 VBA ..... 你的語法 要不要去 dbaccess 試試看?
如果 dbaccess 都沒有問題 那應該就是 driver 有問題
不管是 VB ODBC driver or Informix driver ....

參考一下以前的寫法 湊出來的....

Public g_Adocn As New ADODB.Connection
Public Const g_Connect_str = "DSN=ifxst;uid=informix;pwd=xy;database=st"

g_Adocn.Open g_Connect_str
'set isolation to dirty read
    
l_Sql_str = "set isolation to dirty read"
g_Adocn.Execute l_Sql_str


Dim l_Sql_str As String
Dim l_rs As New ADODB.Recordset
l_Sql_str = "select * from customer " ;
l_rs.Open l_Sql_str, g_Adocn, , adLockReadOnly

Do Until l_rs.EOF
     DoEvents

     Sheet6.Range("C" & i) = "" & l_rs("zipcode")
     Next i 'For
    
     l_rs.MoveNext
Loop
l_rs.Close
Set l_rs = Nothing


    

作者 : gkang(kk) Informix優秀好手貼文超過200則
[ 貼文 264 | 人氣 514 | 評價 1340 | 評價/貼文 5.08 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/22 下午 10:47:34
是 vb 程式當掉還是 informix database server 當掉, 另外那個table 有多少資料?
作者 : hedge(hedge)
[ 貼文 127 | 人氣 2031 | 評價 290 | 評價/貼文 2.28 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/23 上午 07:20:58
Dear Gary....

是 informix 當掉.....那個 table 有 1000 筆資料..... ^^

神通者 hedge .......哈哈~~~~

informix 執行 CKPT REQ ....... 啥意思?? checkpoint request ??

select table 怎麼執行 checkpoint ?? 新功能...??........ccc



作者 : jamesjantw2(jj)
[ 貼文 8 | 人氣 2784 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/23 上午 07:39:32
是 Informix 當掉

我們用的是 鼎新 Tiptop
現在要由外部去撈鼎新的資料來做處理

在 ODBC 建立 Connection 都正常

但是只要對 Informix 下指令, 就會造成 Informix 當掉

log 檢查都正常 (online.log 無錯誤訊息 llog plog 空間都夠)

因為 Informix 沒有回覆訊息給 Client 端的程式
Client 端程式就一直在 waiting

當 Informix Shutdown 時, Client 端程式就回覆連線中斷

很奇怪
作者 : gkang(kk) Informix優秀好手貼文超過200則
[ 貼文 264 | 人氣 514 | 評價 1340 | 評價/貼文 5.08 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人jamesjantw2註記此篇回應為很有道理 2005/3/23 上午 08:50:50
select table 和 ckptreq 是沒關係, 若是只是1000 筆資料和 buffer 也沒關係了,

用 oncheck 檢查一下是否 table 的data 和 index 有沒問題
另外的問題是 其他 table 也一樣嗎? 還是只有這個 table ?
database 的版本是多少
作者 : jamesjantw2(jj)
[ 貼文 8 | 人氣 2784 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/23 上午 09:15:02
tks kk

Informix 版本是 9.40.UC1

我們有兩個 dbspace rootdbs & dbs1

在 rootdbs 上的沒問題, 但在 dbs1 上的全部都無法抓資料

我用 oncheck -ci ds22

確認 ds22:informix.inj_file 的索引...
     索引 inj_01
     索引 區段在DBspace dbs1 中

WARNING: index check requires a s-lock on tables whose lock level is page.

有一些 table 會出現上述的訊息
作者 : gkang(kk) Informix優秀好手貼文超過200則
[ 貼文 264 | 人氣 514 | 評價 1340 | 評價/貼文 5.08 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人jamesjantw2註記此篇回應為很有道理 2005/3/23 下午 03:06:16
run oncheck -cI ds22:rvu_file 和 oncheck -cD ds22.rvu_file.
把 onstat -d 貼上來, s-lock ( share lock )因有人在使用是沒問題
若是dbs1 全都有問題. 那你問題大了

作者 : jamesjantw2(jj)
[ 貼文 8 | 人氣 2784 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/23 下午 03:21:46
>oncheck -cI ds22:rvu_file

確認 ds22:topn.rvu_file 的索引...
     索引 rvu_01
     索引 區段在DBspace dbs1 中
     索引 rvu_02
     索引 區段在DBspace dbs1 中
     索引 rvu_03
     索引 區段在DBspace dbs1 中

>oncheck -cD ds22:rvu_file

ds22:topn.rvu_file 的 TBLspace 資料檢查


>onstat -d

Informix Dynamic Server Version 9.40.UC1 -- On-Line -- Up 00:42:30 -- 33102s

Dbspaces
位址 號碼 旗標 fchunk nchunks 旗標 擁有人 名稱
0x53f8d7d8 1 0x20001 1 1 N informix rootdbs
0x5494f978 2 0x2001 2 1 N T informix tmpdbs
0x5494fac8 3 0x1 3 1 N informix llogdbs
0x5494fc18 4 0x1 4 1 N informix plogdbs
0x5494fd68 5 0x40001 5 1 N B informix dbs1
 作業中的5, 2047 最大值

閒置區塊
位址 chk/dbs offset 大小 可用的 bpages 旗標 路徑名稱
0x53f8d928 1 1 0 512000 348541 PO-- /cookfit
0x5494f358 2 2 0 256000 255947 PO-- /cookfip
0x5494f4e0 3 3 0 512000 141947 PO-- /cookfig
0x5494f668 4 4 0 128000 127947 PO-- /cookfig
0x5494f7f0 5 5 0 5120000 4334147 PO-B /cookfi1
 作業中的5, 2047 最大值

Expanded chunk capacity mode: disabled
作者 : jamesjantw2(jj)
[ 貼文 8 | 人氣 2784 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/23 下午 03:29:59
我重裝舊版本的 SDK (INTERSOLV)

ConnectionString = "DRIVER={INTERSOLV 3.11 32-BIT INFORMIX 9};UID=aaaaaaaa;PRO=onsoctcp;SRVR=on_shmx;SERV=on_tcpx_srv;HOST=xxx.xxx.xxx.xxx;DB=ds22@on_shmx;PWD=12345678"

並且將 Informix Server 作業系統(Linux) reboot
現在VB程式執行時可以抓資料也不會當, 但執行 Tiptop 程式後, 變成 Tiptop 程式當掉了
但VB程式還是抓的到資料

>onstat -d

Informix Dynamic Server Version 9.40.UC1 -- On-Line (CKPT REQ) -- Up 00:45:s
Blocked:CKPT

Dbspaces
位址 號碼 旗標 fchunk nchunks 旗標 擁有人 名稱
0x53f8d7d8 1 0x20001 1 1 N informix rootdbs
0x5494f978 2 0x2001 2 1 N T informix tmpdbs
0x5494fac8 3 0x1 3 1 N informix llogdbs
0x5494fc18 4 0x1 4 1 N informix plogdbs
0x5494fd68 5 0x40001 5 1 N B informix dbs1
 作業中的5, 2047 最大值

閒置區塊
位址 chk/dbs offset 大小 可用的 bpages 旗標 路徑名稱
0x53f8d928 1 1 0 512000 348541 PO-- /cookfit
0x5494f358 2 2 0 256000 255931 PO-- /cookfip
0x5494f4e0 3 3 0 512000 141947 PO-- /cookfig
0x5494f668 4 4 0 128000 127947 PO-- /cookfig
0x5494f7f0 5 5 0 5120000 4334147 PO-B /cookfi1
 作業中的5, 2047 最大值

Expanded chunk capacity mode: disabled
作者 : jamesjantw2(jj)
[ 貼文 8 | 人氣 2784 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/23 下午 03:51:48
Sorry 另一個測試是

如果我先 run Tiptop, 再去執行 VB 程式
這樣 VB & Tiptop 都會當

看 online.log 看不出啥問題

16:36:08 Maximum server connections 3
17:04:09 主要 Daemon 已死 <------------------------------- kill process
17:04:10 PANIC: Attempting to bring system down
17:04:11 Informix Dynamic Server Started. <--------------- oninit
     NETTYPE 'on_shm9' 輪詢處理線串從 NET Vps 開始.


Wed Mar 23 17:04:12 2005

17:04:12 事件警訊已啟動. ALARMPROG = '/u1/informix/etc/no_log.sh'
17:04:18 (6) connection rejected - no calls allowed for sqlexec
止模式不允許任何連接 .

17:04:19 INFORMIX 萬用伺服器已初始化 -- 分享記憶體已初始化.
17:04:19 Physical Recovery Started at Page (1:340214).
17:04:19 Physical Recovery Complete: 2 Pages Examined, 2 Pages Restored.
17:04:19 邏輯回復開始.
17:04:19 10 recovery worker threads will be started.
17:04:22 Logical Recovery has reached the transaction cleanup phase.
17:04:22 邏輯回復完成.
     8 已確認, 9 已回復, 0 已開啟, 0 壞的鎖定

17:04:23 對於全部的 dbsapces, Dataskip 現在是 OFF
17:04:23 檢查點完成: 期間為 0 秒.
17:04:23 Checkpoint loguniq 3191, logpos 0x4f5018, timestamp: 1398809384

17:04:23 Maximum server connections 0
17:04:23 線上模式
17:04:52 檢查點完成: 期間為 0 秒.
17:04:52 Checkpoint loguniq 3191, logpos 0x4f7018, timestamp: 1398814188
作者 : jamesjantw2(jj)
[ 貼文 8 | 人氣 2784 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/23 下午 03:58:53
sorry, log 少了一段

17:04:52 Maximum server connections 4
17:14:14 主要 Daemon 已死

17:14:14 PANIC: Attempting to bring system down
17:14:16 Informix Dynamic Server Started.
17:14:16 架構 CPU 的輪詢處理線串數量超過 'NUMCPUVPS'.
     NETTYPE 'on_shm9' 輪詢處理線串從 NET Vps 開始.
作者 : gkang(kk) Informix優秀好手貼文超過200則
[ 貼文 264 | 人氣 514 | 評價 1340 | 評價/貼文 5.08 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人jamesjantw2註記此篇回應為很有道理 2005/3/23 下午 10:25:02
找 DSC 把 IDS 的版本換新, uc1 應該是 RH9 或更早的linux, 不要用太新的linux,


可以檢查的東西, 應該不是問題才對
onconfig,sqlhost 和 connect 中的dbserver check 一下

PRO=onsoctcp;SRVR=on_shmx;SERV=on_tcpx_srv,DB=ds22@on_shmx
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
dbserver name 應該是走 socket, SERV不會出現二次,

NETTYPE 'on_shm9'
^^^^^^^^^^^^^
sqlhosts 和 onconfig 沒對好

作者 : jamesjantw2(jj)
[ 貼文 8 | 人氣 2784 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/24 上午 10:40:54
根據 DSC 內部人員給的答案

經過與 informix 新加坡原廠確認,是 informix 9.40.UC1 本身在 linux 8.0 的 bug . 解決方法,
可以更新 linux 8.0 的 glibc 或是等 informix 9.40.UC3

太帥了!!

感謝各位大大的協助!!
作者 : gkang(kk) Informix優秀好手貼文超過200則
[ 貼文 264 | 人氣 514 | 評價 1340 | 評價/貼文 5.08 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人jamesjantw2註記此篇回應為很有道理 2005/3/24 下午 05:30:02
IDS 9.40.UC5 Intel Linux Kernel 2.4.x 2004/11/1
IDS 9.40.UC5 Intel RedHat Enterprise Linux AS 3 2004/11/1
IDS 9.40.UC5 Intel SuSE SLES 9 2004/11/1
IDS 9.40.UC5 Intel UnitedLinux 1 2004/11/1
 板主 : 徵求中
 > Informix 資料庫 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Informix 資料庫 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Informix 資料庫
1 kk 1340 
2 哈囉齒齒 430 
3 hedge 290 
4 Chelonia Mydas 250 
5 Foris 250 
6 wenli 200 
7 old cat 160 
8 大頭 140 
9 chyang 100 
10 sansui 90 
Informix 資料庫
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.078125