Author |
Message
|
LiamDuffield |
Posted: Wed Mar 18, 2015 1:15 am Post subject: HTTP Reply node output converting to CCSID 819? |
|
|
Newbie
Joined: 14 Mar 2014 Posts: 7
|
Hi Everyone,
First time post here, but long time reader.
I've got a strange issue currently (Did a search but I couldn't find anything really relevant).
Integration piece is fairly simple, take a JSON input via HTTP, map it to a SOAP request and map back to JSON and reply via HTTP.
Everything is working well, up until we start dealing with "Special" characters, e.g. accents.
The HTTP reply sends the data back to the sending application (data renders correctly and, at least, seems valid).
The error occurs if anything is wired up to the HTTP Reply out terminal.
Doesn't matter if it's a trace, compute, java, MQ, SAP etc.
The error it spits out is:
BIP2136E - Character cannot be converted from Unicode to codepage ''819'' (From user trace).
This then causes a secondary error, as our generic error handling tries to return a nice error message to the sending application, but fails as the HTTP request ID has already been used (as the Reply as already successfully been sent).
I've gone through the flows and traced the CCSID and it shows as the standard CCSID 1208 Encoding 546 all the way through (I've even tried manually setting the CCSID/Encoding before the HTTP reply).
Little bit stuck on this one, any thoughts/comments/points in the right direction are greatly appreciated.
Broker version/toolkit 8.0.0.1 (Looking to go to fixpack 8.0.0.4(Not looked at .5 yet) as soon as I can get some projects out of Dev). |
|
Back to top |
|
 |
kimbert |
Posted: Wed Mar 18, 2015 2:48 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Two recommendations
- get to the latest fix pack of v8 at the earliest opportunity
- take a debug-level user trace ( not a service trace ). Find the error that you quoted in the user trace, then search backwards to find the component that is using CCSID 819.
Post again when you have the answer. _________________ Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too. |
|
Back to top |
|
 |
LiamDuffield |
Posted: Wed Mar 18, 2015 6:53 am Post subject: |
|
|
Newbie
Joined: 14 Mar 2014 Posts: 7
|
kimbert wrote: |
Two recommendations
- get to the latest fix pack of v8 at the earliest opportunity
- take a debug-level user trace ( not a service trace ). Find the error that you quoted in the user trace, then search backwards to find the component that is using CCSID 819.
Post again when you have the answer. |
Can I blame lack of caffeine for not doing the debug trace?
Just ran through it. It seems the HTTP Input node is giving a CCSID of 819, although at the very start is does default to 1208?
Going to take a step back for the moment and come at it fresh.
I'm hoping within the next month to get up to the latest fix pack, need it just for some memory improvements. |
|
Back to top |
|
 |
Jenum |
Posted: Tue Jul 07, 2015 2:09 am Post subject: |
|
|
Novice
Joined: 13 Nov 2012 Posts: 24
|
Hi all!
I use Integration Bus 9.0.0.3 and i have same problem, but it can be played easier:
MQOutput locating after compute node, in compute node code:
Code: |
CREATE COMPUTE MODULE Tst_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
SET OutputRoot.Properties.Encoding = 546;
SET OutputRoot.Properties.CodedCharSetId = 1208;
SET OutputRoot.HTTPRequestHeader.Authorization = 'Bearer ' || 'ABCZ';
SET OutputRoot.HTTPRequestHeader."Content-Type" = 'application/json';
CREATE LASTCHILD OF OutputRoot DOMAIN 'JSON';
SET OutputRoot.JSON.Data.a = 'text';
RETURN TRUE;
END;
END MODULE; |
If at OutputRoot.JSON.Data.a put ASCII-text, it is OK, but on not ASCII-text, it throw exception BIP 2136: Unconvertable character (ccsid = 819).
If delete HTTPRequestHeader, it is OK too. |
|
Back to top |
|
 |
smdavies99 |
Posted: Tue Jul 07, 2015 2:36 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
Out of interest what is the CCSID of the underlying queue manager?
i.e. the QMGR that broker uses. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
Jenum |
Posted: Tue Jul 07, 2015 2:39 am Post subject: |
|
|
Novice
Joined: 13 Nov 2012 Posts: 24
|
Certainly not 819
Default CCSI on my QM is 866. |
|
Back to top |
|
 |
Jenum |
Posted: Tue Jul 07, 2015 2:44 am Post subject: |
|
|
Novice
Joined: 13 Nov 2012 Posts: 24
|
And another one strange thing:
if connect HTTPRequest instead of MQOutput, HTTP-request sending correct, regardless ASCII or not-ASCII characters. |
|
Back to top |
|
 |
kimbert |
Posted: Tue Jul 07, 2015 11:36 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Have you tried taking a debug-level user trace, as I suggested in my reply to LiamDuffield? Without some kind of trace you are shooting in the dark, I think. _________________ Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too. |
|
Back to top |
|
 |
|