首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >连接到数据库时挂起的jvm

连接到数据库时挂起的jvm
EN

Stack Overflow用户
提问于 2014-11-04 08:43:30
回答 1查看 1.6K关注 0票数 0

嗨,在websphere application jvm中,jvm在两个月内挂起两次,使整个应用程序崩溃,所以需要知道是由于数据库连接缓慢还是驱动程序issue.The日志片段是。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    There is/are 1 thread(s) in total in the server that may be hung.
   at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:155)
    at oracle.net.ns.Packet.receive(Packet.java:283)
    at oracle.net.ns.DataPacket.receive(DataPacket.java:103)
    at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:230)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:175)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:100)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:85)
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)
    at oracle.jdbc.driver.T4CSocketInputStreamW.rapper.read(T4CSocketInputStreamWrapper.java:79)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1122)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
    at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1084)
    at  oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:359)
    at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:263)
    at org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:169)
    at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:619)
    at com.common.database.ResultSetHandler.invoke(ResultSetHandler.java:44)
    ** at $Proxy1.next(Unknown Source)**
    at com.common.database.CachedRowSetImpl.populate(CachedRowSetImpl.java:597)
    at com.common.database.PreparedStatementHandler.invoke(PreparedStatementHandler.java:47)
    **at $Proxy0.executeQuery(Unknown Source)**
EN

回答 1

Stack Overflow用户

发布于 2014-11-06 04:04:36

当您在调用java.net.SocketInputStream.socketRead0()方法时看到挂起时,可能是由于以下几个原因造成的。

  1. 与远程资源(以WebSphere数据库为例)之间的网络问题
  2. 应用程序只是简单地读取大量数据。
  3. Oracle数据库没有响应,或者遇到性能问题,导致响应缓慢。

您可以在下面的IBM链接中找到更多信息:

http://www-01.ibm.com/support/docview.wss?uid=swg21610001

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26740470

