主要功能是使用資料庫連線池和多執行緒技術用occi訪問oracle,貼出來和大家共同學習.
#undef ace_has_standard_cpp_library
#define ace_has_standard_cpp_library 1
#include "ace/os.h"
#include "ace/log_msg.h"
#include "ace/task.h"
#include
#include "occi.h"
using namespace std;
using namespace oracle::occi;
class occipool_handler
/*** destructor for the occipool_handler. */
~occipool_handler()
/* * create the occi pool */
int create_pool()
else
} catch (sqlexception ex)
} /*
* pull a connection */
connection *pull_connection()
else
if (con)
else
} catch (sqlexception ex)
} /*
* push a connection */
void push_connection(connection *con)
else
cout << "occi pool must be created in advance." << endl; }
catch (sqlexception ex)
} private:
environment *env_;
connectionpool *connpool_;
ace_thread_mutex mutex_; };
class task_handler: public ace_task < ace_mt_synch > //sub children thread
virtual int svc(void)
else
statement *localstatement = con->createstatement(
"select ioid_db,ioid_id0,ioid_type,ioid_rev,to_char(created_time,'yyyymmdd'),to_char(mod_time,'yyyymmdd'),read_access,write_access, ""staff_id,parent_id,region_level,region_name,area_code,description ""from ls6_para.region_t where region_level = :f1 order by ioid_id0");
if (localstatement == null)
return -1;
localstatement->setint(1, 3);
resultset *rst = null;
try
catch (sqlexception &e)
if (rst == null)
resultset::status localstatus = rst->next();
if (localstatus == resultset::end_of_fetch)
else
} catch (sqlexception &ex)
} localstatement->closeresultset(rst);
con->terminatestatement(localstatement);
pool_->push_connection(con);
return 0; }
private:
occipool_handler *pool_; };
int ace_tmain(int, ace_tchar *) ;
occipool_handler *occipool = new occipool_handler();
if (occipool->create_pool())
task_handler *task = new task_handler(occipool);
task->activate(thr_new_lwp | thr_joinable, num_uses);
ace_thread_manager::instance()->wait();
delete task;
delete occipool;
return 0; }
ACE多執行緒伺服器
ace adaptive communication environment 它是乙個物件導向的 跨平台的 開放原始碼的網路程式設計基礎設施框架。ace 是由加利福尼亞大學irvine分校的douglas c.schmidt 博士主導開發的,是一種跨平台可編譯的網路程式設計api,並隨後在工業界中發...
多執行緒技術
1,程序 執行緒 程序 系統中同時執行的不同程式 執行緒 程式中同時執行不同的操作 單個cpu只能按順序執行指令,cpu可以隨機在不同的程序和執行緒進行切換,保證程序和執行緒都執行一遍後再重複這個過程。因為cpu執行速度足夠快,讓人感覺程式是同時執行的。2,執行緒 thread thread sle...
多執行緒開發和Socket技術
程序 每個應用程式對應乙個程序 執行緒 乙個程序至少包含乙個執行緒,執行緒要和cpu進行互動。多執行緒併發 可以理解為 同一時間 執行多件事情,如程式一邊執行,一邊計數 計時 如人一邊吃飯,一邊看電視。多執行緒併發的本質,其實並不是cpu 同時 執行多件事情,而是在不停的切換,執行一段時間事件a,切...