|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
JMS HP-UX MQJMS1046 - CCSID 1051 is not supported |
« View previous topic :: View next topic » |
Author |
Message
|
brendan |
Posted: Sun Feb 24, 2002 4:56 pm Post subject: |
|
|
Newbie
Joined: 23 Feb 2002 Posts: 5
|
Hi,
I'm having trouble with a JMS client connecting using Client mode to a server housed on an HP-UX box. From the documentation I have found that Java does not support code page 1051, which is the default character set for HP-UX. I have several questions:
1. I can't find a way to ask the queue manager to do a conversion to a suitable format using JMS (like using the convert option on an MQGET using MQ Classes for Java). Is there any way to do this?
2. Is there any thing I can do apart from changing the code page on the HP-UX boxes? (our middleware admin refuses to do this). Can the sending app set the character set to something other than 1051 to get around the problem, or will it be converted to 1051 by the QManager anyway?
3. Would it make any difference if we had our own QManager on our own server instead of using Client mode - are there any setup changes we could then do to get around the problem?
Thanks in advance,
Brendan.
|
|
Back to top |
|
 |
kolban |
Posted: Sun Feb 24, 2002 5:25 pm Post subject: |
|
|
 Grand Master
Joined: 22 May 2001 Posts: 1072 Location: Fort Worth, TX, USA
|
Can you run through the configuration in detail? Where is the client? What language is it written in? Which API are you using (if Java then JMS or MQ Java)? What is the format of the MQMD message header? What is the CCSID of the client and that of the server? Where did you find that the named CCSID was not supported? |
|
Back to top |
|
 |
brendan |
Posted: Sun Feb 24, 2002 5:41 pm Post subject: |
|
|
Newbie
Joined: 23 Feb 2002 Posts: 5
|
Hi,
The client is written using JMS. It runs on an HP-UX box. It uses a Client connection to a Queue running on another HP-UX box. The sending application runs on Pick (yep, it's still around), but I'm not sure where their actual MQ interface code is running - whether it's on the Pick box or another machine. I am also unsure whether they are connecting using Client or Server Binding. The HP-UX servers are using CCSID 1051, which is the HP-UX default. This is not supported by Java, as found in various IBM documents, including the "Using Java" manual (the latest I have is csqzaw07.pdf - June 2001):
"Note: Java does not support code page 1051 (which is the default for
HP-UX). To run the Publish/Subscribe broker on HP-UX, you may
need to change the CCSID of the broker’s queue manager to an
alternative value, for example 819."
Using Java, page 8.
We use the default CCSID for JMS, which I believe is 819 - iso-8859-1 / latin1 / ibm819.
Am unsure of the MQMD format, as we are using JMS (but are setting the target client to JMSC.MQJMS_CLIENT_NONJMS_MQ when sending). Below is part of the error message we get when trying to get a message sent from HP-UX.
JMSException thrown trying to retrieve properties of message:
JMS Message class: jms_text
JMSType: null
JMSDeliveryMode: 2
JMSExpiration: 0
JMSPriority: 0
JMSMessageID: ID:414d51204d51444e43543436202020203c69bfe20101dfb2
JMSTimestamp: 1014172813880
JMSCorrelationID:null
JMSDestination: null
JMSReplyTo: null
JMSRedelivered: false
JMSXAppID:uvsh.new
JMS_IBM_Format:MQSTR
JMS_IBM_PutApplType:6
JMS_IBM_MsgType:8
JMSXUserID:tp.ispek
JMSXDeliveryCount:1
<Exception occurred reading message body: javax.jms.MessageFormatException: MQJMS1046: The character set 1051 is not supported><null>
ERROR - javax.jms.MessageFormatException: MQJMS1046: The character set 1051 is not supported
javax.jms.MessageFormatException: MQJMS1046: The character set 1051 is not supported
at com.ibm.jms.JMSMessage.newMessageFormatException(JMSMessage.java:2485)
at com.ibm.jms.JMSTextMessage.getText(JMSTextMessage.java:239)
|
|
Back to top |
|
 |
Alasdair |
Posted: Tue Feb 26, 2002 3:50 am Post subject: |
|
|
Newbie
Joined: 25 Feb 2002 Posts: 1
|
I have seen the problem. As mentioned the problem is that the JVM on HP-UX does not support the default charactor set used by the Queue Manager. In order to get around this you need to do the following.
Assuming you are using the default Queue Manager
runmqsc
alter qmgr CCSID(850)
end
You can try other values, such as 819.
Hope this helps. |
|
Back to top |
|
 |
brendan |
Posted: Tue Feb 26, 2002 5:23 pm Post subject: |
|
|
Newbie
Joined: 23 Feb 2002 Posts: 5
|
Thanks, but what I'm looking for is a way to get around the problem *without* changing the CCSID of the QueueManager. Our middleware supplier (a recently outsourced division of the company) is being entirely unhelpful and refusing to contemplate this change. So if we can't find a different solution, we look like having to re-write using the base Java classes so that we can set the queue manager convert option on a get message. We'd rather not do that, of course.
One thing I was wondering was whether getting the sending app to set the CCSID to something we would understand would work, or whether the intervening Queue Managers would convert to their native CCSID. Anyone know? |
|
Back to top |
|
 |
kleia1 |
Posted: Wed Jun 05, 2002 8:28 am Post subject: |
|
|
Newbie
Joined: 12 Dec 2001 Posts: 1 Location: Regina, Saskatchewan, Canada
|
I fixed a problem like this recently. It required me to set and export the LANG environment variable to en_US.iso88591 for the executing client environment (that is the HP box running the client application). Instead of setting the CCSID to 1051 in the MQMD, it sets it to 819. This is not a change to the application, just a change to the environment the app is running in. Hope this helps - good luck. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|