复制
相关文章
Mysql数据库死锁挂起的处理方法
MySQL在进行一些alter table等DDL操作时,如果该表上有未提交的事务则会出现 Waiting for table metadata lock,
码客说
2019/10/21
2.9K0
接到新需求时,从何开始设计?
即便我们能够极尽所能把代码写整洁,规避各种坏味道,但我们小心翼翼维护的代码,还是可能因为新的需求被破坏。
JavaEdge
2023/01/11
3480
接到新需求时,从何开始设计?
配置Oracle Gateway 12连接到SQL server 2014
最近的工作中需要基于Oracle连接到SQLserver2014,我们可以通过配置Gateway的方式来实现这个功能。这个Gateway的实质是透过dblink来实现的。即把SQLserver模拟成一个远端的Oracle实例,这个实例由Gateway来负责进行接收,转发等等。本文简要描述其配置过程。
Leshami
2018/08/13
2.9K0
配置Oracle Gateway 12连接到SQL server 2014
连接到PostgreSQL数据库
PG默认只接受本地的访问,这个规则是由参数listen_addresses控制的
姚远OracleACE
2023/09/06
3970
连接到PostgreSQL数据库
进程的挂起状态详细分析方法_线程挂起
交换的需要 前面图中三个基本状态(就绪态、运行态和阻塞态)提供了一种为进程行为建立模型的系统方法,并指导操作系统的实现。
全栈程序员站长
2022/11/17
1.9K0
进程的挂起状态详细分析方法_线程挂起
【JVM故事】了解JVM的结构,好在面试时吹牛
jvm包括两种数据类型,基本类型和引用类型。 基本类型包括,数值类型,boolean类型,和returnAddress类型。 数值类型包括,整型,浮点型,和char类型。 boolean类型同样只有true和false。 returnAddress类型是一个指针,指向jvm指令的操作码,在Java中没有与之对应的类型。 boolean类型的操作会被转化为int类型的操作进行,boolean数组会当成byte数组去操作。1表示true,0表示false。 引用类型包括三种,类类型,数组类型,和接口类型。 它们的值是动态创建的类实例,数组,或实现接口的类实例。 数组有component类型和element类型,component类型就是数组去掉最外层维度后剩下的类型,可能还是一个数组类型(对于多维数组)。 element类型就是数组里面存储的最小数据的类型,它必须是一个基本类型,类类型,或接口类型。 对于一维数组的话,component类型和element类型是相同的。 引用类型还有一个特殊值,就是null,表示没有引用任何对象。 运行时公有数据区 堆 jvm有一个堆,在所有jvm线程间共享,堆是一个运行时数据区域,所有为类实例和数组分配的内存都来自于它。 堆在jvm启动时创建,堆中对象不用显式释放,gc会帮我们释放并回收内存。 方法区 jvm有一个方法区,在所有jvm线程间共享,它存储每一个类的结构。 像运行时常量池,字段和方法数据,方法和构造函数的代码,还有特殊的方法用于类和实例的初始化,以及接口的初始化。 方法区在jvm启动时创建,虽然方法区在逻辑上是堆的一部分。 但简单实现时可以选择不进行gc和压缩,本规范没有强制要求方法区的位置,也没有要求管理已编译代码的策略。 运行时常量池 运行时常量池就是类或接口的字节码文件里的常量池的运行时表示形式,它包含几种常量。 如在编译时就已经知道的数字字面量值,和必须在运行时解析的方法和字段的引用,运行时常量池的功能类似于传统语言的符号表,不过它包含的数据会更加宽泛。 运行时常量池分配在jvm的方法区,类或接口的运行时常量池在类或接口被jvm创建时才会构建。 运行时私有数据区 pc寄存器 jvm支持一次运行多个线程,每个线程都有自己的pc寄存器,任何时候一个线程只能运行一个方法的代码。 如果方法不是native的,pc寄存器包含当前正在被执行的jvm指令地址,如果方法是native的,pc寄存器的值是未定义的。 jvm栈 每一个jvm线程都有一个私有的jvm栈,随着线程的创建而创建,栈中存储的是帧。 jvm栈和传统语言如C的栈相似,保存局部变量和部分计算结果,参与方法的调用和返回。jvm栈主要用于帧的出栈和入栈,除此之外没有其它操作, 帧可能是在堆上分配的,所以jvm栈使用的内存不必是连续的。 native方法栈 native方法不是用Java语言写的,为了支持它需要使用传统栈,如C语言栈。不过jvm不能加载native方法,所以也不需要提供native方法需要的栈。 帧 每次当一个方法被调用时一个新的帧会被创建。当方法调用完成时,与之对应的帧会被销毁,无论是正常完成还是抛异常结束。 所以帧是方法调用的具体体现形式,或称方法调用是以帧的形式进行的。帧用来存储数据和部分计算结果,和执行动态链接,方法返回值,分发异常。 帧分配在创建帧的线程的jvm栈上,每一个帧都有自己的本地变量数组,自己的操作数据栈,和一个对当前方法所在类的运行时常量池的引用。 本地变量数组和操作数栈的大小在编译时就确定了,它们随着和帧关联的方法编译后的代码一起被提供,因此帧这种数据结构的大小只依赖于jvm的实现,这些结构所需的内存可以在方法调用时同时被分配。 在一个线程执行的任何时刻,都只会有一个帧是处于激活的。这个帧被称为当前帧,与之对应的方法被称为当前方法,方法所在的类被称为当前类,此时用到的本地变量数组和操作数栈也都是当前帧的。 一个帧将不在继续是当前帧,如果它的方法调用了另一个方法,或者它的方法结束了。 当一个方法被调用,一个新的帧被创建,当执行控制由原来的方法传递到新的方法时,这个新的帧变为当前帧。 当方法返回时,当前帧把方法执行的结果传回到上一帧,当上一帧被激活的同时当前帧会被丢弃。 本地变量数组 每一帧都包含一个变量数组,就是都熟知的本地变量存储的地方。这个本地变量数组的长度在编译时确定,随着编译后的方法代码一起提供。 通常一个本地变量(的位置)能够存储一个类型的值,但是long和double类型却需要两个本地变量(的位置)才能存一个值。 本地变量按索引寻址,第一个本地变量的索引是0。long和double需要消耗两个连续的索引,但却是按照较小的这个索引寻址的。不能按照较大的那个索引去读数据,但
Java3y
2019/12/05
4780
【Kotlin 协程】协程的挂起和恢复 ① ( 协程的挂起和恢复概念 | 协程的 suspend 挂起函数 )
协程 在 调用 call 和 返回 return 基础上 , 又新增了两种 状态 :
韩曙亮
2023/03/30
1.7K0
进程的执行和挂起
进程是对逻辑的抽象,我们从操作系统的书籍中对进程有了很多的认识,但是对进程的实现可能不太了解,这篇文章尝试解释一下关于进程实现的大致原理。 进程的实现,其实和我们平时写代码的时候一样,比如我们要表示一个东西,我们会定义一个数据结构。进程也不例外。所以进程的本质就是一个数据结构,他保存了一系列的数据。操作系统以数组或者链表的形式和全部的进程管理起来。进程可以说分为两种 1 系统初始化时第一个进程, 2 除了第一个进程外的其他进程,他们都是由fork或者fork+execute系统调用创建出来的。 我们首先看一下进程的结构体都有什么信息。
theanarkh
2020/04/01
1.7K0
进程的执行和挂起
云数据库如何设置自动重连?连接云数据库时需要注意什么?
云数据库是企业和公司进行管理的好帮手,也为企业和公司提高工作效率提供了客观条件。对于企业来说,要想让云数据库发挥作用,最基本的就是使云数据库和企业服务器保持连接,但是在某些特殊情况下,云数据库和企业服务器会断开连接,这对于企业的管理来说非常不利,容易造成数据丢失,那么云数据库如何设置自动重连?
用户8715145
2021/10/08
1.4K0
进程处于挂起状态表示_挂起进程转换图
而在这些状态之外还存在着一个状态,我们称之为挂起状态,它既可以是我们客户主动使得进程挂起,也可以是操作系统因为某些原因使得进程挂起。总而言之引入挂起状态的原因有以下几种:
全栈程序员站长
2022/11/17
1.4K0
进程处于挂起状态表示_挂起进程转换图
python连接到SQList数据库以及简单操作
背景了解: Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。Python定义了一套操作数据库的API接口,任何数据库要连接到Python, 只需要提供符合Python标准的数据库驱动即可 1:代码
Python研究者
2020/09/28
9170
python连接到SQList数据库以及简单操作
Postgresql之查看当前连接到数据库的client信息
    在使用postgresql时,会报connection too many问题,导致拿不到连接数,在mysql中可以通过show process list来查看连接到数据库的client信息,那
