【求助】被捆扰的一个问题,在线求解!!

【求助】被捆扰的一个问题,在线求解!!

最近在做一个网络数据交换平台的项目,第一次用到了ORACLE,我在程序里是用PROC写的。
连接ORACLE的问题。先说下我的情况,我是接收到一条数据解析后进行存库,由于单线的效率实在是低,我只好改为多线程并发连接ORACLE。

首先接收到数据后,主线进行处理,处理好后,存入缓存区,然后建立一个线程,进行存储。

我连接数据库的代码是放到子线程中,大概调用流程为 1:ConnDB();   2:SaveMsg();   3: DisConn();

问题出在连接与存储方面。我第一次用的代码是:EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbname;

用这样的方式可以正常连接,但其实这样连接后我的并发存储就不起作用了,一次只能连接一个,存储一条数据,而且当我数据积累过多的时候还会造成数据丢失。

第二次我改为:EXEC SQL CONNECT :username IDENTIFED BY :password  AT : system1 USING :dbname;

其中system1是我定义的一个字符数组:char system[10][10]并给其赋值。(因为我想定义10个连接并且能够自动赋值。)

但此时的问题却又变成:并发连接数据库虽然成功了,可是数据却一条也存不到库里。
我存储代码为之前所说的SAVEMSG();其中的SQL执行语句里我也加了AT :SYSTEM2,这里的SYSTEM2是我用参数传递过来的,其实就是SYSTEM1,总之是对应的,其次我的子线程代码里也加入了互斥锁确保共享变量的安全。:confused: :confused:

由于我是第一次使用ORACLE,有很多不足的地方,以上的问题,还请大家指教。谢谢      
程序里面有没有提交的操作
EXEC SQL COMMIT;