MQ: An MQException occurred: Completion Code 2, Reason 2009

Error Log:

 

MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
com.ibm.mq.MQException: MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
    at com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:242)
    at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:276)
    at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:296)
    at com.ibm.mq.StoredManagedConnection.(StoredManagedConnection.java:80)
   .......................
    at com.ibm.rfidic.test.utils.mq.RFIDICMQDataSource.clearQueue(RFIDICMQDataSource.java:209)
    at com.ibm.rfidic.test.mdm.fvt.testcases.FVT_PEDIGREE_EVENTS_SRV_0055.testFVT_PEDIGREE_EVENTS_SRV_0055(FVT_PEDIGREE_EVENTS_SRV_0055.java:81)
    ........................
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: com.ibm.mqservices.MQInternalException: MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
    at com.ibm.mq.MQInternalCommunications.establishChannel(MQInternalCommunications.java:1544)
    at com.ibm.mq.MQInternalCommunications.(MQInternalCommunications.java:523)
    at com.ibm.mq.MQSESSIONClient.MQCONN(MQSESSIONClient.java:1316)
    at com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:218)
    ... 36 more
MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
com.ibm.mq.MQException: MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
    at com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:242)
    ..............
    at com.ibm.rfidic.test.utils.mq.RFIDICMQDataSource.connect(RFIDICMQDataSource.java:173)
    at com.ibm.rfidic.test.utils.mq.RFIDICMQDataSource.write(RFIDICMQDataSource.java:103)
    at com.ibm.rfidic.test.utils.mq.RFIDICMQDataSource.write(RFIDICMQDataSource.java:149)
    at com.ibm.rfidic.test.mdm.fvt.testcases.FVT_PEDIGREE_EVENTS_SRV_0055.testFVT_PEDIGREE_EVENTS_SRV_0055(FVT_PEDIGREE_EVENTS_SRV_0055.java:82)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:615)
    at junit.framework.TestCase.runTest(TestCase.java:154)
   .......................
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: com.ibm.mqservices.MQInternalException: MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009
    at com.ibm.mq.MQInternalCommunications.establishChannel(MQInternalCommunications.java:1544)
    at com.ibm.mq.MQInternalCommunications.(MQInternalCommunications.java:523)
    at com.ibm.mq.MQSESSIONClient.MQCONN(MQSESSIONClient.java:1316)
    at com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:218)
    ... 36 more

restoreMasterDatafor_partnerPrivate:
     [echo] basedir = /home/tsadmin/hxlin/vobs/RFIDICTest/fvt/cdlsrc/com.ibm.rfidic.test.config9.1
     [echo] HOME=/home/tsadmin
     [echo] Using Oracle

 

 

It seems that the problem can be solved by practice 2.  What a good news!

 

 

Official Detail Document:

 

http://www-01.ibm.com/support/docview.wss?uid=swg21226703
http://eai.ittoolbox.com/groups/technical-functional/mqseries-l/mqje001-an-mqexception-occurred-completion-code-2-reason-2009-689165

 

 

 

Practices:

 

2. http://hi.baidu.com/faq0/blog/item/c707cc23006e5c569922ed26.html

linked exception: com.ibm.mq.MQException: MQJE001: An MQException occurred: Completion Code 2, Reason 2009

MQJE016: MQ queue manager closed channel immediately during connect

Closure reason = 2009


/var/mqm/qmgrs/TS!QUEUE!MANAGER/qm.ini
qm.ini

   Log:

   LogPrimaryFiles=3

   LogSecondaryFiles=2

   LogFilePages=1024

   LogType=CIRCULAR

   LogBufferPages=17

   LogPath=/var/mqm/log/WNMS3_QM/

   LogWriteIntegrity=TripleWrite

Service:

   Name=AuthorizationService

   EntryPoints=9

ServiceComponent:

   Service=AuthorizationService

   Name=MQSeries.UNIX.auth.service

   Module=/opt/mqm/lib/amqzfu

   ComponentDataSize=0

 

#add below parameters


CHANNELS:

   MaxChannels = 600

   MaxActiveChannels = 600

TuningParameters:

   IPCCECSetSize=4000000

   IPCCExtensionSize=128000

TCP:

   KeepAlive=Yes

   ListenerBacklog=200


It's better to restart MQ before you expect.

 

 

 

1.  http://www.itpub.net/695157.html

 MQ

unix  qm.ini
http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp
System Admin/Configuring WebSphere MQ/Configuring WebSphere MQ /Changing queue manager configuration information /Channels


CHANNELS  qm.ini
MaxChannels=100|number
 100
MaxActiveChannels=MaxChannels_value
 MaxChannels



1. stop QueueManager
2. tune or add the channel paramaters within channel section of qm.ini
  (   MaxChannels MaxActiveChannels 500)
3. start QueueManager,
4. ok,

qm.ini :
http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp
System Admin/Configuring WebSphere MQ/Configuring WebSphere MQ /Changing configuration information on UNIX systems/ Queue manager configuration files, qm.ini )


Channels:
   MaxChannels=500
   MaxActiveChannels=500
   MQIBindType=STANDARD

 

 

3.

 

Mismatching CSD on various platforms should not cause any problems.

Since you got a 2009 error, that means you've gotten farther than
if you got 2058 and 2059, or 2035 authorization problems. You have
successfully connected and then lost the connection. It is false
to say that you did not connect even if the error code occurred
during the MQConn.

You should be looking in the logs on both sides. Host and server.
This may not or may not yield any insite.

2009 is not uncommon for client connections. Innevitably a network
goes down, a line, modem, router etc is flaky or broken, if a
connection to a queue manager has been made then the line drops
"for a client you would see 2009". If the line is totally gone, you
would not see 2009 on a subsequent attempt. Your program should
be changed to try again when a 2009 occurs, in a loop perhaps 5
times.

If some host process resets or closes and opens the client
connection all connected clients would get a 2009. There are many
cases of this issue going back over 5 years. One Guy was getting it after 98 connections.

Change your code and be happy.

你可能感兴趣的:(Technical,Notes,(技术日志))