WAS连DB2最多只能有两个链接,我的错误在哪里?

时间:2022-01-31 06:17:30
以前是在Tomcat+SqlServer中的程序,最近要移植到WAS+DB2中。
没有采用WAS的datasourse,而是采用了网络上《用连接池提高Servlet访问数据库的效率》的方法(参见http://www.jiafangyifang.com/news/newsdata/2001_11_09/3/20011109111422.htm)。
但只能建立两个连接,再多就不行了,但以前在Tomcat下肯定是没有问题的。

我估计是我的系统配置问题,但不知道错在哪里。高手指点。

6 个解决方案

#1


为什么不使用WAS中强大的连接池,而要用这么简单的小程序呢?(BTW:我觉得那个连接池实在是……)

你说的只能建立两个连接,那么建立第3个连接的时候出错了还是怎么回事?

#2


就是,为什么不用WAS的连接池呢,何必自己去维护那
其实原理都是一样的,你可以在研究研究,程序一定有些问题

#3


因为程序不是我写,我负责做移植,所以不敢动大手脚。(水平也有限,没用过datasource)。
我发现问题所在了,还是我配置的问题。我用命令db2 create table web,但我没有创建一个远程调用别名。
在我们的程序中,原来使用的数据库名称是web,后来我用命令db2 catalog db web as web1 at node nodename创建别名,然后使用这个别名连接数据库,就再也没有问题了。

对这两种数据库的区别不清楚,不明白为什么使用web就只能创建两个连接。哪位再指点一下?

#4


我判断有两种可能性:
1)有可能是数据的配置问题,你可以使用下面两个命令察看一下
db2 get dbm cfg
(Max number of existing agents)
db2 get db cfg for yourdbname
(Max number of active applications)
 有问题可以直接进行修改.
2)察看你的代码是否释放了Connection,否则以前测试的连接也会加在MAXAPPLS 上。

#5


第一种情况,两个参数都足够大,分别是200和64。我修改为使用别名之后,发现Max number of active applications确实生效,但在使用别名之前只能有两个连接。(我发现问题所在是另外写了一段代码,直接连接数据库,竟然一次都连不上,没办法,尝试了一下别名,一不小心解决了问题。)
第二种情况,重新启动计算机之后的第一次访问也出现同样的问题,应该不是程序原因。

我就在想,数据库设置别名的目的是什么?通过网络访问?

#6


在db2中创建数据库后,强烈推荐对数据库进行编目(catalog),因为这样可以通过tcpip或别的协议访问数据库,这样可以得到比较好的性能,支持的连接数也多,而不编目的数据库则通过操作系统的某种协议进行访问,哪中协议记不清了;

#1


为什么不使用WAS中强大的连接池,而要用这么简单的小程序呢?(BTW:我觉得那个连接池实在是……)

你说的只能建立两个连接,那么建立第3个连接的时候出错了还是怎么回事?

#2


就是,为什么不用WAS的连接池呢,何必自己去维护那
其实原理都是一样的,你可以在研究研究,程序一定有些问题

#3


因为程序不是我写,我负责做移植,所以不敢动大手脚。(水平也有限,没用过datasource)。
我发现问题所在了,还是我配置的问题。我用命令db2 create table web,但我没有创建一个远程调用别名。
在我们的程序中,原来使用的数据库名称是web,后来我用命令db2 catalog db web as web1 at node nodename创建别名,然后使用这个别名连接数据库,就再也没有问题了。

对这两种数据库的区别不清楚,不明白为什么使用web就只能创建两个连接。哪位再指点一下?

#4


我判断有两种可能性:
1)有可能是数据的配置问题,你可以使用下面两个命令察看一下
db2 get dbm cfg
(Max number of existing agents)
db2 get db cfg for yourdbname
(Max number of active applications)
 有问题可以直接进行修改.
2)察看你的代码是否释放了Connection,否则以前测试的连接也会加在MAXAPPLS 上。

#5


第一种情况,两个参数都足够大,分别是200和64。我修改为使用别名之后,发现Max number of active applications确实生效,但在使用别名之前只能有两个连接。(我发现问题所在是另外写了一段代码,直接连接数据库,竟然一次都连不上,没办法,尝试了一下别名,一不小心解决了问题。)
第二种情况,重新启动计算机之后的第一次访问也出现同样的问题,应该不是程序原因。

我就在想,数据库设置别名的目的是什么?通过网络访问?

#6


在db2中创建数据库后,强烈推荐对数据库进行编目(catalog),因为这样可以通过tcpip或别的协议访问数据库,这样可以得到比较好的性能,支持的连接数也多,而不编目的数据库则通过操作系统的某种协议进行访问,哪中协议记不清了;