标签: weblogic

对CLOSE_WAIT状态中的连接进行故障排除

我有一个在Windows上运行在WebLogic 11g上的Java应用程序,经过几天后,它变得没有响应.我注意到的一个可疑症状是,netstat即使服务器处于空闲状态,大量连接(大约3000个)也会显示CLOSE_WAIT状态.由于应用程序服务器正在管理客户端连接,因此我不确定是什么导致了这种情况.我们还进行了许多环回到同一服务器的Web服务调用,但我相信这些连接会正常关闭.还有什么可能导致这种情况,以及如何解决这样的问题?

java sockets netstat tcp weblogic

24
推荐指数
3
解决办法
8万
查看次数

我应该在哪里开始调查SocketTimeoutException:读取超时

我不时地在日志中看到以下堆栈跟踪,HttpClient套接字超时试图text/script从另一个服务器访问内容.我的问题是我应该在Linux上检查在Weblogic上运行的J2EE应用程序的配置设置是什么?我特意寻找以下内容.

  • JVM超时参数
  • HttpClient PARAMS
  • Weblogic超时参数或任何其他配置,如线程数等.
  • J2EE应用程序设置,如servlet配置等.
  • 操作系统资源,如线程,文件处理程序和cpu
  • 可能影响套接字连接的任何其他配置设置
  • 线程转储会有帮助吗?

这是我的代码

HTTPResponse httpClientResponse;
//do some stuff
httpClientResponse.getStatusCode(); // this is where it fails
Run Code Online (Sandbox Code Playgroud)

这就是堆栈跟踪

java.net.SocketTimeoutException: Read timed out
at jrockit.net.SocketNativeIO.readBytesPinned(Native Method)
at jrockit.net.SocketNativeIO.socketRead(SocketNativeIO.java:32)
at java.net.SocketInputStream.socketRead0(SocketInputStream.java)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at HTTPClient.BufferedInputStream.fillBuff(BufferedInputStream.java:206)
at HTTPClient.BufferedInputStream.read(BufferedInputStream.java:126)
at HTTPClient.StreamDemultiplexor.read(StreamDemultiplexor.java:356)
at HTTPClient.RespInputStream.read(RespInputStream.java:147)
at HTTPClient.RespInputStream.read(RespInputStream.java:108)
at HTTPClient.Response.readResponseHeaders(Response.java:1123)
at HTTPClient.Response.getHeaders(Response.java:846)
at HTTPClient.Response.getStatusCode(Response.java:331)
at HTTPClient.RetryModule.responsePhase1Handler(RetryModule.java:92)
at HTTPClient.HTTPResponse.handleResponseImpl(HTTPResponse.java:872)
at HTTPClient.HTTPResponse.access$000(HTTPResponse.java:62)
at HTTPClient.HTTPResponse$2.run(HTTPResponse.java:839)
at HTTPClient.HTTPResponse$2.run(HTTPResponse.java:837)
at
HTTPClient.HttpClientConfiguration.doAction(HttpClientConfiguration.java:666)
at HTTPClient.HTTPResponse.handleResponse(HTTPResponse.java:837)
at HTTPClient.HTTPResponse.getStatusCode(HTTPResponse.java:242) 
Run Code Online (Sandbox Code Playgroud)

谢谢

我将使用下面的调查结果更新我的问题.

  1. 没有明确的超时设置,HttpClient这意味着服务器的http会话超时可能正在生效.
  2. SO_TIMEOUTfor HttpClient …

java apache weblogic httpclient java-ee

24
推荐指数
1
解决办法
7万
查看次数

加快Weblogic Server启动时间

在我的工作中,我们使用Weblogic Server来托管企业门户.哪个好.

但是,我最近有机会使用Tomcat进行一些项目,我对速度上令人难以置信的差异感到震惊.Tomcat启动需要3-5秒,部署中型项目需要10-15秒.Wewblogic 启动需要3-5 分钟,部署最多需要10 分钟.这会杀死任何迭代开发.

我是不是必须让自己放慢速度和臃肿,或者我能做些什么来加快速度?有人有这方面的经验吗?

performance tomcat weblogic application-server

22
推荐指数
2
解决办法
2万
查看次数

