遠程服務器為win2003,資料庫為ora11g,用戶端的客戶端為ora10,開發平臺為win7 64位 + XE8,資料庫連接用的是ado方式,控制元件用的是adoquery;
現在的問題是當多人同時提交資料時就會報資料庫鏈接失敗,等待2、3秒時間就又可以連接了,但有時還會報“ora-12518 tns 監聽程式無法分發客戶機連接”,這時就得重新起程式。目前我已經將資料庫的最大連接數調整到3000,但實際上用戶數才有20位左右,我監控過session,最大時也不過400多一些,資料提交方式采用的是
sql_str_show = "select rq as 日期,dwhz as 單位,xmh as 專案號,\r\n";
sql_str_show += "xm as 專案名稱, je as 金額 from "+tab_name+" where dm = '"+dm+"' \r\n";
sql_str_show += "and rq = '"+FormatDateTime("yyyy-mm-dd",dat)+"' order by id\r\n";
sql_str = "insert into " + tab_name + "(dm,dwhz,rq,xmh,xm,je,user,id)\r\n";
sql_str += "values( '"+dm+"', '"+dwmc+"', '"+FormatDateTime("yyyy-mm-dd",dat)+"' , \r\n";
sql_str += " "+IntToStr(xmh)+", '"+xmmc+"', "+FloatToStr(je)+",'"+this->sys_user+"','"+id+"') \r\n";
this->qry_yh_ins->Close();
this->qry_yh_ins->SQL->Clear();
this->qry_yh_ins->SQL->Add(sql_str);
this->qry_yh_ins->ExecSQL();
this->qry_yh->Close();
this->qry_yh->SQL->Clear();
this->qry_yh->SQL->Add(sql_str_show);
this->qry_yh->Open();
但是我在提交的同時會做兩次查詢,提交和查詢的庫是一個,各位高手看看 問題可能在哪?
uj5u.com熱心網友回復:
參考:http://bbs.csdn.net/topics/391075158
請幫頂。
uj5u.com熱心網友回復:
沒有用統一的ADOConnection來管理連接?oracle資料庫是有連接數限制的,你去查一下你們買了多少用戶數。程式里最好用ADOConnection管理與資料庫的連接,一個ADOQuery一個連接,很快就會撐爆連接數的。
uj5u.com熱心網友回復:
提交、再查詢都用的是一個ADOConnection,您的管理是什么意思?
再者總共不到20個用戶,連接數應該用不了多少啊
uj5u.com熱心網友回復:
自己頂一下
uj5u.com熱心網友回復:
回頭望望 看有沒有大神回一下
uj5u.com熱心網友回復:
有沒有用到事務機制?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/69180.html
標籤:數據庫及相關技術
上一篇:冒泡排序(C語言)
