Change of Encoding in Sender JMS Adapter

Hi,
   My scenario is like that:-
FTP->MQ Queue->JMS Queue->XI->R/3
From JMS Queue IDOC xml is coming in UTF-8 encoding to XI. In that IDOC xml certain special characters are there, say, some Latin or European character. But for the scenario XI->R/3, data are not getting posted to R/3. In XI side, it is not giving any error, but it is giving a flag (in QRFC Monitor) which is “ Error between two Character Sets”.
I am unable to rectify this error. One solution I have guessed that is, it will be possible to resolve this issue if I can change the encoding in XI to ISO-8859-1. But I don’t know how to change the encoding in Sender JMS Adapter in XI. Could you please help me to resolve this issue?
BR
Soumya B

Hi,
Check following:
1. In SXMB_MONI, what is the XML structure generated for inbound and outbound message. Check the encoding used in both. This could be checked by looking at the first line of XML generated. For UTF encoding, usually, the first line should look as follows:
<?xml version="1.0" encoding="UTF-8" ?>
2. If the encoding for both is different, try to figure out which encoding is used for Message Type in XI. For matching the encodings, you could change the XSD used for creating message type in XI. This way, the character encoding could be changed. And this solution should suffice if the problem has occured between XI to R3 scenario.
Also, for learning more about character encodings, you could visit following link:
http://www.cs.tut.fi/~jkorpela/chars.html
Hope it helps.
Bhavish.
Reward points if comments found useful:-)

