没有采用WAS的datasourse,而是采用了网络上《用连接池提高Servlet访问数据库的效率》的方法(参见http://www.jiafangyifang.com/news/newsdata/2001_11_09/3/20011109111422.htm)。
但只能建立两个连接,再多就不行了,但以前在Tomcat下肯定是没有问题的。
我估计是我的系统配置问题,但不知道错在哪里。高手指点。
6 个解决方案
#1
为什么不使用WAS中强大的连接池,而要用这么简单的小程序呢?(BTW:我觉得那个连接池实在是……)
你说的只能建立两个连接,那么建立第3个连接的时候出错了还是怎么回事?
你说的只能建立两个连接,那么建立第3个连接的时候出错了还是怎么回事?
#2
就是,为什么不用WAS的连接池呢,何必自己去维护那
其实原理都是一样的,你可以在研究研究,程序一定有些问题
其实原理都是一样的,你可以在研究研究,程序一定有些问题
#3
因为程序不是我写,我负责做移植,所以不敢动大手脚。(水平也有限,没用过datasource)。
我发现问题所在了,还是我配置的问题。我用命令db2 create table web,但我没有创建一个远程调用别名。
在我们的程序中,原来使用的数据库名称是web,后来我用命令db2 catalog db web as web1 at node nodename创建别名,然后使用这个别名连接数据库,就再也没有问题了。
对这两种数据库的区别不清楚,不明白为什么使用web就只能创建两个连接。哪位再指点一下?
我发现问题所在了,还是我配置的问题。我用命令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 上。
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个连接的时候出错了还是怎么回事?
你说的只能建立两个连接,那么建立第3个连接的时候出错了还是怎么回事?
#2
就是,为什么不用WAS的连接池呢,何必自己去维护那
其实原理都是一样的,你可以在研究研究,程序一定有些问题
其实原理都是一样的,你可以在研究研究,程序一定有些问题
#3
因为程序不是我写,我负责做移植,所以不敢动大手脚。(水平也有限,没用过datasource)。
我发现问题所在了,还是我配置的问题。我用命令db2 create table web,但我没有创建一个远程调用别名。
在我们的程序中,原来使用的数据库名称是web,后来我用命令db2 catalog db web as web1 at node nodename创建别名,然后使用这个别名连接数据库,就再也没有问题了。
对这两种数据库的区别不清楚,不明白为什么使用web就只能创建两个连接。哪位再指点一下?
我发现问题所在了,还是我配置的问题。我用命令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 上。
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或别的协议访问数据库,这样可以得到比较好的性能,支持的连接数也多,而不编目的数据库则通过操作系统的某种协议进行访问,哪中协议记不清了;