克虏伯
2020/05/14
5.9K0
nohub后台挂起任务
基本命令 nohup command & 例子 nohup python data.py > myout.file 2>&1 & > 重定向 myout.file 日志存放位置 2>&1 将标准出错重定向到标准输出,这里是指标准输出已经重定向到myout.file文件 & 让该命令在后台执行 运行后查看进程 jobs -l 终止进程 kill -9 进程ID kill -9 -l 终止所有的进程
努力在北京混出人样
2019/01/28
2K0
关于WDCP,数据库外连的说明
[教程] v3版本,如何创建可远程连接的mysql用户? 在v2的版本里,mysql的数据库名和用户名是分开的,虽然可以更灵活地创建用户,但大部分用户是用不到的 所以,在v3版本里,就把这两个合并了 那在v3版本里,如何创建可以远程连接的数据库用户呢? 也简单,在创建数据库时 在主机名里填“%”就可以了 默认是 localhost,代表的是本机,只可以本机连接 替换为 % 代表是任意,所以就是本地或远程都可以连接了 不过,不要忘记了,还要在iptables或防火墙里,增加3306端口了访问,否则,也是连接不
用户1191760
2019/02/27
1.4K0
【Kotlin 协程】协程的挂起和恢复 ② ( 协程挂起 和 线程阻塞 对比 )
协程 挂起 操作 : 在协程中使用 delay 函数 , 挂起 20 秒时间 , 然后 20 秒后更新 UI ; delay 函数是 挂起 suspend 函数 ;
韩曙亮
2023/03/30
1.8K0
配置ORACLE 客户端连接到数据库
Oracle 客户端连接到Oracle 数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQL server 运行于Windows平台,故很多配置直接集成到了操作系统之中。所以无需配置客户端即可连接到服务器。Oracle 客户端连接到数据库依赖于Oracle Net。Oracle提供了很多基于客户端或服务器的配置工具,需要搞清的是Oracle Net 中的相关术语。术语明白了,其实配置方法与SQL server 大同小异。
Leshami
2018/08/07
5.5K0
Eclipse连接到My sql数据库的操作总结/配置数据库驱动
别先生
2017/12/29
2.1K0
Eclipse连接到My sql数据库的操作总结/配置数据库驱动
git分支挂起方法 转
软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。
双面人
2019/04/10
1.1K0
asp连SqlServer数据库示例
SERVER=127.0.0.1,1433比SERVER=127.0.0.1兼容性高
Windows技术交流
2023/09/12
3361
连接到Oracle数据库以及其安装方法
经过前几章的介绍,我们已经了解了什么是Oracle数据库以及其安装方法,那么本章节,将和大家说说如何使用SQL * plus和SQL Developer 工具连接到Oracle数据库服务器。
用户8965210
2021/09/02
1.2K0

相似问题

无法使用jdk 1.5连接到JVM

277

使用Netbeans 7.0连接到SQL Server挂起

11

JVM挂起退出

24

JVM定期挂起

17

Fuse ESB神秘挂起- "JVM似乎挂起:超时等待来自JVM的信号。“

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文