Setting Outbound JMS Headers in ESB

Hi
I've been trying to set the JMSType header in an ESB process, using the following in my XSLT:
<xsl:variable name="JMSType"
select="ehdr:setOutboundHeader('/jhdr:JMSOutboundHeadersAndProperties/jhdr:JMSOutboundHeaders/jhdr:JMSType', 'solihull.cdh.citizen.change', 'jhdr=http://xmlns.oracle.com/pcbpel/adapter/jms/;')"/>
The message gets posted OK, but I have a 2nd ESB process listening specifically for this JMSType, but it does not get fired. If i remove the filter, then it does.
So, I can only assume that the JMSType is not getting set correctly.
Has anyone successfully managed this and does my call above look valid?
Any help appreciated
Chris

Hi,
Your code to set the header is ok, however, filtering is not that simple..
Please use the following code in the Filter expression in Inbound ESB adapter:
{ehdr:getRequestHeader('/jhdr:JMSInboundHeadersAndProperties/jhdr:JMSInboundHeaders/jhdr:JMSType') = 'COMPLETE_ORDER'};{ namespace ehdr=http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions namespace jhdr=http://xmlns.oracle.com/pcbpel/adapter/jms/ }
Regards,
Marek

Similar Messages

  • Accessing JMS Headers in WLI

    Hi,
    I have a process that is initiated by an XML event. I have a client that constructs
    and posts this XML message to a JMS queue. I am also setting some JMS headers
    for that message such as correlation ID. The question is, how do I access these
    values once the process is triggered? All that I am able to get at is the actual
    XML itself.
    --Krish.

    RTFM issue. Answered my own question.
    "Krish Khambadkone" <[email protected]> wrote:
    >
    Hi,
    I have a process that is initiated by an XML event. I have a client
    that constructs
    and posts this XML message to a JMS queue. I am also setting some JMS
    headers
    for that message such as correlation ID. The question is, how do I
    access these
    values once the process is triggered? All that I am able to get at is
    the actual
    XML itself.
    --Krish.

  • How to Set corrid using JMS adapter in ESB while inserting the data in JMS

    Hello all,
    Can any one help me in setting the corrid using JMS adapter in ESB.
    I haven't been able to find any clues.
    We can do this in BPEL but my adapter is in ESB and i have no idea how this can be done in ESB.
    Your help is highly appreciated.
    Thanks,
    Saurav
    Edited by: sauravsingla on Oct 7, 2009 10:46 AM

    hi
    you could do this from and xsl transformatuion by use of the .. function
    see :
    http://biemond.blogspot.com/2008/02/esb-adapter-failover.html
    http://kr.forums.oracle.com/forums/thread.jspa?threadID=658502 (comment of AmitSoaDev, he sets correlationid too)
    hope this helps, gl

  • Custom jms headers are removed when a message pass through OSB's proxyservi

    Hi,
    I am using OSB 10.3. Trying to build the application withe the following flow.
    proxyservice(jms integration)-->businessservice(jms integration)-->MDB
    When a jms message with some custom headers are posted to a proxyservice, the custom headers are getting strippped off and only the plain jms message is received in the MDB and not the custom jms headers. I have enabled "Get all headers" option to "Yes" on the proxyservice. Do I need to do anything special to get those jms properties on to a MDB?
    Regards,
    Baskaran

    Did you try passing headers with "Set Transport Headers for[ Outbound Request ] " with option      Pass all Headers through Pipeline checked?
    Thanks
    Manoj

  • Biztalk 2013 WCF-WebHTTP Adapter - Outbound HTTP Headers

    Hi
    I have a requirement to connect to a service using the WCF-WebHTTP adapter that requires authentication to be passed in the Headers.
    A usercode and password is sent in the intial header and a security token is returned in the response header.
    This security token is then used in the header of each subsequent call to the service.
    I could not find anything in the documentation about getting and setting the "HTTP Header" data using maps or variables or using variables in the "Outbound HTTP Headers" on the adapter transport properties.
    Any help on this would be gratefully received.
    Malcolm

    You can set the outbound HTTP header in WCF-WebHTTP adapter by 2 ways
    1) At adapter level Change adapter properties
    2)Changing Message context property at Orchestration or at pipeline
    Its been well documented here
    http://blog.codit.eu/post/2013/04/30/Using-HttpHeaders-with-WCF-WebHttp-Adapter-on-Biztalk-2013.aspx
    Thanks
    Abhishek

  • Convert JMS Headers from EBCDIC to ASCII when using JMS Bridge (WLS - WMQ)

    I have a Java app on Weblogic 11g using a Message Bridge to talk JMS with IBM Websphere MQ. The MQ server is running on IBM z/OS platform which uses EBCDIC encoding. I need to use the Weblogic message selector feature to filter messages on the bridge coming from Websphere MQ. But the JMS Headers of MSGs posted by WMQ are in EBCDIC format. How can I instruct MQ to convert the msg headers to ASCII before put on the bridge? Is there any flag on bindings config file? Or can I set some WMQ specific header before sending the msg on WLS side?
    Thanks in advance.

    Hi,
    Such option is not possible in weblogic but I think this property will help you with in MQ.
    Property - Convert EBCDIC newline
    Description - EBCDIC code pages contain a new line (NL) character that is not supported by the ASCII code pages (although some ISO variants of ASCII contain an equivalent). If messages are sent from a system that uses EBCDIC code pages (for example, a z/OS system) to a system that uses ASCII, you can control how the EBCDIC newline character is converted into ASCII format.
    The default value is NL_TO_LF, which means that the EBCDIC NL character (X'15') is converted to the ASCII line feed character LF (X'0A') for all EBCDIC to ASCII conversions. To convert the EBCDIC NL character according to the conversion tables on your operating system, click TABLE. Note that the results of a TABLE conversion can vary from platform to platform and from language to language; even on the same platform the results might vary if you use different coded character set identifiers (CCSIDs). To convert ISO CCSIDs using the TABLE method and use the NL_TO_LF method for all other CCSIDs, click ISO.
    Registry Stanza Key - ConvEBCDICNewline
    Also, the MQSeries (not MQSC) adapter provides the data conversion property may handle this conversion as well.
    Regards,
    Kal

  • Creating JMS Headers for executing IMS Transactions

    Hi,
    We have a requirement where we need to execute IMS Tran from PI. So we need to set the IMS Headers (MQIIH) on JMS Receiver channel. Also we need to set the some MQMD Header properties that JMS Receiver do not have like UserIdentifire, Format, etc.
    I refered some of the documentation through which we were able to create the attributes in usr section. But that is not solving the purpose.
    Thanks for your help in advance.
    Thanks
    Sandeep

    Hi Sandeep,
    Do you have trouble with the IMS Headers or the MQMD? Can you post your configuration?
    Here's a configuration I use for changing MQMD parameter in the receiver JMS channel:
    In the advanced tab, additional parameters:
    JMSMessageClass                             com.ibm.jms.JMSMessage
    JMS.Message.method.setJMSCorrelationID     java.lang.String 1
    You can refer to this help page from IBM to know witch method to call: (setJMSCorrelationID)
    http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=/com.ibm.mq.javadoc.doc/WMQJMSClasses/com/ibm/jms/JMSObjectMessage.html
    You can achieve the same thing with the DynamicConfiguraitonBean in the module tab but you do not need both. They do the same thing.
    If you want to use the DynamicConfigurationBean:
    Module cfg:
    AF_Modules/DynamicConfigurationBean LocalEnterpriseBean dc
    Module params:
    dc.key0  insert http://sap.com/xi/XI/System/JMS DCJMSCorreleationID
    dc.value0 1
    reference: https://cw.sdn.sap.com/cw/docs/DOC-10784
    Those two configurations will do the same thing, hardcode the CorrellationID of the message to 1.
    Martin

  • JMS Adapter - Set Additional JMS Parameters or Replace Default Settings

    Hi colleagues,
    We are using PI/XI 7.0 (SP 12).
    In trying to set up a Communication Channel using JMS Adapter to connect to Oracle AQ, I do not see the checkbox "Set Additional JMS Parameters or Replace Default Settings" , nor is the table for the parameters / value visible.
    We have deployed the driver file as described in the How-to- guide: How To Install and Configure External Drivers for JDBC & JMS Adapters
    [http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f04ce027-934d-2a10-5a8f-fa0b1ed4d88f?quicklink=index&overridelayout=true]
    In setting up the Communication Channel so far:
    Type: Sender
    Transport Protocol: Access JMS Provider Generically
    Message Protocol:  JMS 1.x
    Adapter Engine:      Integration Server
    After this I expect to see the checkbox  "Set Additional JMS Parameters or Replace Default Settings", but it is not there.
    Therefore I am not able to select it in order to enter parameters like:
    JMS.QueueConnectionFactoryImpl.classname
    JMS.QueueConnectionFactoryImpl.method.setHostName
    JMS.QueueImpl.classname
    JMS.QueueImpl.constructor.... etc
    Can someone please share if this because we are on too low SP or do we need to do something additional before it becomes visible?  Is this a feature that only became available as of PI/XI 7.0 SP 13 or 14 ?
    I checked both Sender and Receiver channel type, and it does not appear for both.
    Thanks & Cheers,
    Jodie

    Hi experts,
    We are using PI 7.1 and I've set up a communication Channel using JMS Adapter to send
    messages to a Sonic MQ queue.
    I need to send some values as JMS parameters, two of which are constants and two are values
    from the Sender message. I tried defining and setting up the parameters with constants values
    in the Communication Channel under the Advanced tab by selecting the check-box
    set Adapter-specific Message Attributes as follows:
    Name     TYPE
    ContentType     String
    ReturnValue     boolean
    Name     VAlue
    Contenttype     CompanyCode
    ReturnValute     true
    This however lead to an error in the Adapter Engine (RWB).
    My problem is:
    1. Can anyone please instruct me as to how to go about defining and setting up
       additional JMS parameters?
    2. How to go about defining/setting up variables that will get their values from
       the sender message?
    Thanks & Cheers,
    Joe

  • How to handle german characters in case of Outbound JMS interface

    HI all,
           I am doing an interface which is an outbound JMS interface where the message from MQ and uploading it to a file server. The message contains german characters, JMS adapter while converting the message from binary format to XI message format is not able to handle that. So where can we have the option to change the encoding type.

    Hi RamaKiran,
    chk out his link
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/405a83e3-0132-2a10-d3ad-a94a604a0469
    /people/thomas.jung3/blog/2004/07/13/bsp-150-a-developer146s-journal-part-vii--dealing-with-multiple-languages-english-german-spanish-thai-and-polish
    http://help.sap.com/saphelp_nw04/helpdata/en/7d/49ae0771924cf4a1fc7e2af7b2e18c/frameset.htm
    Regards
    Sampath

  • How to access JMS headers in a WLI workflow

    I'm posting XML messages using JMS to the WLI EventQueue
    I would like to access the JMS headers so that I can used
    the JMSReplyTo field to specify the queue where I wish WLI
    to post the result to.
    Is there anyway in WLI I can acccess the JMS headers?

    Robert,
    To amplify Giora's response, tn the workflow Start Node that
    is trigged by receipt of your message, store the reply to
    queue in a workflow variable as such:
    EventAttribute("JMSReplyTo")
    Giora Katz-Lichtenstein wrote:
    Hi Robert.
    You surely can do so if you look it up in the WLI API. Still I am not sure this
    is the right approach. I think you should consider defining a workflow variable
    storing the name of the reply to queue to which you want to send the response
    back.
    Giora
    "Robert Towler" <[email protected]> wrote:
    I'm posting XML messages using JMS to the WLI EventQueue
    I would like to access the JMS headers so that I can used
    the JMSReplyTo field to specify the queue where I wish WLI
    to post the result to.
    Is there anyway in WLI I can acccess the JMS headers?

  • Outbound JMS adapter with fx example

    When I wire outbound jms adapter as a listener for the spreaderOut
    <wlevs:stream id="spreaderOut" manageable="true">
    <wlevs:listener ref="outboundJmsAdapter" />
    </wlevs:stream>
    I get a error in instantiation of the outbound jms adapter using the factory. Although a create instance method exists it gives me an error as follows:
         at java.lang.Thread.run(Thread.java:595)
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'outboundJmsAdapter' defined in OSGi res[META-INF/spring/com.bea.wlrt.example.fx-context.xml|id=127|symName=fx]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: No matching factory method found: factory method 'createInstance'
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:448)
    The adapter factory configuration is as defined in the adapter spring configuration.
    <bean id="outboundJmsAdapter" class="com.bea.wlevs.example.jms.outbound.OutboundMessageAdapter" factory-method="createInstance">
              <constructor-arg value="sample.outbound" />
              <constructor-arg ref="wlsjmsQueueConnectionFactory"/>
              <constructor-arg value="JMSQueueConnectionFactory01" />
              <property name="destinationName">
                   <value>JMSResponseQueue01</value>
              </property>
              <property name="messageType">
                   <value>text</value>
              </property>
    </bean>
    How do I resolve this?

    When I wire outbound jms adapter as a listener for the spreaderOut
    <wlevs:stream id="spreaderOut" manageable="true">
    <wlevs:listener ref="outboundJmsAdapter" />
    </wlevs:stream>
    I get a error in instantiation of the outbound jms adapter using the factory. Although a create instance method exists it gives me an error as follows:
         at java.lang.Thread.run(Thread.java:595)
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'outboundJmsAdapter' defined in OSGi res[META-INF/spring/com.bea.wlrt.example.fx-context.xml|id=127|symName=fx]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: No matching factory method found: factory method 'createInstance'
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:448)
    The adapter factory configuration is as defined in the adapter spring configuration.
    <bean id="outboundJmsAdapter" class="com.bea.wlevs.example.jms.outbound.OutboundMessageAdapter" factory-method="createInstance">
              <constructor-arg value="sample.outbound" />
              <constructor-arg ref="wlsjmsQueueConnectionFactory"/>
              <constructor-arg value="JMSQueueConnectionFactory01" />
              <property name="destinationName">
                   <value>JMSResponseQueue01</value>
              </property>
              <property name="messageType">
                   <value>text</value>
              </property>
    </bean>
    How do I resolve this?

  • Class Not Found: com.bea.wlevs.adapters.jms.api.OutboundMessageConverter in Outbound JMS Converter

    OEP 12.1.3
    Following the instructions in 4 Adapters (12c Release 1 (12.1.3)) I have created a custom message converter bean for my Outbound JMS Adapter (I had to add the JAR file com.bea.wlevs.adapters.jms_12.1.3.0_0.jar from OEP_HOME\oep\modules to my project to make the code compile). However, upon deployment, I ran into a class not found exception:
    <Sep 15, 2014 7:17:19 PM CEST> <Error> <org.springframework.osgi.extender.internal.activator.ContextLoaderListener> <BEA-000000> <Application context refresh failed (OsgiBundleXmlApplicationContext(bundle=CreditCardTheftDetection.AirportCreditCardTransactionProcessing, config=osgibundle:/META-INF/spring/*.xml))
    java.lang.NoClassDefFoundError: saibot.airport.security.prevention.jms.SuspectedCreditCardEventConverter not found from bundle [CreditCardTheftDetection.AirportCreditCardTransactionProcessing (CreditCardTheftDetection.AirportCreditCardTransactionProcessing)]
        at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:112)
        at org.springframework.osgi.util.BundleDelegatingClassLoader.loadClass(BundleDelegatingClassLoader.java:156)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
    Caused By: java.lang.NoClassDefFoundError: com/bea/wlevs/adapters/jms/api/OutboundMessageConverter
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
    Caused By: java.lang.ClassNotFoundException: com.bea.wlevs.adapters.jms.api.OutboundMessageConverter
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    I have tried adding the JAR file (com.bea.wlevs.adapters.jms_12.1.3.0_0.jar) to my deployment JAR. That did not make any difference.
    Does anyone know why this class OutboundMessageConverter is not found - and more importantly: what I can do to make it available in the run time?
    thanks.
    Lucas

    To make a package available to your application at runtime for OEP, you will need to add it to the application's MANIFEST.MF file to the Import Package section (since the OEP server is OSGi-based). There's no need to supply a version number, you can just enter the package name (e.g.)
    com.bea.wlevs.adapters.jms.api,

  • Setting HTTP request headers

    Who can tell me how to set HTTP request headers,for example ,If-Modified-Since,i only know how to get If-Modified-Since in servlet and use it.

    Hy,
    Headers are provided by the Browser you use. He controls the Content of it, eg. the accepted File types, the Browser name and type, HTTP Version used, ...
    You can, however, add your custom Headers with the addHeader Methods in HttpServletResponse. Then, you can read them out on the Client, eg.
    using Jsp, and react on the Client based on the given values.
    Best regards
    jherunter

  • String JMS Headers from TextMessage inside Message Driven Bean

    You get TextMessage inside onMessage(..) method of Message Driven Bean.
    When you do toString() on the textMessage instance, at first, you get JMS headers. After that only, you get your actula message that you put in the queue.
    I can always strip out the headers by String parsing. However, is there an elegant way (WebSphere Server Configuration, or MQ configuration, or JMS API) to remove JMS headers from the message so that I only get the actual message and no header?
    Hearder is like:
    JMS Message class: jms_text
    JMSType: null
    JMSDeliveryMode: 1
    JMSExpiration: 0
    JMSPriority: 0
    JMSMessageID: ID:414d5120514d444f43444141202020204377126c20001a01
    JMSTimestamp: 1132259105100
    JMSCorrelationID:null
    JMSDestination: null
    JMSReplyTo: null
    JMSRedelivered: false
    JMS_IBM_PutDate:20051117
    JMSXAppID:
    JMS_IBM_Format:MQSTR
    JMS_IBM_PutApplType:6
    JMS_IBM_MsgType:8
    JMSXUserID:clarkc
    JMS_IBM_PutTime:20250510
    JMSXDeliveryCount:1
    My actual message starts here after all the above headers ........

    You can get the message directly with getText() method. Following is the snippet of code.
    if (aMsg instanceof TextMessage) {
    TextMessage msg = (TextMessage) aMsg;
    String testMessage = msg.getText());
    Kishore.

  • How do I set up jms destination  of OSB Alert?

    According to the document description,a JMS destination URI in the format: jms://host:port/factoryJndiName/destJndiName. My jms is on a cluster, So, I Set this URI: jms://10.1.1.100:8001,10.1.1.101:8001,10.1.100:8002,10.1.1.101:8002/factoryJndiName/destJndiName.
    When the machine (10.1.1.100) was shutdown, the alert will error and says "can not find JMS destination".
    How do I set up jms destination? tks!
    Edited by: user12382989 on 2009-12-23 下午5:03

    Did you consider using JMS distributed destination for your use-case?
    http://download-llnw.oracle.com/docs/cd/E13222_01/wls/docs103/jms/dds.html
    Manoj

Maybe you are looking for

  • Teachers Pension (UK) retro process

    We have applied patch for Tiered contribution for teachers pension in UK legislation. In phase one, I made changes for deducting Teacher's pension and in second phase now I am trying to make changes for retro processing. I am following the readme.txt

  • JPA Entity persistance has strange behavior

    Hello all, Well first off I apologize if this is in the wrong place as I am not using J2EE but J2SE with JPA and Spring 2.0. My issue is very simple but also very strange and I am unable to diagnose the problem. What I have is a method that persists

  • NoClassDefFoundError when deploying

    Hello, when deploying my .ear file I get a "NoClassDefFoundError: BuchungDetailsBean" The BuchungDetailsBean is a JavaBean in a "office.war" file and is meant to be used in the session bean within a ejb-jar file. I already put a "class-path: Office.w

  • Some of my songs suddenly need to be located

    Hello Ive been using my iTunes for a few months now without a single problem. Two days ago I opened iTunes and suddenly some of my songs could not longer be located. A dialog box opened asking me if I would like to locate them myself, and I had no tr

  • Eggdrop for IRC on Intel Mac?

    I really want to run an eggdrop bot for IRC on my intel Mac Mini. I've been trying to find info on it but I can't seem to. Anyone on here know how to do this? Any help would be much appreciated.