我的一个项目使用的是WEBLOGIC,我也在它的CONSOLE中建立的数据源和连接池,可是总出现没有可用连接这样的错误!!!!!

jd29323 2002-07-06 04:34:55
我建立好了数据源和连接池以后,全部使用的是它的默认设置,没有调整过它的参数
我的程序运行的时候,总是出现错误:
Connection Error:weblogic.common.ResourceException: No available connections in pool MSSQLConnPool
java.lang.NullPointerException
我应该怎样调整CONSOLE中建立的数据源和连接池的参数呢?
...全文
213 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
carion 2003-05-07
  • 打赏
  • 举报
回复
从网上下载的oracle8.1.7企业版,最大同时连接数是150
jd29323 2002-07-08
  • 打赏
  • 举报
回复
那不论我设置成多大,总有消耗光的时候,比如我设置为100
那要是这个站点同时有150人连上来存取数据库,那岂不是又不够了
而且你根本无法判断到底会有多少人同时连上来
那这个最大值怎么设置呢?
daehappy 2002-07-08
  • 打赏
  • 举报
回复
UP!GZ!
ESoftWind 2002-07-08
  • 打赏
  • 举报
回复
一般情況下, 最大 100 個連接, 可以支持遠大于 100 個端的訪問
ESoftWind 2002-07-08
  • 打赏
  • 举报
回复
如果使用Connection Pool, 就不會在客戶端永遠保持一個連接, 而是在要訪問數据庫的時候, 才創建連接, 用完后應關閉, 這樣連接的使用時間是很短的, 如一個數据庫操作需 5 秒鐘, 那么 5 秒后, 這個連接就空閑了, 就可以被其它客戶使用. 如果在真的在這 5 秒鐘之內有 150 個客戶請求的話, 那沒辦法, 只能將最大連接數設成比 150 更大的值了.

你可以考量一下, 你的系統是否有這么大的并發訪問量, 可以在正常運作的情況下, 通過WegLogic Management Console 查看一下連接池中的連接數量, 再作一個正确的設定.
ESoftWind 2002-07-08
  • 打赏
  • 举报
回复
Re: 那不论我设置成多大,总有消耗光的实话呀?

Connection Pool的意義就在于當你調用connection.close()的時候,并沒有真正關閉連接, 而只是將其放入池中, 當下一個客戶請求連接時, 如果池中尚有剩余的連接, 就不會真正去連接數据庫, 而只是從池中分配. 這樣既提高了創建連接的速度, 也使不同客戶之間可以共享連接.

那到底池中最大連接數設成多少才合适呢? 這要根据不同的應用而定, 一般情況下, 并發請求越多的應用, Connection Pool的最大連接數就越大. 當然, 也要看看你的Server的Memory
ESoftWind 2002-07-07
  • 打赏
  • 举报
回复
按缺省設置, Connecion Pool的最大連接數很少, 這樣在使用過程中很容易消耗光, 所以應將最大連接數加大即可.

Mars_lee 2002-07-07
  • 打赏
  • 举报
回复
From edocs.bea.com:

Avoiding Server Lockup with the Correct Number of Connections

When your applications attempt to get a connection from a connection pool in which there are no available connections, the connection pool throws an exception stating that a connection is not available in the connection pool. Connection pools do not queue requests for a connection. To avoid this error, make sure your connection pool can expand to the size required to accommodate your peak load of connection requests.

To set the maximum number of connections for a connection pool in the Administration Console, expand the navigation tree in the left pane to show the Services—>JDBC—>Connection Pools nodes and select a connection pool. Then, in the right pane, select the Configuration—>Connections tab and specify a value for Maximum Capacity.

jd29323 2002-07-07
  • 打赏
  • 举报
回复
我可以保证我绝对connection.close()了

ESoftWind 你说的:
Connecion Pool的最大連接數很少, 這樣在使用過程中很容易消耗光

那不论我设置成多大,总有消耗光的实话呀?
armyshu 2002-07-07
  • 打赏
  • 举报
回复
记住,一定要配测试连接!

检查你的驱动程序有没有问题,可以在Jbuilder6中测试
aswill 2002-07-06
  • 打赏
  • 举报
回复
启动控制台,然后选择JDBC connection pool
在右侧可以配置初始的连接数和最大连接数,设置一下就可以了。
另外,你的问题一般是因为你在程序中使用了连接池但没有释放连接的原因。
用connection.close()释放一下就可以了,否则再多的连接也会报这样的错误
jd29323 2002-07-06
  • 打赏
  • 举报
回复
拜托,我不是问怎么配置连接池,能不能看清楚我的问题再回答呀
jd29323 2002-07-06
  • 打赏
  • 举报
回复
拜托,我不是问怎么配置连接池,能不能看清楚我的问题再回答呀
homey123 2002-07-06
  • 打赏
  • 举报
回复
具体步骤:
ConnectionPool与DataSource的联合使用,步骤:
1.建立一个连接池(ConnectionPool).
a.在Console的菜单中选择,Services/JDBC/Connection Pools
b.点击Configure a new JDBC Connection Pool...
c.Configuration/General Tab:
Name:EcodeHR
URL:jdbc:weblogic:mssqlserver4:EcodeHR@172.17.0.2:1190
Driver Classname:weblogic.jdbc.mssqlserver4.Driver
Properties(key=values):user=sa
password=

d.点击Create
e.Configuration/Connections Tab:
Initial Capacity:1
Maximum Capacity:5
其余默认
f.点击Apply
g.Targets/Servers Tab:
选择myserver,点击Apply!如果,没有报错,即证明创建连接池成功!

2.将连接池映射成数据源(DataSource).
a.在Console的菜单中选择,Services/jdbc/Data Sources
b.点击Configure a new JDBC Data Source...
c.Configuration Tab:
Name:TestDataSource (随便)
JNDI Name:EcodeHR (连接字符串)
Pool Name:EcodeHR (上边的dbpool名字)
d.点击Create
e.Targets/Services Tab:
选择myserver,点击Apply!如果,没有报错,即证明创建数据源成功!
LiGun 2002-07-06
  • 打赏
  • 举报
回复
要重启SERVER,或你没有数据库的驱动

1,220

社区成员

发帖
与我相关
我的任务
社区描述
企业软件 中间件技术
社区管理员
  • 中间件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