WebLogic阻止了线程保护

默认情况下,WebLogic在15分钟(600秒)后杀死卡住的线程,这由StuckThreadMaxTime参数控制.但是,我找不到关于如何定义"卡住"的更多细节.特别:

  • 15分钟倒计时开始的重点是什么.请求处理开始?最后wait()的方法?别的什么?
  • 这仅适用于请求处理线程还是所有线程?也就是说,请求处理线程可以通过为长期任务生成工作线程来"逃避"这种保护吗?特别是,它可以在没有15分钟倒计时的情况下将响应写入这样的工作人员吗?

我的用例是通过权限系统下载大文件.由于用户需要进行身份验证并具有查看文件的权限,因此我无法(或至少不知道如何)将其留给简单的HTTP服务器,例如Apache.而且由于文件可能很大,下载(至少在理论上)可能需要超过15分钟.

weblogic java-ee weblogic-10.x

21
推荐指数
2
解决办法
3万
查看次数

为什么在Weblogic Clusters中使用Unicast与Multicast

从文档中不清楚为什么要在WebLogic群集中使用Unicast而不是Multicast.任何人都有使用任何一个和转移到Unicast的好处的经验?

weblogic

20
推荐指数
4
解决办法
3万
查看次数

JMS性能

从性能角度理解JMS我遇到了一些麻烦.我们在应用程序中有这么简单的代码:

QueueConnection connection = null;
QueueSession session = null;
QueueSender sender = null;
TextMessage msg = null;

try {
  // The JNDIHelper uses InitialContext to look up things
  QueueConnectionFactory qcf = JNDIHelper.lookupFactory();
  Queue destQueue = JNDIHelper.lookupQueue();

  // These objects are created for every message, which is quite slow
  connection = qcf.createQueueConnection();
  session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
  sender = session.createSender(destQueue);

  // This is the actual message
  msg = session.createTextMessage(xmlMsg);
  sender.setTimeToLive(0);
  sender.send(msg);
} 
finally {

  // Close all objects again
  JMSUtilities.safeClose(sender);
  JMSUtilities.safeClose(session);
  JMSUtilities.safeClose(connection); …
Run Code Online (Sandbox Code Playgroud)

java weblogic jms message-queue

20
推荐指数
2
解决办法
8305
查看次数

java.lang.InternalError:name太长而无法表示

我收到此错误:

java.lang.InternalError: name is too long to represent
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:338)
        at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:291)
        at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:259)
Run Code Online (Sandbox Code Playgroud)

这似乎与某些调试功能有关(实际上删除-Xdebug命令行选项,错误消失).我也在ASF Bugzilla中找到了一些信息.有办法解决这个问题吗?

我能想到的可能的解决方案是更改JVM(使用JRockit应该没有这个问题),但我真的不知道这是否可以解决问题以及是否可以破坏其他问题.

java weblogic java-5

20
推荐指数
1
解决办法
9443
查看次数

找到类字节,但在部署EAR时,defineClass()因错误而失败

我正在尝试使用EJB 1.1的东西部署和旧的代码库到Weblogic 10.3.6并继续得到这个奇怪的错误Class bytes found but defineClass()failed for.

这些课程在那里,并找到导致这种情况的原因?

java ejb weblogic java-ee

19
推荐指数
1
解决办法
1万
查看次数

获取JVM中所有类加载器的列表

是否可以获取JVM中的所有类加载器的列表,或者至少所有与Java EE Server中的Web应用程序相关联的类加载器(在我的例子中为WebLogic).

java weblogic

18
推荐指数
1
解决办法
9263
查看次数

Weblogic数据源从JNDI树中消失

我们使用的是weblogic版本12C.重现问题的步骤: -

  1. 创建数据源.
  2. 将应用程序部署到weblogic.
  3. 应用程序正常.
  4. 使用新的耳朵更新已部署的耳朵.
  5. 应用程序无法连接数据源.
  6. 数据源在JNDI树中不可用.

我们需要每次都创建一个新的数据源,或者再次保存数据源设置.

如果您知道某种解决方案,有人可以检查并告诉我吗?

java spring weblogic datasource spring-java-config

18
推荐指数
1
解决办法
4133
查看次数