Message to JMS Receiver

Hi All,
I have an XML output and I want to send it to a queue so that a JMS receiver listens to the queue and grabs the message. I am wondering as how to send the XML output tho.Any ideas?/
Thanks.

Hi All,
I have an XML output and I want to send it to a queue so that a JMS receiver listens to the queue and grabs the message. I am wondering as how to send the XML output tho.Any ideas?/
Thanks.

Similar Messages

  • Send Idoc flat file message in JMS receiver adapter

    Hello,
    I am working on a scenario where we send Delvry 03 idoc from ECC to external system. To external system, we send the whole Idoc in flat file structure through JMS queue. I have used Idoc to flat file program in my interface mapping and have configured JMS receiver adapter with just default Module configs but, I am getting an error in communication channel monitoring for the messages.
    Please note that Idoc xml to flat file structure conversion is already done in the mapping, I need to just pass this idoc flat structure in the jms adapter. Hence ther eis no content conversion i nthe adapter..
    Please give some inputs..Here are the modules in my receiver adapter and nothing else..
    SAP XI JMS Adapter/ConvertMessageToBinary
    SAP XI JMS Adapter/SendBinarytoXIJMSService
    The error I get is in audit log
    Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: No transition found from state: ERROR, on event: process_commence for DFA: CC_JMS_R:ca336a6689f837da8bd3387140fc4447
    in turn the message has this error if I open the message
    Whitespace is not allowed at this location. Error processing resource 'http://host:port/mdt/messageconten...
    and it shows one of the lines from idoc..flat file
    Any idea is greatly appreciated..Thank you..Thanujja

    The difference in what I suggest is that it is way simpler.
    Maybe you did not understand this, so will try to explain it better. Its not the best thing to do, but if JMS adapter doesn't budge then you can give it a shot.
    1. You continue to use the ABAP mapping in your interface mapping to map the Idoc xml to Idoc flat.
    2. Write a Java Map that will take the output of the ABAP mapping ; and then create a XML output which would be something like,
    <Root>
    <Idoc_Flat>
    <Data>ABAP Mapping Output<Data>
    </Idoc_Flat>
    </Root>
    3. Now use the simple content conversion in the JMS adapter to convert this to flat file.
    Regards
    Bhavesh

  • Adapter-specific message attributes for the JMS Receiver adapter

    Dear SAP Community,
    We are trying to activate some parameters at message level when SAP XI sent an interface (XML data) to IBM Websphere MQ. Programmaticaly, this is done the following way:
           TextMessage outMessage = session.createTextMessage();
           MQQueue replyToQ = new MQQueue("TESTQM01","SYSTEM.ADMIN.ACTIVITY.QUEUE");
           Destination replyTo = (Destination) replyToQ;
           outMessage.setJMSReplyTo(replyTo);
           outMessage.setIntProperty("JMS_IBM_Report_Exception", MQC.MQRO_EXCEPTION);
           outMessage.setIntProperty("JMS_IBM_Report_Expiration", MQC.MQRO_EXPIRATION);;
           outMessage.setIntProperty("JMS_IBM_Report_COA", MQC.MQRO_COA);
           outMessage.setIntProperty("JMS_IBM_Report_COD", MQC.MQRO_COD);
           outMessage.setIntProperty("JMS_IBM_Report_Discard_Msg", MQC.MQRO_DISCARD_MSG);
    This code is working fine.
    Since the documentation about this feature (Adapter-specific message attributes) is very light, We am not sure about the interpretation we made.
    First, we defined the following attributes: MS_IBM_Report_Exception, JMS_IBM_Report_Expiration, JMS_IBM_Report_COA, JMS_IBM_Report_COD, JMS_IBM_Report_Discard_Msg. All of them are with type int.
    Then we changed the mapping (XSL) to pass the value to the dynamic configuration, using the technical names (DCJMSMessageProperty0, ..., DCJMSMessageProperty4) and the value of the constants. We also specified a value in the Reply To Queue parameter of the adapter. As a test, We also change another parameter via the mapping (the correlation ID, to use the idoc number) and according to the log of the processed message, every thing is finde. According to the trace of the JMS adapter, everything is fine to. However, this has no impact on the message, only the correlation ID is changed.
    The JMS server is IBM Websphere MQ (v6.0.2.1). It is already in production and working fine. This is a change we have been asked to implement.
    Has anyone experience with the JMS receiver adapter-specific message attrbitutes ? What have we done wrong ?
    Any help is greatly appreciated.
    Regards,
    Gregory PFISTER
    SAP XI Analyst - Holcim

    Hi Neha,
    pls do chk the below links for SOAP adapter message attributes
    http://help.sap.com/saphelp_nwpi71/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/43/0a7d1be4e622f3e10000000a1553f7/content.htm
    http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_adapters.doc/doc/sap_xi/sapximst38.htm
    http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_adapters.doc/doc/webservices/webservices16.htm
    Regards
    Sampath

  • JMS Receiver Adapter to MQ - additional message property error

    Hi,
    I'm trying to add addional message properties to a Receiver JMS message for MQ Server queue. Creating the message in the MQ queue only works when I don't try to
    add additional message properties. As soon as I try to add additional message properties the XI-Monitor says it's OK but there is no message in the queue.
    Our system constellation is a bit odd cause we implemented the JMS/MQ classes of release 5.3 in XI/J2EE.
    Our actual used MQ Server is on release 5.1 due to compatibilty reasons of other productive software.
    Is there a need to use a MQ server of release 5.3 ?
    Has anybody a step by step description for implementing a JMS receiver Adapter for MQ with with additional message property (f.ex. mesType = salesOrder) in the MQ header?
    Thanx a lot in advance
    Hans

    Hi,
    You also might want to look at sap note 856346...for this ..
    2.6) I am connecting to a JMS provider using JNDI mode. How do I add pass an extra name,value property pair while setting up the JNDI initial context?
    Answer: Assuming that your property value is a string, please add the following name, value pair in "JMS Additional properties" table of your channel configuration:
    JNDI.InitialContext.property.X=java.lang.String propertyName, java.lang.String propertyValue
    where X is a number, the LHS part needs to be put in the name column and the RHS part in the value column of the table respectively.
    This note covers frequently asked questions that arise during the installation, configuration or administration of the XI JMS Adapter from the Adapter Framework (AF).
    Other terms
    JMS - Java Message Service
    AF - Adapter Framework
    AE - Adapter Engine
    SP - Service Pack
    Reason and Prerequisites
    This note clarifies the frequently asked questions on the XI/PI JMS adapter for released 3.0, 7.0 and 7.1 in the form of an FAQ. References to external information is provided at the end.
    Solution
    1. Documentation
    1.1) Where do I find the JMS adapter documentation?
    Answer: In the SAP online help. Go to http://help.sap.com and select  SAP Netweaver-> SAP Netweaver 7.1 or SAP NetWeaver 7.0 (2004s) or SAP Netweaver 2004. This opens up SAP Library topic page for that release.
    For releases 3.0 and 7.0:
    Select SAP Netweaver Library -> SAP Netweaver by Key capability-> Process Integration by Key Capability -> SAP Netweaver Exchange Infrastructure -> Runtime -> Connectivity -> Adapters -> JMS Adapter.
    For releases 7.1:
    Select SAP Netweaver Process Integration 7.1 -> SAP Netweaver Process Integration Library -> Function Oriented View > Advanced Adapter Engine.
    In the topic page click on the JMS Adapter link.
    Alternatively, you may simply enter the search string "JMS adapter" and navigate to the documentation page directly from the relevant search results. This is much faster.
    1.2) Which JMS providers are supported?
    Answer: The JMS Adapter supports JMS 1.02b and 1.1. JMS providers that also claim to be compatible with JMS 1.02b or 1.1 can be accessed using the JMS Adapter.
    Furthermore, SAP makes no assertions as to whether a particular JMS provider is tested or can be recommended, because SAP has not set up a certification or testing process.
    2. Functions and architecture
    2.1) Does the JMS Adapter support JMS topics (publish&subscribe)?
    Answer: No. Currently the JMS Adapter works with JMS queues because 100% Exactly Once (In Order) service quality can only be guaranteed with  JMS queues. However, this capability might be planned for introduction at a future release. (no planned time estimate)
    2.2) I have JMS message properties that are of significant. How do I get this data into XI? How do I get this data out of XI?
    Answer:
    A feature generically referred to as XI adapter-specific message properties was introduced in the adapter framework. This allowed additional adapter information to be attached to a XI message which can be used the routing, mapping and BPE. The message properties of different adapters are differentiated by namespaces.
    If you are on XI 3.0 support pack 18 onwards, the JMS adapter allows you to copy JMS message properties into these XI adapter specific message properties (at the sender JMS channel), and to copy the values of XI adapter specific message properties back into JMS message properties (at the receiver JMS channel).
    The JMS adapter currently supports upto 10 JMS message properties to be copied into the XI message properties with the name DCJMSMessageProperty0 to DCJMSMessageProperty9. The configuration details of how to achieve this are explained in the sub-topic pages of the JMS adapter documentation. (See sub topics: "Configuring the Sender JMS adapter", "Configuring the Receiver JMS adapter")
    JMS Message properties can have values belonging to types: boolean, byte, short, int, long, float, double, and String (defined in the specification). These are all normalized to strings when converted to the their respective XI message properties at the sender JMS channel.
    However, in the receiver JMS channel configuration, you can enter specific JMS message property types, such that these normalized XI message properties may be coerced back into their original types (or any compatible JMS message property type) when translating a XI message into a JMS message.
    Transfer of custom JMS Message properties from/to XI adapters-specific message attributes is only supported for JMS compliant messages, i.e. this feature will not work for Websphere MQ in legacy mode.
    Deprecated Information on this feature
    Between support pack 14 to support pack 18, the JMS adapter allowed the allowed you append only up to two JMS string properties to the XI message in the sender channel, which could then be analyzed in XI routing, mapping and BPE. In the JMS receiver channel, the XI adapter-specific message attributes could be read, and up to two JMS string properties could be set. The names of the (now deprecated) XI message properties were DCJMSStringProperty1 and DCJMSStringProperty2.
    Regards
    Ravi Raman

  • JMS receive in JTA doesn't return message

    Hi
    I am using Websphere Application server 6.1 (the one provided with RAD 7.0.0)and WebSphere MQ 6.0 as JMS provider.
    I have a problem receiving message from queue when JTA transaction is active.
    I configured Connection Factory as following:
    Scope cells:ejbhostname:nodes:ejb:servers:server1
    Name MQQueueConnectionFactory
    JNDI Name foo/bar
    Description empty
    Category empty
    Component-managed Authentication Alias none
    Container-managed Authentication Alias none
    Mapping-Configuration Alias DefaultPrincipalMapping
    Queue Manager QMGR
    Host 192.168.2.100
    Port 1415
    Channel CLIENT_CHANNEL
    Transport Type CLIENT
    Model Queue Definition empty
    Client ID empty
    CCSID empty
    Message Retention enabled
    XA Enabled enabled.
    Everything seems to work fine but message reception time-out occurs when i try to synchronous receive message from queue.
    Below is a code of my stateless session EJB method.
    public void receiveMessage()
        throws NamingException,
        JMSException{
              Connection connection = null;
             Session session = null;
             MessageConsumer consumer = null;
             try {
                 logger.log(myLevel, "Getting Initial Context");
                 InitialContext context = new InitialContext();
                 ConnectionFactory factory = (ConnectionFactory) context.lookup("java:comp/env/jms/JMSExampleConnectionFactoryRef");           
                 Destination dest = (Destination) context.lookup("java:comp/env/jms/JMSExampleQueue2Ref");           
                 connection = factory.createConnection();         
                 session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);         
                 consumer = session.createConsumer(dest);
                 connection.start();
                 Message msg = consumer.receive(1000);
                 if(msg == null){
                      System.out.println(":(");
                 }else{
                      System.out.println("got it " + msg);
             catch (NamingException e) {
                 mySessionCtx.setRollbackOnly();
                 throw e;
             catch (JMSException e) {
                 logger.log(myLevel, e.getLocalizedMessage(), e);
                 mySessionCtx.setRollbackOnly();
                 Exception linked = e.getLinkedException();
                 mySessionCtx.setRollbackOnly();
                 throw e;
             finally {          
                 consumer.close();          
                 session.close();         
                 connection.close();
        }The weird thing is that it only happens (time-out obviously) if i
    i have "XA enabled" checkbox checked (in connection factory settings)AND if i run the method presented above in JTA transaction (setting transaction type for a Ejb to container or set it to Bean and manually start JTA transaction)
    If i do not have "XA enabled" checked the code above work great even inside JTA transaction.
    I tried creating transacted JMS session and not transacted but as far as i know it is ignored in JTA.
    Can someone explain me what is going on ??
    Is it impossible to synchronous receive message in JTA transaction while working with XA connection factory??
    Is it Websphere MQ problem, or sth else ??

    Hi
    I am using Websphere Application server 6.1 (the one provided with RAD 7.0.0)and WebSphere MQ 6.0 as JMS provider.
    I have a problem receiving message from queue when JTA transaction is active.
    I configured Connection Factory as following:
    Scope cells:ejbhostname:nodes:ejb:servers:server1
    Name MQQueueConnectionFactory
    JNDI Name foo/bar
    Description empty
    Category empty
    Component-managed Authentication Alias none
    Container-managed Authentication Alias none
    Mapping-Configuration Alias DefaultPrincipalMapping
    Queue Manager QMGR
    Host 192.168.2.100
    Port 1415
    Channel CLIENT_CHANNEL
    Transport Type CLIENT
    Model Queue Definition empty
    Client ID empty
    CCSID empty
    Message Retention enabled
    XA Enabled enabled.
    Everything seems to work fine but message reception time-out occurs when i try to synchronous receive message from queue.
    Below is a code of my stateless session EJB method.
    public void receiveMessage()
        throws NamingException,
        JMSException{
              Connection connection = null;
             Session session = null;
             MessageConsumer consumer = null;
             try {
                 logger.log(myLevel, "Getting Initial Context");
                 InitialContext context = new InitialContext();
                 ConnectionFactory factory = (ConnectionFactory) context.lookup("java:comp/env/jms/JMSExampleConnectionFactoryRef");           
                 Destination dest = (Destination) context.lookup("java:comp/env/jms/JMSExampleQueue2Ref");           
                 connection = factory.createConnection();         
                 session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);         
                 consumer = session.createConsumer(dest);
                 connection.start();
                 Message msg = consumer.receive(1000);
                 if(msg == null){
                      System.out.println(":(");
                 }else{
                      System.out.println("got it " + msg);
             catch (NamingException e) {
                 mySessionCtx.setRollbackOnly();
                 throw e;
             catch (JMSException e) {
                 logger.log(myLevel, e.getLocalizedMessage(), e);
                 mySessionCtx.setRollbackOnly();
                 Exception linked = e.getLinkedException();
                 mySessionCtx.setRollbackOnly();
                 throw e;
             finally {          
                 consumer.close();          
                 session.close();         
                 connection.close();
        }The weird thing is that it only happens (time-out obviously) if i
    i have "XA enabled" checkbox checked (in connection factory settings)AND if i run the method presented above in JTA transaction (setting transaction type for a Ejb to container or set it to Bean and manually start JTA transaction)
    If i do not have "XA enabled" checked the code above work great even inside JTA transaction.
    I tried creating transacted JMS session and not transacted but as far as i know it is ignored in JTA.
    Can someone explain me what is going on ??
    Is it impossible to synchronous receive message in JTA transaction while working with XA connection factory??
    Is it Websphere MQ problem, or sth else ??

  • GUI receiving log messages from JMS

    Hi,
    I have three classes: GUI, EventListener and JMSListener. What I want to do is to create a login dialog. The user enters his username and password, presses the login button and waits (as this process can take a while). While waiting, he can see log messages sent via JMS.
    I set up a TextListener (in my case a JMSListener) and a subscriber like it is described here: http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/client.html#1027256.
    But the JMSListener never gets any message although the connection is set up correctly (this is just a guess as no exception is thrown). I think that this is a GUI problem. Because if only the JMSListener is running, it does receive messages. Is it possible that the GUI blocks somehow?
    Here is some code... First the class that holds the main method:
    package de.dtnet.client.run;
    import javax.swing.JFrame;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
    import de.dtnet.client.gui.SWDemoGUI;
    import de.dtnet.client.listener.SWDemoEventlistener;
    public class SWDemoClient {
        private static SWDemoGUI swdemo = null;
         * @param args
        public static void main(String[] args) {
            swdemo = new SWDemoGUI();
            SWDemoEventlistener listener = new SWDemoEventlistener(swdemo);
            swdemo.registerEventlistener(listener);
    }The code from the GUI (only the important parts):
    package de.dtnet.client.gui;
    import de.dtnet.client.listener.SWDemoEventlistener;
    public class SWDemoGUI extends JFrame implements Serializable {
        private static final long serialVersionUID = 1L;
         * Default constructor
        public SWDemoGUI() {
            initialize();
         * Creates widget objects and puts everything together
        public void initialize() {
            // GUI with JTextPane for log messages
        public void logOK(String msg) {
            log(OK, msg);
        public void logInfo(String msg) {
            log(INFO, msg);
        public void logWarning(String msg) {
            log(WARNING, msg);
        public void logError(String msg) {
            log(ERROR, msg);
        public void log(String level, String msg) {
            StyledDocument doc = messagesTextPane.getStyledDocument();
            try {
                doc.insertString(doc.getLength(), msg + "\n", doc.getStyle(level));
            } catch (BadLocationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            messagesTextPane.setCaretPosition(doc.getLength());
        public void registerEventlistener(SWDemoEventlistener listener) {
            loginBtn.addActionListener(listener);
            usernameTxt.addFocusListener(listener);
            passwordField.addFocusListener(listener);
    }The enventlistener:
    package de.dtnet.client.listener;
    // imports
    public class SWDemoEventlistener implements ActionListener, FocusListener {
        private SWDemoGUI gui = null;
        private String logLevel = null;
        private String logMessage = null;
        private TopicConnectionFactory conFactory = null;
        private TopicConnection connection = null;
        private TopicSession topicSession = null;
        private Topic topic = null;
        private TopicSubscriber subscriber = null;
        public SWDemoEventlistener(SWDemoGUI gui) {
            this.gui = gui;
            initJMS();
        private InitialContext getInitialContext() {
            // set the properties for the InitalContext
            Properties env = new Properties( );
            env.put("java.naming.provider.url",
                    "jnp://localhost:1099");
            env.put("java.naming.factory.initial",
                    "org.jnp.interfaces.NamingContextFactory");
            env.put("java.naming.factory.url.pkgs", "org.jnp.interfaces");
            try {
                // initalize and return the InitalContext with
                // the specified properties
                return new InitialContext(env);
            } catch (NamingException ne) {
                System.out.println("NamingException: " + ne);
            return null;
        private void initJMS() {
            try {
                // Obtain a JNDI connection
                InitialContext jndi = getInitialContext();
                Object ref = jndi.lookup("ConnectionFactory");
                // Look up a JMS connection factory
                conFactory = (TopicConnectionFactory) PortableRemoteObject.narrow(
                        ref, TopicConnectionFactory.class);
                // Create a JMS connection
                connection = conFactory.createTopicConnection();
                // Create a JMS session objects
                topicSession = connection.createTopicSession(
                        false, Session.AUTO_ACKNOWLEDGE);
                // Look up a JMS topic
                topic = (Topic) jndi.lookup("topic/testTopic");
            } catch (NamingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (JMSException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == gui.getLoginButton()) {
                // Do some authentication stuff etc.
                /* Now awaitening messages from JMS */
                subscribe(sessionID);
        public void subscribe(Long sessionID) {
            String selector =  "SessionID='" + sessionID.toString() + "'";
            gui.logInfo("Selector: " + selector);
            try {
                //subscriber = topicSession.createSubscriber(topic, selector, true);
                subscriber = topicSession.createSubscriber(topic);
                JMSListener listener = new JMSListener(gui);
                subscriber.setMessageListener(listener);
                connection.start();
                gui.logOK("Verbindung zu JMS erfolgreich");
            } catch (JMSException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
    }and finally the JMSListener:
    ackage de.dtnet.client.listener;
    public class JMSListener implements MessageListener {
        private SWDemoGUI gui = null;
        private String logLevel = null;
        private String logMessage = null;
        public JMSListener(SWDemoGUI gui) {
            super();
            this.gui = gui;
        public void onMessage(Message incomingMessage) {
            System.out.println("You got message!");
            try {
                MapMessage msg = (MapMessage) incomingMessage;
                logMessage = msg.getString("Message");
                logLevel = msg.getString("Level");
            } catch (JMSException e) {
                e.printStackTrace();
            Runnable logTopicMessage = new Runnable() {
                public void run() {
                    System.out.println("Now updating the GUI");
                    gui.log(logLevel, logMessage);
            SwingUtilities.invokeLater(logTopicMessage);
            System.out.println("Message fully retrieved!");
    }I spent a whole day on this and I'm really becoming desperate as I can't see where the problem is and my time is running out (this is for my diploma thesis)! Does anyone of you? Please!
    Thank you!
    -Danny

    Hello Veronica4468,
    After reviewing your post, I have located an article that can help in this situation. It contains a number of troubleshooting steps and helpful advice concerning Messages and SMS:
    iOS: Troubleshooting Messages
    http://support.apple.com/kb/ts2755
    Thank you for contributing to Apple Support Communities.
    Cheers,
    BobbyD

  • Receiving Unknown Byte Messages in JMS Queues from MDM 2.0

    I am receiving unknown Byte messages in JMS CCB MDM Queue from MDM 2.0.
    It keeps on increasing. Please let me know how to avoid this. and what may be the error.

    Hi,
    Set these flags with in your startup script like setDomainEnv.sh file or startWebLogic.sh file.
    set these option near java_properties or options.
    once you set please restart and one more point I missed here once you set these debug flags change the logging patter patter to debug mode under
    server >> logging
    change all the logging severity to debug mode and collect the debug.
    Regards,
    Kal

  • JMS Receiver - set DCJMSMessageProperty value dynamically from message

    Hi,
    I have a JMS Receiver where I want to set a DCJMSMessageProperty value to a value from the message contents
    For example:
    Scenario 1:
    Message content field <EANCode>123456</EANCode>
    DCJMSMessageProperty6 should be set to 123456 in this instance
    Scenario 2:
    Message content field <EANCode>99999</EANCode>
    DCJMSMessageProperty6 should be set to 99999 in this instance
    I know how to set this property to a fixed value using the module DynamicConfigurationBean but do not know how to make this value to use message content.

    Hi,
    As stated earlier, I need to set DCJMSMessageProperty on the communication channel to a value held in the content not a fixed value.
    I will use a UDF to do this now as there are only certain dynamic values you can use using the DynamicConfigurationBean such as message ID, interface name etc. I want to use something in the content so a UDF should be able to do this.
    Cheers
    Colin.

  • How can a remote jms receiver detect loss of connection to Messaging server

    Plan:
    Messaging server (like JbossMQ /SonicMQ) is hosted on one machine.
    A JMS receiver (MDB/core java program) on another machine receives messages from the messaging server.
    Secnario:
    The JMS receiver is now continuously listening or occasionally reading messages from a certain queue of the server using a JMS connection.
    Now the messaging server has this receiver in its list of receivers for that particular queue.
    For some reason the messaging server is down and then restarted.
    The JMS connection of the receiver is now invalid.
    When the messaging servers comes up again its list of receivers is empty.
    Required Solution:
    Can you please help me on how the JMS receiver can detect the above scenario and re-establish the connetion to the messaging server, the next time the server is up.
    Observations:
    When I create a message consumer or queue receiver in a j2se program, and take messages from JbossMQ I have some additional threads running on my JVM. These threads are not directly created by the program and servers only for receiving messages. One of these threads is catching an exception and printing a stack trace when it detects that the connection is lost. This will also result in the closing of JMS connection. The problem is that the exception is not thrown for the programmer to catch and handle it at some level. I also tried ExceptionListener and waited for ping interval. Is there a concept of receiver listening to the periodic heart beat of the server. Please give me guidance, solutions or corrections.
    For comments on this, Thanks in advance

    Hi Leendert,
    do you want to use the JMS API directly? In this case you have to create the connection factory on system X. From system Y, you access the JNDI on system X and look up the connection factory. Since you are accessing the JNDI on system X from outside, you need to set some properties to create the InitialContext:
        Properties env = new Properties();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sap.engine.services.jndi.InitialContextFactoryImpl");
        env.put(Context.PROVIDER_URL, <system X>:<p4 port>); // replace with your settings
        env.put(Context.SECURITY_PRINCIPAL, <user name>); // replace with your settings
        env.put(Context.SECURITY_CREDENTIALS, <password>); // replace with your settings
        naming = new InitialContext(env);
    Hope that helps.
    Regards,
    Sabine

  • Is there a way to control the number of consumed messages from JMS?

    Hi everyone,
    I have a BPEL process that is consumes messages from a foreign queue, performs a transformation, and passes it to Oracle Apps. I'm curious if there is a way to control the number of messages consumed at a time for processing.
    For example, if we place 50 transactions on this queue, I would like to only consume 10. And then as each one is processed and passed to Oracle Apps, I would like to pull another transaction off the queue. So basically I would only be processing 10 at the most.
    The issue I am having is we put 50 on the queue and the 50 are take off right away. But then half are making it into Oracle Apps and the remainder is failing with a JCA Connection Factory max connection error.
    Instead of changing the settings to get more through, I am wondering if it's possible to limit the number being processes at any one time.
    Thanks

    Hi,
    Have a look at the adapter.jms.receive.threads Property for JMS Adapter...
    http://docs.oracle.com/cd/E21764_01/core.1111/e10108/adapters.htm#BABCGCEC
    Cheers,
    Vlad

  • Issue with JMS Receiver Comm. Channel using Seeburger AttribMapper

    Hello,
    I'm using a JMS_RECEIVER Comm. Channel on which the Seeburger AttribMapper is configured (I need to use the DCJMSCorreleationID dynamic attribute).
    In the module tab, I added a new module:
    Module Name Module Type Module Key
    localejbs/Seeburger/AttribMapper Local Enterprise Bean map
    And I added the following parameter:
    Module Key Parameter Name Parameter Value
    map http://sap.com/xi/XI/System/JMS/DCJMSCorreleationID "TEST"
    When processing a message, I get the following error on the Communication Channel Monitoring:
    Message processing failed. Cause: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of AttribMapper.
    Does anyone has an idea on how to fix this problem?
    Thanks for your help!
    Benoit

    HI,
    Refer the discussion of
    Setting DCJMSCorreleationID in JMS RECEIVER using Seeburger AttribMapper
    Dynamic subject in AS2 receiver
    Thanks
    Swarup

  • Sync/Async - JMS receiver comm. channel not processing

    I have a Sync/Async scenario (without bpm) in PI 7.11:
    RFC -> PI -> JMS
    whereby the JMS receiver comm. channel does not fully process the message. 
    More specifically, the RFC sender comm. channel gets a message in and passes the message to the JMS channel, but that JMS channel within the RWB comm. channel log only shows the entry:
    - Message processing started
    The odd twist to this is that when we bring the PI server down, then back up again, (or wait a period of time, still trying to determine this period) the FIRST message attempt does successfully get processed, i.e. the first message on that JMS receiver comm. channel RWB log shows as:
    - Channel successfully processed the message: 08499236-387c-11e0-b002-000025bab2c2
    - Stored the correlation ID 08499236-387c-11e0-b002-000025bab2c2 of the request JMS message: ID:c3e2d840d4d8d4f24040404040404040c754dc12d8b54ec6  correponding to the XI message: 08499236-387c-11e0-b002-000025bab2c2
    - Message processing started
    (but then because of an issue on the target system, no response comes back, so then we'll additionally get the log entry:
    - Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: no message received
    Any suggestions appreciated on what I can check here to try and figure this out. Possibly because the first message eventually errors out, it is stopping the other subsequent msgs from getting processed...
    When I check the audit logs of a 'success' msg vs. a not-successful msg, the success msg has an entry (and subsequent entries) of:
    14.02.2011 12:50:19 Information Transform: transforming the payload ...
    14.02.2011 12:50:19 Information Transform: successfully transformed
    14.02.2011 12:50:19 Information ROB: entering RequestOnewayBean
    14.02.2011 12:50:19 Information ROB: forwarding the request message
    14.02.2011 12:50:19 Information ROB: leaving RequestOnewayBean
    14.02.2011 12:50:19 Information JMS Message was forwarded to the JMS provider succesfully."
    14.02.2011 12:50:19 Information XMB Message as Binary was forwarded to the SAP XI JMS service succesfully.
    14.02.2011 12:50:19 Information WRB: entering WaitResponseBean
    14.02.2011 12:50:19 Information WRB: retrieving the message for 08499236-387c-11e0-b002-000025bab2c2 ...
    wheras the non-success msg shows only:
    14.02.2011 12:55:30 Information Transform: transforming the payload ...
    14.02.2011 12:55:30 Information Transform: successfully transformed
    14.02.2011 12:55:30 Information ROB: entering RequestOnewayBean
    14.02.2011 12:55:30 Information ROB: forwarding the request message
    14.02.2011 12:55:30 Information ROB: leaving RequestOnewayBean
    So, we can see that the message is not "forwarded to the JMS provider..." in the non-success case.
    And also the  sxi_monitor shows these messages with a status of "Log version".
    Keith

    Hi Siddhesh - yes that was a while back and am trying to remember the resolution.  I have implemented sync/async bridges (as well as async/sync bridges) successfully, so I don't mind checking your settings, particularly I am interested in the settings within the Module tab of the JMS receiver.  I can then compare to mine if you'd like.  Also if you can let me know what underlying queuing system in that target system (e.g. MQSeries?) that would be great.
    Regards,
    Keith

  • Erro in JMS receiver Comm Channel

    Hi,
        I am working on a scenario File(Sender) JMS (Receiver).The input is a text file The file sender polls this input file and the file sender CC does the content conversion and puts the XML message into the JMS Queue. But in the receiver JMS comm channel i get the error saying
    Error sending message in sending to destination ABCF, the message message: TextMessage[null, <?xml version="1.0" encoding="...]: weblogic.jms.common.JMSException: Error sending mess
    Please help me on this

    Hi,
    Please have a look at your message in SXMB_MONI and see if the payload is correct.
    Also have a look at the MDT (http://<server>:<port>/MDT) and see what errors occur for your message.
    Regards,
    Yaghya

  • JMS receiver error

    Hello,
    I have maintained a JMS receiver adapter to an existing MQ system (IBM WebSphere 6.0)
    After deploying the modules to PI (7.11) the adapter goes green but allways says "Sucessfully disconnected from destination".
    When sending a message through this adapter I get the error message:
    "Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: No transition found from state: STARTING, on event: process_commence for DFA: JMSReceiver_ATLAS_MQ:4b9d8e8dfe883ebeb7ab5af79e59cdf6"
    I can not find out where the problem can be....I played arrounf with the several options for QM Manasger, channels.....
    I do not use any "Advanced Adapter options"
    Anybody who can help me????
    best regards
    Werner

    I still have checked all the notes and blogs....
    But nothing helps, I still have the same problem.
    The problem can be, that I am not a MQ specialist, but I have access to the MQ and I can see the settings.
    Do I have to use adapter specific atributes???
    I only use QManager, Chanell, queue....
    ANd there is somehting other really strange.
    I have create several components for different scenarios.
    When I create an Adapter in one component, I get the error I listed before.
    But in some components I get the error:
    "Channel Has Internal Error" in the RWB overview and in the node
    "Adapter had not provided any status infomration about this channel"
    I tried with Creating new channel, copy channel between the components....
    but allways the same...in some components I get this error
    in other components I get the message "Successfully discponnected from destination"
    Werner
    Edited by: Werner Magerl on Sep 28, 2010 1:59 PM

  • JMS receiver adapter Error

    Hi Experts,
    Any idea about this error. We are getting following in JMS receiver adapter in PI 7.1.
    Delivering the message to the application using connection JMS_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Connector for ConnectionProfile of channel: JMS_Receiver_THQPRD2_Slow_Replyon node: 284760550 having object id: cf2f6eb7d6c93902b64b27bfcaad0ba5 encountered error: MQJMS1016: an internal error has occurred. Please contact your system administrator. Detail: java.lang.NullPointerException: while trying to read the field 'ccsid' of an object loaded from field com.ibm.mq.MQSESSIONClient.comms of an object loaded from local variable '<0>' in sending to destination queue:///QR.EAIPRD.THQPRD2.REPLY.SLOW?targetClient=1, the message message: JMS Message class: jms_text  JMSType:         null  JMSDeliveryMode: 2  JMSExpiration:   0  JMSPriority:     4  JMSMessageID:    null  JMSTimestamp:    0  JMSCorrelationID:ID:414d5120504c535748353533202020204e6324ae23eb5b2d  JMSDestination:  null  JMSReplyTo:      null  JMSRedelivered:  false XPLOR     PIPXSDI2030 45219q00282YSDI2030PROCESS_MQSERIES              PLSWH553                     Another 12,761 character(s) omitted: javax.jms.JMSException: MQJMS1016: an internal error has occurred. Please contact your system administrator. Detail: java.lang.NullPointerException: while trying to read the field 'ccsid' of an object loaded from field com.ibm.mq.MQSESSIONClient.comms of an object loaded from local variable '<0>'.
    Thanks,
    Hari

    Hello,
    The error indicates a JMS driver issue.
    Another customer resolved this issue by updating their MQ and the MQ drivers version (in their case to 6.0.2.8.)
    You could try contacting IBM for advice on a similar upgrade.
    #1086303 XI JMS Adapter and IBM Websphere MQ: FAQ
       12)What is the recommended version of MQ drivers for the PI JMS
    Adapter - IBM MQ connectivity ?
    Kind regards,
    Sarah

Maybe you are looking for