Similar Messages

  • Problem with special character like u00E5,u00E4 u00F6 in Sender JMS Adapter

    Hi,
    Problem:
    Sender JMS Adapter has transformation error when the file includes western european characters such as å,ä ö. And because of this reason the data is not picked up by adapter.
    The scenrio is JMS --- > XI ---> Proxy.
    If the file does not include the western European characters then it is working fine, but when the file include the western european characters such as å, ä, ö so got the error.
    Our Efforts:
    We have tried ISO8859-1 in JMS Module Tab as shown below.
    1. Transfer.ContentType text/xml;charset=ISO-8859-1
        AND with this also
    2. Transfer.ContentType application/coctet-stream;charset=ISO-8859-1
    None of them working.
    Error In CC:
    In Sender CC monitoring we are getting the below error.
    Error while processing message 'aa157082-b064-4421-0fc3-c286d2732093'; detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Error converting Message: sun.io.MalformedInputException: TransformException: Error converting Message: 'sun.io.MalformedInputException' at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java(Compiled Code)) ...
    Any suggestion in this regard will be a great help.
    Regards,
    Sarvesh

    > I think you have to figure out first, which codepage you really have, not just try. Maybe you ask someone or you check with a hex editor.
    Hi Stefan,
    Finally we solved the problem.
    As you said above to figure the the codepage, we asked to our MQ team for the same and found that they are using ISO-8859-1. In XI we were also trying with multiple conbinations (ISO-8859-1, UTF-8 and many more), but didn't get any success.
    Finally MQ team changed their encoding to UTF-8 and in XI we used ISO-8859-1 and we get the success in picking the data with spl char. Even though in XI the spl char comes in destorted order but at the receiver end they are in proper shape.
    Thanks a lot for your help.
    Regards,
    Sarvesh

  • MessageTransformBean in sender JMS Adapter flat file to xml conversion

    Hi All,
    The scenario is MQ (Flat File )  --->PI -
    >Idoc
    The flat file structure is
    112233
    AABBCC
    The expected XML Structure after using MessageTransformBean in the sender JMS adapter  is
    <Record>
    <Row>
    <f1>11</f1>
    <f2>22</f2>
    <f3>33</f3>
    </Row>
    <Row>
    <f1>AA</f1>
    <f2>BB</f2>
    <f3>CC</f3>
    </Row>
    </Record>
    But I am getting 2 SEPARATE xml messages each with only one Row in it like the following
    1st XML:
    <Record>
    <Row>
    <f1>11</f1>
    <f2>22</f2>
    <f3>33</f3>
    </Row>
    </Record>
    2nd XML:
    <Record>
    <Row>
    <f1>AA</f1>
    <f2>BB</f2>
    <f3>CC</f3>
    </Row>
    </Record>
    I would like to have one xml message with all rows in it.It seems the MessageTransformBean is not recognizing the end of line in the flat file.Do i need to use endSeparator explicitly.
    I followed the "How to use Content Conversion in JMS Adapter " and configured the adapter,still no luck..
    Any Help greatly Appreciated
    Thanks,
    C

    Hi Chirag,
    The parameter name sequence changes alphabetically by itself when I save and activate it eventhough I enter as it is in the document.How to stop changing this sequence or put it the order as required in the Module Processor.
    Currently my sequence is
    Transform.Class
    Transform.ContentType
    xml.conversionType
    xml.documentName
    xml.documentNamespace
    xml.fieldFixedLengths
    xml.fieldNames
    xml.processFieldNames
    xml.structureTitle
    Let me know how to change the sequence ,if that is the issue.
    Thanks,
    C

  • Sender JMS Adapter - NOT Working

    Hello Everybody - We are on SP13, also installed JMS Driver files on the system. We are running, Central Adapter Engine.
    We configured the Sender JMS Adapter for WBI MQ->XI->SAP scenario. We need to JMS Adapter to be configured to connect to WBI from XI. Everything looks great in configuration but in the Adpater Monitoring, JMS Adapter is with Error Status and Message says "Sender channel. Details: (No detail information set.)".
    Does anybody has any idea about this error ?
    I checked SAP Help link as well on this. Based on this link http://help.sap.com/saphelp_nw04/helpdata/en/ca/e7673c86d19b35e10000000a11402f/frameset.htm. Do we need to configure this JMS Adapter somewhere on teh server as well ? If yes, then where ? Pls respond if you have any clue about it.
    Thanks in anticipation...

    Hello Stefan - Thanks for response.
    Here are the Parameters.......
    Adapter Type: JMS
    Sender Type Clicked
    Transport protocol:WebSphereMQ (non-JMS)
    Message protocol:JMS 1.x
    Adapter Engine:Integration Server
    Queue ConnectionFactory Java Class:com.ibm.mq.jms.MQQueueConnectionFactory
    Queue Java Class:com.ibm.mq.jms.MQQueue
    IP Address or Server Name:10.9.48.154
    Server Port:1414
    Queue Manager Name:WBIDEV
    Channel Name:WBI.XI.SVRCONN
    JMS Queue:XI_REQUEST
    Transport/Network Protocol:TCP/IP
    JMS-Compliant:JMS-Compliant
    Transactional JMS Session:Check box Set
    JMS Queue User:XIUSER
    JMS Queue Password:********
    Set XI message ID(MessageID) to:GUID(recommended value)
    Set XI cenversation ID(conversationID) to:No value
    Mapping of Message:Message Payload=JMS Payload
    Quality of Service:Exactly Once
    Time Period for duplicate check for EO(IO)(secs):86400
    Wait After Message Error(msecs):1000
    Wait before Reconnect(msecs):1000
    Status:Active
    The Error Message I see in the Adapter Monitor is "Sender Channel. Details: (No detail information set.)
    Pls advice If I am missing anything ?
    Thanks....
    Amrish.

  • How to hanlde breaked large messages in sender JMS adapter

    Hi,
    I have been asked like 'how can we handle breaked large messages in sender JMS adapter?'and lets say I am getting some messages as it is and some are breaked into small segements for the mesaages that are large....
    do we need to use module,if so is there any standard module that we can use to hanlde this type of scenarios?
    thank you in advance.
    babu

    http://biemond.blogspot.com/2009/10/jms-request-reply-interaction-pattern.html
    if you check the blog of edwin, see his comments at the bottom
    there he gives a suggestion how to add the selector properties to filter on
    and this one is maybe helpfull
    http://blogs.oracle.com/adapters/2010/05/configuring_request-reply_in_jmsadapter.html

  • Sender JMS adapter configuration for IBM MQSeries

    Dear All,
    i am doing a IBM MQSeries 5.2.x Message ->sender JMS adapter -> XI server -> receiver RFC adapter -> R/3.
    i have deployed the JMS adapter with the required jar files of IBM MQSeries 5.2.x in XI server.
    in Sender JMS adapter configuration for IBM MQSeries 5.2.x, i have put following data:
    1. Transport Protocol: Websphere MQ - is it okay?
    in JMS provider settings:
    2. in channel name - what should be there?
    3. Transport Network protocol should be TCP/IP or WebsphereMQ - how to decide this thing.
    4. JMS Complaint - whether WebsphereMQ or JMS API.
    in JMS Settings:
    5. JMS Queue user - is this IBM MQSeries 5.2.x Queue User or someother user?
    6. JMS Message Selector - what data to take here.
    So if anybody has connected IBM MQSeries 5.2.x to XI via JMS adapter, please answer my above queries.
    Regards,
    Rajeev Gupta

    Hi Swaroop,
    you can send me those documents at my gmail-id : [email protected]
    Hi All,
    one more question - to connect XI server to IBM MQSeries via JMS adapter in ID, do we need to have a MQSeries Client installed on XI server - or - just by configuring JMS adapter, we can send messages from IBM MQSeries to XI server without any MQSeries client on XI server?
    Why Channel name is required in JMS configuration data?
    Thanks,
    Rajeev Gupta

  • How to ignore Recordset name in XML(Sender JMS Adapter)?

    Hi All.
    I am using Sender JMS Adapter along with content conversion.
    I have put in Parameter:
    Plain2XMLService xml.ignoreRecordsetName true
    still the Inbound payload in SXI_MONITOR has Node Recordset, which should not be the case.
    Please advice, does this ignoreRecordsetName works in JMS adapter, if Yes does it works same way as in File Adapter content conversion?
    Thanks in Advance

    >
    Gowtham Peddi wrote:
    > Hi All.
    >
    > I am using Sender JMS Adapter along with content conversion.
    >
    > I have put in Parameter:
    > Plain2XMLService xml.ignoreRecordsetName true
    >
    > still the Inbound payload in SXI_MONITOR has Node Recordset, which should not be the case.
    >
    > Please advice, does this ignoreRecordsetName works in JMS adapter, if Yes does it works same way as in File Adapter content conversion?
    >
    > Thanks in Advance
    can you try
    ignoreRecordsetName true instead of xml.ignoreRecordsetName
    also try to not give any value for the xml.recordsetName parameter.
    I actually doubt if we can ignore the record set name using the module.

  • Sender JMS Adapter: Problem in Recordst

    Hi All.
    I am using Sender JMS Adapter along with content conversion.
    I have put in Parameter:
    Plain2XMLService     xml.ignoreRecordsetName           true
    still the Inbound payload in SXI_MONITOR has Node Recordset, which should not be the case.
    Please advice, does this ignoreRecordsetName works in JMS adapter, if Yes does it works same way as in File Adapter content conversion?
    Thanks in Advance

    Hi Pravesh,
    Check this file on Sender JMS adapter if it helps you in anyway;
    http://help.sap.com/saphelp_nw04s/helpdata/en/ca/e7673c86d19b35e10000000a11402f/frameset.htm
    Also check this:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710
    Regards,
    Subhasha Ranjan

  • Sender JMS Adapter with EOIO Quality of Service

    Hi,
    I have a sender JMS adapter with a quality of service as EOIO. In the SAP help it says that I need to specify the "Processing J2EE Cluster Server (Cluster ID)". Just wondering how I get this value? Does anyone have an example?
    Thanks,
    Krishneel

    Hi,
    Please go through the bleow Wiki:
    http://wiki.sdn.sap.com/wiki/display/XI/FAQ+J2EEJMS+Adapter
    http://help.sap.com/saphelp_nwpi71/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
    Thanks,
    satya

  • Sender JMS Adapter does not work

    Hi all,
    We have created a sender JMS adapter with transport protocol "Access JMS Provider with JNDI". The adapter connects to destination successfully, so the connection parameters are right. However, we do not receive any message when the sender sends them.
    What parameters should we set to be able to retrieve messages from the queue?
    Thanks in advance,
    Samantha.

    Hi,
    Into Communication Channel Monitoring, we get the following errors:
    1. Error occurred while processing message: null. Detailed error (if any): java.lang.NullPointerException: at java.text.MessageFormat.applyPattern(MessageFormat.java:414) ...
    2. Added dynamic header: DCJMSMessageSelector to XI message null which corresponds to JMS message selector: mentioned in the channel configuration
    3. XI message ID corresponding to the JMS message with ID: ID:1109F6E3DF541328-00000000053E as stripped of the "ID:" marker and now has the value: null
    4. XI message ID corresponding to JMS message with ID: ID:1109F6E3DF541328-00000000053E will be created with the value of JMSCorrelationID which has the value: null
    Where is the problem?
    Thanks again,
    Samantha.

  • Sender jms adapter-archiving before processing the message

    Hi,
    Do we have any option in Sender JMS adapter to archive the message before processing the message?
    I have searched in sender JMS adapter (XI7.0) settings, but couldn't find any option.
    My assumption is whether any option provided in configuration setting of adapter engine or any other alternatives.
    Thanks,
    Srini.

    Hi Srini.
    Here is the code. But you may prefer the EAR module, just for deploy. I need your email to send it to you.
    If you want to create it yourself follow the steps in this guide and paste the code:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f013e82c-e56e-2910-c3ae-c602a67b918e
    When you configure the module in the JMS sender communication channel you have to spedify 2 parameter for the log file location:
    "file.path" (XI server file system path) and "file.name"
    CODE:
    package com.bfa.af.modules;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Date;
    import javax.ejb.CreateException;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import com.sap.aii.af.mp.module.Module;
    import com.sap.aii.af.mp.module.ModuleContext;
    import com.sap.aii.af.mp.module.ModuleData;
    import com.sap.aii.af.mp.module.ModuleException;
    import com.sap.aii.af.ra.ms.api.Message;
    @author ibermatica
    public class BFATraceModule implements SessionBean, Module {
         private SessionContext myContext;
         public void ejbRemove() {
         public void ejbActivate() {
         public void ejbPassivate() {
         public void setSessionContext(SessionContext context) {
              myContext = context;
         public void ejbCreate() throws CreateException {
         public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData) throws ModuleException
              FileWriter outFile;
              try
                   Date date = new Date();
                   String filePath = moduleContext.getContextData("file.path");
                   String fileName = moduleContext.getContextData("file.name");
                   outFile = new FileWriter(filePath + System.getProperty("file.separator") + fileName, true);
              catch (IOException e)
                   e.printStackTrace();
                   throw new ModuleException(e);
              PrintWriter out = new PrintWriter(outFile, true);
              try
                   out.println("--- Start of message ---");
                   //Get message content.
                   Message data = (Message)inputModuleData.getPrincipalData();
                   if(data.getDocument() != null)
                        out.println(data.getDocument().getText());
                   else
                        out.println("Empty message.");
                   out.println("--- End of message ---");
                   out.println("Total characters: " + data.getDocument().getText().length());
              catch(Exception exc)
                   out.println(exc.toString());
              finally
                   if(out != null)
                        out.close();     
                   if(outFile != null)
                        try {
                             outFile.close();
                        } catch (IOException e1) {
                             throw new ModuleException(e1);
              return inputModuleData;

  • Sender JMS Adapter

    Hi,
    I am using a sender JMS adapter. Transport Protocol i have given as "Access JMS Provider with JNDI".
    In the field "JNDI Server Address" i have to give the server:port.
    Here i am not sure which port to give.
    Is it the P4 port i.e. 5XX04 or the J2EE port on which the WAS listens i.e. 5XX00.
    Please advise.
    Regards
    Sidharth

    Hello Stefan - Thanks for response.
    Here are the Parameters.......
    Adapter Type: JMS
    Sender Type Clicked
    Transport protocol:WebSphereMQ (non-JMS)
    Message protocol:JMS 1.x
    Adapter Engine:Integration Server
    Queue ConnectionFactory Java Class:com.ibm.mq.jms.MQQueueConnectionFactory
    Queue Java Class:com.ibm.mq.jms.MQQueue
    IP Address or Server Name:10.9.48.154
    Server Port:1414
    Queue Manager Name:WBIDEV
    Channel Name:WBI.XI.SVRCONN
    JMS Queue:XI_REQUEST
    Transport/Network Protocol:TCP/IP
    JMS-Compliant:JMS-Compliant
    Transactional JMS Session:Check box Set
    JMS Queue User:XIUSER
    JMS Queue Password:********
    Set XI message ID(MessageID) to:GUID(recommended value)
    Set XI cenversation ID(conversationID) to:No value
    Mapping of Message:Message Payload=JMS Payload
    Quality of Service:Exactly Once
    Time Period for duplicate check for EO(IO)(secs):86400
    Wait After Message Error(msecs):1000
    Wait before Reconnect(msecs):1000
    Status:Active
    The Error Message I see in the Adapter Monitor is "Sender Channel. Details: (No detail information set.)
    Pls advice If I am missing anything ?
    Thanks....
    Amrish.

  • Sender JMS Adapter error: The JMS provider gave the error message as Not permitted, and the error code is null

    I am trying to connect tibcoems with PI using a Sender jms adapter.After successfully installing the drivers , the sender adapter goes into error.
    "The JMS Provider gave the error message as Not permitted, and the error code is null"
    The Transport protocol is 'Access JMS Provider with JNDI' and i have been given the required parameters from the tibco guys.
    Your input are highly appreciated.
    Shyam

    Hi AQmit,
    Thanks for the reply.
    Please find the screenshots of what i am trying to do.
    Also, Can u direct me how to check the right logs?

  • Synchronous sender JMS adapter

    Hi ,
    I need to do a synchronous scenario : JMS - PI - Proxy
    can sender jms adapter be synchronous ?
    Thnx

    Hi,
    can sender jms adapter be synchronous ?
    JMS supports asynchronous communication only. However, a request/response model similar to synchronous communication can be implemented using a reply queue mechanism and JMS Correlation ID/JMS Message ID.
    Search on SDN / SAP Help, there are plenty of documents related to this.
    Regards,
    Neetesh

  • Sender JMS adapter error

    Hi All,
    I'm trying out a scenario which sends data from a Message Queue to SAP.
    For this I need to configure JMS adapter in the sender side. here i am getting the error in the sender communication channel like below
    Can not access because class 'com.ibm.mq.jms.MQQueueConnectionFactory' is missing; ensure that JMS provider library 'aii_af_jmsproviderlib.sda' contains all required resources.
    Can any please help me on this?
    Thanks
    Govinda.

    You need to deploy the MQ JMS library to your PI system first.
    Please check sap note 1138877 for detail.
    The numbers and names of the IBM libraries change depending on the MQSeries version you are using. Currently, we know the following names:
    MQSeries 5.2
    u2022     com.ibm.mq.jar
    u2022     com.ibm.mqjms.jar
    MQSeries 5.3
    u2022     com.ibm.mq.jar
    u2022     com.ibm.mqbind.jar
    u2022     com.ibm.mqjms.jar
    u2022     connector.jar (this file can also be retrieved from the SAP J2EE server directory)
    MQSeries 6.0
    u2022     CL3Export.jar
    u2022     CL3Nonexport.jar
    u2022     com.ibm.mq.jar
    u2022     com.ibm.mqjms.jar
    u2022     connector.jar
    u2022     dhbcore.jar
    u2022     rmm.jar

Maybe you are looking for

  • How do I Set up a LAN with no access to the Internet?

    I have a Solaris 10 (08/07) [No longer can acess the internet] full install on one system, and Solaris 10 Developer Edition (09/07) on another system. Each has been auto-configured upon installation, and have reached the Internet, and registered at S

  • Will this work? (swapping HDs)

    Costco has the 160GB Western Digital Passport portable external HD for a really good price (cheaper than the harddrive costs by itself). Does anyone know if it's possible to open up the enclosure and swap the harddrive with my MacBook's stock 80GB dr

  • Preview Update Bug? (+ iBooks 2 textbook font options)

    Two related questions: 1) Is anyone else getting a situation where after you preview your book several times (10 or more in a session), if you change the master chapter or section layout, at some point the previewed text gets really small? I am tryin

  • IMovie Manual

    Is there a Manual for iMovie, where i can learn how to use it from the beginning? Thanks, CA

  • Changing JButtons

    I have a simple application which needs small images to change dependant on user input. At the minute I have used an extended JButton (extended to implement mouseListener and focusListener) but I need the image I have on them to change if someone rig