鄙人愚钝,请高人明示有关weblogic中连接池与数据源的配置。

spczhou 2001-09-27 09:53:48
加精
环境:pwin2000+weblogic6.0SP2+Oracle8i
使用方法:jsp+javabean

现jsp+javabean运行正常。但用到通过weblogic内部的连接池及数据源数据库连接失败。
错误如下:
2001-9-27 上午08时51分30秒> <Error> <HTTP> <[WebAppServletContext(1338658,Defau
tWebApp_myserver)] Root cause of ServletExceptionavax.naming.NameNotFoundException: Unable to resolve spcsourse. Resolved: '' Unesolved:'spcsourse' ; remaining name ''
<<no stack trace available>>

连接程序如下:
Hashtable parms = new Hashtable();
parms.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
Context ctx = new InitialContext(parms);
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("spcsourse");
Connection con = ds.getConnection();

使用的驱动:oracle.jdbc.driver.OracleDriver
url设置:jdbc:oracle:thin:@172.16.1.11:1521:spctest //spctest为库名
...全文
286 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lci21 2001-10-10
  • 打赏
  • 举报
回复
sigh
spczhou 2001-09-30
  • 打赏
  • 举报
回复
谢谢,lick和supersonics,问题是出在这。现在已经解决了。
我要给分了。
yorkchen 2001-09-27
  • 打赏
  • 举报
回复
你是怎么设置weblogic的pool的?
spczhou 2001-09-27
  • 打赏
  • 举报
回复
请问sunjiujiu:weblogic.jdbc.oci.Driver这个驱动是不是纯java驱动.
我在你给的例子之中,找不到设置数据库服务器ip的url.这是不是说,你的数据库和weblogic装在同一台机子上.或者,我需要依靠oracle的客户端才能使用你的例子.
还有supersonics,请问怎样才能确定pool可用,且datasource配置好了.我的weblogic启动正常,没有抱任何错误,不知这是不是算正常.
谢谢两位的答复,如果解决问题,必有分送上.

supersonics 2001-09-27
  • 打赏
  • 举报
回复
首先确定你的pool池是可用的,datasource也配置好了。
sunjiujiu 2001-09-27
  • 打赏
  • 举报
回复
weblogic.jdbc.connectionPool.oraclePool= url=jdbc:weblogic:oracle, driver=weblogic.jdbc.oci.Driver, loginDelaySecs=1, initialCapacity=1, maxCapacity=10, capacityIncrement=2, allowShrinking=true, shrinkPeriodMins=15, refreshMinutes=10, testTable=dual, props=user=system;password=manager;server=IB-SERVER
# Add a TXDataSource for the connection pool:
weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.oraclePool=oraclePool

weblogic中的连接池的设置,我的机器是这样的,你应该对应的修改一下。对了,当时我用的是weblogic5.0(sp9),不知道你现在是否用的是6.0
sunjiujiu 2001-09-27
  • 打赏
  • 举报
回复
private void connectDB() throws NamingException, SQLException {
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup("weblogic.jdbc.jts.oraclePool");
con = ds.getConnection();
stmt = con.createStatement();

这样就应该可以的,如果你的weblogic中的连接池设的正确的话。
supersonics 2001-09-27
  • 打赏
  • 举报
回复
你的datasource的jndi名为myjndi,但是你去取datasource的时候去用的是spcsourse。
我想至少这里是错的:lookup的是jndiname,而不是name.
hexiaofeng 2001-09-27
  • 打赏
  • 举报
回复
gz
lick 2001-09-27
  • 打赏
  • 举报
回复
<JDBCDataSource JNDIName="myjndi" Name="spcsourse" PoolName="spcpool" Targets="myserver"/>
老兄,我们要的就是jndiname,
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("myjndi");
或者干脆直接把name和jndiname命名相同,比较适合我这种懒人使用的,呵呵,居然把数据库用户名都贴出来了,赶快密码吧!
spczhou 2001-09-27
  • 打赏
  • 举报
回复
pool的配置:(console中)
name: spcpool
url: jdbc:oracle:thin:@172.16.1.11:1521:spctest
driver classname:oracle.jdbc.driver.OracleDriver
properties:user=spc
password=spc
dll=ocijdbc8
protocol=thin
----------------------
Initial Capacity:4
Maximum Capacity:10
Capacity Increment:2
Login Delay Seconds:1
Refresh Period:1
------------------
targets
chosen :myserver
Test Table Name:spctable


spczhou 2001-09-27
  • 打赏
  • 举报
回复
supersonics:config.xml中如下: <JDBCDataSource JNDIName="myjndi" Name="spcsourse"
PoolName="spcpool" Targets="myserver"/> 好象没错啊.
lick:我已经按照你说的改动了程序,问题依旧.
001-9-27 下午01时13分02秒> <Error> <HTTP> <[WebAppServletContext(1338658,Defau
WebApp_myserver)] Root cause of ServletException
vax.naming.NameNotFoundException: Unable to resolve spcsourse. Resolved: '' Un
solved:'spcsourse' ; remaining name ''
<<no stack trace available>>
程序:Hashtable parms = new Hashtable();
parms.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
parms.put(Context.PROVIDER_URL, "t3://localhost:7001");
Context ctx = new InitialContext(parms);
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("spcsourse");
Connection con = ds.getConnection();
我的qq是 6512329

lick 2001-09-27
  • 打赏
  • 举报
回复
Hashtable parms = new Hashtable();
parms.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
parms.put(Context.PROVIDER_URL,"t3://localhost:7001");//localhos为相应的weblogic服务器ip地址
Context ctx = new InitialContext(parms);
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("spcsourse");
Connection con = ds.getConnection();

你的连接程序缺少相应的weblogic服务器地址,
重点就在上面的
parms.put(Context.PROVIDER_URL,"t3://localhost:7001");
//localhos为相应的weblogic服务器ip地址
另外确定的datasouce命名没错,而且pool配置正确,看你的使用好像是weblogic6.0以上的版本吧
supersonics 2001-09-27
  • 打赏
  • 举报
回复
wls6.x:看config.xml中的pool和datasource的target是否是你的app名。
我也遇到过,配置了pool和datasource,但是却没有和app连接起来而无法使用。
不知道你的是不是这样。

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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