错误2102

今天项目上遇到了个问题,上传5M的东西居然报错了,原来可以30M呢,程序没有变动过,这是怎么回事呢?

2102错误的官方解释是:

MQRC_RESOURCE_PROBLEM(2102)

Explanation: There are insufficient system resources to complete the call successfully.

Completion Code: MQCC_FAILED

Programmer Response: Run the application when the machine is less heavily loaded.

  • On z/OS, check the operator console for messages that may provide additional information.
  • On Compaq OpenVMS Alpha, OS/2, OS/400, Compaq NonStop Kernel, and UNIX systems, consult the FFST record to obtain more detail about the problem.

根据这里的说明,应该是MQ发送的时候,系统资源不足了。

又查了一下,更详细的说明

Problem
You are having problems getting a mqrc resource problem return code
2102, insufficient system resources available. You are running 5.3 Base
level code on AIX 5.2 and have two qmgrs running .

If you have 1,000 connections and allow servicing to 25 of these and
try to start the 2nd qmgr with 35 connections, you get mqrc 2102 resource error.
You tried with only 200 connections servicing 25 on the first qmgr and then
could start 35 connections on the second qmgr.

After putting on CSD03 you now get many Stackoverflow errors .
The application shows
Thread-70 :: core_queries.sql[70] priority: 2
Thread-15 :: core_queries.sql[15] priority: 2

java.lang.StackOverflowError
at com.ibm.mqservices.Trace.exit(Trace.java(Compiled Code))
at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:405)
at MyQhelper.getQmgr(MyQhelper.java:29)
at SqlSubmitterMedium.run(SqlSubmitterMedium.java:25)
at java.lang.Thread.run(Thread.java:512)


We had you try to get a java trace of this, but did not see anything in that trace about Stack overflow so we asked you to test using two environment variables.
1. Set the MQS_NO_SYNC_SIGNAL_HANDLING environment variable
to any value for the queue manager and client application.
2. Set the JAVA_COMPILER=NONE environment variable for the
client application.
 
Solution
After discussions with the JTC support group: StackOverfowError is a Java
error condition. It is not an application problem. It should be
addressed by increasing the java -Xss memory option to set the native
stack size.
 
 
 
Historical Number
17622
999

 

  • WebSphere MQ 连接断开。尽管有足够的可用磁盘空间和实内存,但系统仍发出以下错误消息:
    AMQ7463:队列管理器的日志 WAS_timwin7_jmsserver 已满。

    此外,会产生一条类似于以下消息的消息,它与不满足资源条件有关:

    MQJE001:完成码 2,原因 2102

    变通方法:当由于日志已满而拒绝写入日志记录的尝试时,发出 AMQ7463 消息。队列管理器将尝试解决此问题。

    在消息流量高得反常的期间可能遇到这种状况。然而,如果您坚持填入日志,则必须考虑以下下操作:通过更改队列管理器配置文件中的值增加日志文件的数量。然后,您必须停止并重新启动队列管理器。或者,使日志文件自己增大。您必须删除并重新创建队列管理器。

 

找到原因了,这个问题是由于日志造成的

在新建一个队列管理器时,默认的日志是256*4K大小,也就是1M,循环写入

当我们上传一个5M的东西,作为一个事件不会释放占用的资源,也就是说这里的循环写入起不到效果

这也可能是跟队列的定义有关系

如果队列选用持久化的队列就跟日志的关系重大,持久消息日志大小 750字节+消息大小

日志说明的相关链接

http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0301_dunn/dunn.html

http://docs.sun.com/source/819-2219/monitoring.html

WebShpere MQ 运行故障的定位分析和排除

http://blog.donews.com/windshow/archive/2005/12/16/660428.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值