Connection reset by peer: socket write error 高手出招(偶等待之中)

coffeemilk 2005-01-19 11:26:52
java.net.SocketException: Connection reset by peer: socket write error

oracle+weblogic+jsp
这就奇怪了,这是为什么啊??
是有时候不出错,有时候就在后台抛出这种异常。

老是出现这种情况
我查过以前的贴子,已经有人也发了这种问题的贴。可惜的是
我没有找到答案。

请高手们给点招?
...全文
11611 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
平淡面对 2005-03-25
  • 打赏
  • 举报
回复
这个设计的架构很成问题。
private static DataSource ds = null ;
private static String dbJndiName = "TestConn" ;//连接沲
private static Connection connection=null;

这里,Connection 绝对不可以用 static, 这样可能有同步问题。另外,估计你
在关闭 Connection 的时候,也有同样的问题。总之,Conection 不要 定义为
全局变量,而且要保证没有 concurrency 的问题。
DelphiBird 2005-03-25
  • 打赏
  • 举报
回复
我也碰到这样的问题 交流解决一下
coffeemilk 2005-02-24
  • 打赏
  • 举报
回复
非常感谢!@
DanielYWoo 2005-02-24
  • 打赏
  • 举报
回复
楼主请察看短信留言,里面有我的qq
cwell 2005-02-24
  • 打赏
  • 举报
回复
Session过期了就会出现这个问题,也和weblogic的版本有关。
coffeemilk 2005-02-24
  • 打赏
  • 举报
回复
to DanielYWoo(绿色毒汁);
你有没有联系方式,MSN不行,我这里现在上不了,不知为什么。
有QQ没有,有的话,我发信息给你。
coffeemilk 2005-02-23
  • 打赏
  • 举报
回复
to drugon(想换工作,准备跳槽................................) :


是指同一个页面。因为同一个页面中有用到多次查询来得到结果
这种得到查询结果的操作我就封装在一个bean 的方法里。
这个方法,每次都是先判断全局变量连接是否有,没连接就先取得连接。

每个页面在最后一行释放连接.

改了之后,如果存在并发的情况,就出现上面那种异常信息!
coffeemilk 2005-02-23
  • 打赏
  • 举报
回复
to DanielYWoo(绿色毒汁) :
是指同一个页面。因为同一个页面中有多次查询得到结果
这种得到查询结果的操作我就封装在一个bean 的方法里。
这个方法,每次都是先判断全局变量连接是否有,没连接就先取得连接。

每个页面在最后一行释放连接.

改了之后,如果存在并发的情况,就出现上面那种异常信息!

请赐教!!!!!目前还是没找到为什么
DanielYWoo 2005-02-23
  • 打赏
  • 举报
回复
〉〉以前是同一个页面中。多次连接,多次释放,后来就是用一次连接,多次使用,一次释放
改了之后就出现这种问题。

你是说改了之后,一次连接,多次使用,是在一个页面还是在多个页面之间?
你在什么地方释放的?给的信息不够
drugon 2005-02-23
  • 打赏
  • 举报
回复
你也要注意你是在哪里释放的,这样释放后程序应该是全部退出的。要开始也是从头开始。
drugon 2005-02-23
  • 打赏
  • 举报
回复
一次连接,多次使用,一次释放就出这种问题了!


这样可能会出现释放以后又被使用了,所以释放最好在Application退出的时候释放,不然就会出现上面的问题。
coffeemilk 2005-02-23
  • 打赏
  • 举报
回复
to ch_jp(ch_jp) :
是使用连接沲!
以前是没错的,多次连接,多次释放。
现在改为,一次连接,多次使用,一次释放就出这种问题了!
DanielYWoo 2005-02-23
  • 打赏
  • 举报
回复
把你修改后的代码贴出来看看,应该是个很简单的问题
coffeemilk 2005-02-23
  • 打赏
  • 举报
回复
这问题,真是烦啊。。
如果连续点一个链接页面,立马点另外一个链接就出错了!
一个一个的点,就不会出错!
这代码错在哪儿呢?
coffeemilk 2005-02-23
  • 打赏
  • 举报
回复
to freedy_hu(freedy)
信誉低不是我的错,我问的问题,都没人回答出来,或者给点正确提示
你以为我不想结贴啊。我还有几千分呢。留着有什么用啊!
在这里非常感谢大家,就这个问题,我已经发了两个贴问人了。都没搞出来!
不过,无论如何,这个贴不管能不能答出来,我都会结贴的

不可能是网络问题,因为是在本行上测试!
freedy_hu 2005-02-23
  • 打赏
  • 举报
回复
不是吧,你的信誉才84?

出现这个问题之一:网络问题。
之二:人为。

...
coffeemilk 2005-02-23
  • 打赏
  • 举报
回复
to DanielYWoo(绿色毒汁) :改为new bean
还是很郁闷,异常信息如故啊!
不过,好像抛出的次数少一些。 我感觉出现这种情况。
可能还是我的代码有问题。
coffeemilk 2005-02-23
  • 打赏
  • 举报
回复
to DanielYWoo(绿色毒汁) :
好的,我试试
DanielYWoo 2005-02-23
  • 打赏
  • 举报
回复
我刚才就怀疑是静态全局变量造成的,看起来就是静态造成的

你的private static Connection connection=null; 在整个web 应用程序里就一个,大家都访问,不出错才怪

把你的bean里的static方法和属性全去掉,用的时候,在一个页面里new bean,然后用完,在最后close
应该就可以了

coffeemilk 2005-02-23
  • 打赏
  • 举报
回复
//定义全局变量如下

private static DataSource ds = null ;
private static String dbJndiName = "TestConn" ;//连接沲
private static Connection connection=null;


getReslt()//这方法就是查询结果,然后保存到一个数组里返回回来,在jsp页面多次调用这个方法
{
statement = getConnection().createStatement();
}

然后在getConnection()//这个方法就是判断连接取连接
{
if(connection == null )
{
if (ds == null) {
try {
Context ctx = new InitialContext();
ds = (DataSource) ctx.lookup(dbJndiName);
}
catch (javax.naming.NamingException nameEx) {
System.err.println("----JNDI DataSource '" + dbJndiName +
"' is unaviable");
}
}
try {
connection = ds.getConnection();
System.err.println("----Get a connection---");
}
catch (java.sql.SQLException sqlEx) {
System.err.println("----Get a connection is failed");
sqlEx.printStackTrace();
}

}

你看看,会是哪里有点问题??


加载更多回复(10)

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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