| Author | Message | 
		
		  | pal | 
			  
				|  Posted: Fri Aug 09, 2002 12:28 pm    Post subject: AIX: 2059 with Message catalog not found exception ... |   |  | 
		
		  | Apprentice
 
 
 Joined: 14 Aug 2001Posts: 35
 
 
 | 
			  
				| On using a bindings connection to a QM, I get the 2059 reason code with the following exception: 
 com.ibm.mq.MQException:  Message catalog not found
 at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:171)
 at com.ibm.mq.MQBindingsManagedConnectionFactoryJ11._createManagedConnection(MQBindingsManagedConnectionFactoryJ11.java:139)
 at com.ibm.mq.MQBindingsManagedConnectionFactoryJ11.createManagedConnection(MQBindingsManagedConnectionFactoryJ11.java:157)
 at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:80)
 at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:150)
 at com.ibm.mq.MQQueueManager.obtainBaseMQQueueManager(MQQueueManager.java:666)
 at com.ibm.mq.MQQueueManager.construct(MQQueueManager.java:615)
 at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:392)
 at mq_connector.main(mq_connector.java:23)
 
 The same program works fine on HP-UX.
 
 I even tried the IPCBaseAddress with all IBM recommended values in the queue manager stanza and restarted the queue manager everytime ... no success.
 
 Any ideas?
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | pal | 
			  
				|  Posted: Fri Aug 09, 2002 12:42 pm    Post subject: |   |  | 
		
		  | Apprentice
 
 
 Joined: 14 Aug 2001Posts: 35
 
 
 | 
			  
				| I added /usr/mqm/java/lib and /usr/mqm/lib to the classpath and that took care of the message catalog ... I still get the following exception 
 MQJE001: Completion Code 2, Reason 2059
 com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2059
 at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:171)
 at com.ibm.mq.MQBindingsManagedConnectionFactoryJ11._createManagedConnection(MQBindingsManagedConnectionFactoryJ11.java:139)
 at com.ibm.mq.MQBindingsManagedConnectionFactoryJ11.createManagedConnection(MQBindingsManagedConnectionFactoryJ11.java:157)
 at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:80)
 at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:150)
 at com.ibm.mq.MQQueueManager.obtainBaseMQQueueManager(MQQueueManager.java:666)
 at com.ibm.mq.MQQueueManager.construct(MQQueueManager.java:615)
 at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:392)
 at mq_connector.main(mq_connector.java:23)
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | bower5932 | 
			  
				|  Posted: Fri Aug 09, 2002 12:48 pm    Post subject: |   |  | 
		
		  |  Jedi Knight
 
 
 Joined: 27 Aug 2001Posts: 3023
 Location: Dallas, TX, USA
 
 | 
			  
				| Your message catalog not found is caused by not having the /usr/lpp/mqm/java/lib subdirectory in your classpath.  The 2059 is probably caused by the segment 8 problem.  You should have an FDC file in /var/mqm/errors that says something about RetryConnectSubpool(?).  If you do, you are suffering from segment 8.  Personally, I've had the best luck with segment 11.  Also, you need to shutdown/restart your queue manager.  Can you describe your environment a little more - using DB2, running under WebSphere, etc.  These also have an effect. |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | pal | 
			  
				|  Posted: Fri Aug 09, 2002 1:23 pm    Post subject: |   |  | 
		
		  | Apprentice
 
 
 Joined: 14 Aug 2001Posts: 35
 
 
 | 
			  
				| I've tried all the possible values for IPCCBaseAddress- 4, 5, 8, 9, 10, 11, 12 with no luck. And we dont use DB2. 
 Extract of the mqs.ini file
 
 QueueManager:
 Name=xyz
 Prefix=/var/mqm
 IPCCBaseAddress=12
 Directory=xyz
 
 Here is the simple client that is failing-
 
 import com.ibm.mq.MQEnvironment;
 import com.ibm.mq.MQQueueManager;
 import com.ibm.mq.MQQueue;
 import com.ibm.mq.MQC;
 import com.ibm.mq.MQException;
 
 public class mq_connector
 {
 
 public static void main ( String[] args )
 {
 String qmName = args[ 0 ], qName = args[ 1 ];
 
 try
 {
 MQEnvironment.properties.put( MQC.HOST_NAME_PROPERTY, "" );
 MQEnvironment.properties.put( MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES );
 
 MQQueueManager tempQm = new MQQueueManager( qmName );
 
 tempQm.disconnect();
 }
 catch( MQException mq_e )
 {
 mq_e.printStackTrace();
 }
 }
 }
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | RogerLacroix | 
			  
				|  Posted: Fri Aug 09, 2002 8:41 pm    Post subject: |   |  | 
		
		  |  Jedi Knight
 
 
 Joined: 15 May 2001Posts: 3265
 Location: London, ON  Canada
 
 | 
			  
				| Hi, 
 Do you have LD_LIBRARY_PATH set to include your java library?
 
 e.g.
 LD_LIBRARY_PATH=/usr/mqm/java/lib
 
 or where you have the MQ java libraries installed.
 
 later
 Roger...
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | pal | 
			  
				|  Posted: Mon Aug 12, 2002 4:44 am    Post subject: |   |  | 
		
		  | Apprentice
 
 
 Joined: 14 Aug 2001Posts: 35
 
 
 | 
			  
				| Have the LD_LIBRARY_PATH and the SHLIB_PATH set to point to /opt/mqm/lib and /opt/mqm/java/lib. 
 This removed the catalog error as I mentioned earlier but I still get the 2059 exception that it cannot connect to the QM even though the QM is running.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | clindsey | 
			  
				|  Posted: Mon Aug 12, 2002 5:49 am    Post subject: |   |  | 
		
		  | Knight
 
 
 Joined: 12 Jul 2002Posts: 586
 Location: Dallas, Tx
 
 | 
			  
				| This sure sounds like the shared memory conflict. Could you take a look at the /var/mqm/errors and see if you get a *FDC file generated at the time of your error. If yes, please the post the 8 byte Probe Id. 
 If you have more than 1 queue manager, make sure the IPCCBaseAddress is unique across queue managers. You may
 have shared memory that is not cleared and can also cause the conflict. Try stopping all your queue managers. 'dspmq' will tell you when they are all stopped.
 
 Then verify all mqm shared memory is cleared.
 Enter 'ipcs -a | grep mqm'. This should return null. If not use 'ipcrm' to clear remaining ipc resources, e.g
 ipcrm -s <semid> and ipcrm -m <memid>.
 
 Then restart your queue manager.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | pal | 
			  
				|  Posted: Mon Aug 12, 2002 10:42 am    Post subject: |   |  | 
		
		  | Apprentice
 
 
 Joined: 14 Aug 2001Posts: 35
 
 
 | 
			  
				| I stopped all the queue managers and then cleared all the remaining semaphores using the ipcrm command. 
 Then started up the one queue manager that I want and ran the test program with the same exception.
 
 FDC file generated has a Probe ID XY341019.
 
 Any ideas would be great ... else I'll have to get in touch with IBM support I guess.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | clindsey | 
			  
				|  Posted: Mon Aug 12, 2002 12:01 pm    Post subject: |   |  | 
		
		  | Knight
 
 
 Joined: 12 Jul 2002Posts: 586
 Location: Dallas, Tx
 
 | 
			  
				| This probe id IS the segment 8 problem. Here is one more workaround that I know of. The JVM by default, grabs 8 memory segments. You can limit this by setting
 LDR_CNTRL=MAXDATA=0x30000000 to limit it to 3 segments. If this helps, bump it to 0x40000000 and then 5,6, and 7 until if fails and backoff. If this doesn't help, it is time to open a pmr with IBM.
 
 The other workaround is to use client bindings.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | bower5932 | 
			  
				|  Posted: Mon Aug 12, 2002 12:20 pm    Post subject: |   |  | 
		
		  |  Jedi Knight
 
 
 Joined: 27 Aug 2001Posts: 3023
 Location: Dallas, TX, USA
 
 | 
			  
				| One other thing to try is switching to WebSphere MQ 5.3.  The way that memory is handled has been rewritten so that it uses extended shared memory.  I don't know if switching versions is an option for you..... |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | pal | 
			  
				|  Posted: Mon Aug 12, 2002 1:28 pm    Post subject: |   |  | 
		
		  | Apprentice
 
 
 Joined: 14 Aug 2001Posts: 35
 
 
 | 
			  
				| export LDR_CNTRL=MAXDATA=0x30000000 and
 export LDR_CNTRL=MAXDATA=0x40000000
 
 both solved the problem ... larger values dont work though. Is this a good permanent fix or will it fail with large programs that use MQ Series extensively?
 
 Thanks clindsey!!
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | clindsey | 
			  
				|  Posted: Mon Aug 12, 2002 6:23 pm    Post subject: |   |  | 
		
		  | Knight
 
 
 Joined: 12 Jul 2002Posts: 586
 Location: Dallas, Tx
 
 | 
			  
				| As far as I know this is a permanent solution. Just be sure you set it locally where ever you are starting a jvm and not globally. If this variable is set in the environment where you create or start a queue manager it can cause problems. 
 Fortunately, as Mr. Bower pointed out, this shared memory conflict is no
 longer a problem in MQ 5.3.
 
 Charlie
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | pal | 
			  
				|  Posted: Tue Aug 13, 2002 4:27 am    Post subject: |   |  | 
		
		  | Apprentice
 
 
 Joined: 14 Aug 2001Posts: 35
 
 
 | 
			  
				| Thanks Charlie and the rest of ya!   
 Pal
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | panpan | 
			  
				|  Posted: Fri Aug 11, 2006 11:10 pm    Post subject: |   |  | 
		
		  | Newbie
 
 
 Joined: 31 Jul 2006Posts: 2
 
 
 | 
			  
				| hi,buddies, I met the same problem. I compile my test tool as none-tread and threaded binary on AIX5.2 and the none-thread can work well, but the  threaded binary fail and report 2059..and I do the instructions you said but failed again...  my MQ is mq6.0, please help me , very apprecate |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | vennela | 
			  
				|  Posted: Sat Aug 12, 2006 7:46 am    Post subject: |   |  | 
		
		  |  Jedi Knight
 
 
 Joined: 11 Aug 2002Posts: 4055
 Location: Hyderabad, India
 
 | 
			  
				| What mode are you running in? CLient or bindings? Is the QMGR running
 Is the listener running
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  |  |