将dao封装进ejb后频繁连接的问题
部分代码如下:
/*获取EJB*/
Context ctx=new InitialContext();
Object ref=ctx.lookup("DBAccess");
DBAccessHome dbHome=(DBAccessHome)PortableRemoteObject.narrow(ref,DBAccessHome.class);
DBAccess db =dbHome.create();
/*打开数据库连接*/
db.openDB();
ValueObject vob=null;
/*执行查询操作*/
for(int i=0;i<10;i++)
{
vob = db.query("TBDICT");
System.out.println(vob.getRecordNum());
}
db.closeDB();
按说上述操作只进行了一次数据库连接,但执行结果发现进行了11次数据库连接,望赐教!
问题点数:100、回复次数:3Top
1 楼tx18(www.sqlserver.com.cn)回复于 2005-02-25 14:28:25 得分 50
这是正常的,跟您配置的正常连接数和最大连接数等参数有关,一般来说DAO初始化以后一直要根据配置参数跟数据库保持一个动态连接状态!Top
2 楼ll42002(灰舌)回复于 2005-02-25 14:29:14 得分 50
你的EJB中用的是有状态会话BEAN,还是无状态的会话BEAN?Top
3 楼dmgh(秦国华)回复于 2005-02-25 14:46:03 得分 0
(1)EJB采用的是无状态的会话BEAN
(2)如果不采用EJB访问,直接生成DBAccessBean的实例,则只进行了1次数据库连接,代码如下:
DBAccessBean db=new DBAccessBean();
/*打开数据库连接*/
db.openDB();
ValueObject vob=null;
/*执行查询操作*/
for(int i=0;i<10;i++)
{
vob = db.query("TBDICT");
System.out.println(vob.getRecordNum());
}
db.closeDB();
Top




