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 2001 Posts: 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 2001 Posts: 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 2001 Posts: 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 2001 Posts: 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 2001 Posts: 3264 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 2001 Posts: 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 2002 Posts: 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 2001 Posts: 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 2002 Posts: 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 2001 Posts: 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 2001 Posts: 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 2002 Posts: 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 2001 Posts: 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 2006 Posts: 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 2002 Posts: 4055 Location: Hyderabad, India
|
What mode are you running in? CLient or bindings?
Is the QMGR running
Is the listener running |
|
Back to top |
|
 |
|