Correlation for JMS Messages possible? JMSCorrID in JMSHeader not accepted

Is Correlation for communication over JMS messages possible?
If I define the JMSHeader field "JMSCorrelationID" in a correlation set ("as usual") then I get
compiler errors:
Error ORABPEL-10036: invalid correlation set
BPEL seems not to accept JMSHeader fields for correlation but only fields from the actual payload msg.
Is this true?
Is there soemwhere a guide on how to correlate JMS messages?
Thank you
Michael

you can use the "Message Selector" on the JMS adapter to filter to achieve that;
here is extract from oracle help document
Message Selector
Specify filtering logic that enables you to receive messages that match a certain criteria. Enter an expression between 1 and 255 characters in length. Use SQL92 syntax in this field. The JMS server uses this criteria to filter messages received by this consumer. The message selector works with variables defined in standard JMS headers and user-defined properties. You cannot use variables or elements that are in the payload of the message.
For example, you can enter logic such as: JMSPriority > 3. Based on this, messages with a priority greater than 3 are consumed; all other messages are rejected. JMSType = 'car' AND color = 'blue' AND weight > 2500 Country in ('UK', 'US', 'France')
it's got some limitations but works fine for our requirements so far...

Similar Messages

  • Adapter Status Error :  Error in creating message ID map for JMS message:

    Currently in the SAP XI 3.0 JMS Adapter, I am receiving the following error
    Error in creating message ID map for JMS message:
    ie. Error while processing message 'de8265f6-c864-4479-1137-9bab17b78b3b';  detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Error in creating message ID map for JMS message: ID:c3e2d840d8d4d7f14040404040404040c44f8e2213630b01 at com.sap.aii.adapter.jms.core.channel.filter.InboundDuplicateCheckFilter.filter(InboundDuplicateCheckFilter.java:103)
    Although I am receivng this error, when I check the details of the message processing, all steps are successful and the message is set to status : DLVD
    Audit Log for Message: de8265f6-c864-4479-1137-9bab17b78b3b
    Time Stamp     Status     Description
    09.06.2009 13:27:24     Success     New JMS message with JMS message ID ID:c3e2d840d8d4d7f14040404040404040c44f8e2213630b01 received. The XI message ID for this message is de8265f6-c864-4479-1137-9bab17b78b3b
    09.06.2009 13:27:24     Success     JMS message converted to XI message format successfully
    09.06.2009 13:27:24     Success     RRB: entering RequestResponseBean
    09.06.2009 13:27:24     Success     RRB: suspending the transaction
    09.06.2009 13:27:24     Success     RRB: passing through ...
    09.06.2009 13:27:24     Success     RRB: leaving RequestResponseBean
    09.06.2009 13:27:24     Success     Transform: using Transform.Class: com.sap.aii.messaging.adapter.Conversion
    09.06.2009 13:27:24     Success     Transform: transforming the payload ...
    09.06.2009 13:27:24     Success     Transform: successfully transformed
    09.06.2009 13:27:24     Success     Application attempting to send an XI message synchronously using connection JMS_http://sap.com/xi/XI/System.
    09.06.2009 13:27:24     Success     Trying to put the message into the call queue.
    09.06.2009 13:27:24     Success     Message successfully put into the queue.
    09.06.2009 13:27:24     Success     The message was successfully retrieved from the call queue.
    09.06.2009 13:27:24     Success     The message status set to DLNG.
    09.06.2009 13:27:25     Success     The application sent the message synchronously using connection JMS_http://sap.com/xi/XI/System. Returning to application.
    09.06.2009 13:27:25     Success     The message was successfully transmitted to endpoint http://sapxia.swets.nl:8000/sap/xi/engine?type=entry using connection JMS_http://sap.com/xi/XI/System.
    09.06.2009 13:27:25     Success     The message status set to DLVD.
    Not sure why this is occurring.......

    No, not using correlation id.
    I was able to resolve the issue on this queue by changing the following setting
    Under the PROCESSING tab, under XI SETTINGS
    Time period for Duplicate Check for EO(IO) (secs) it was set to 86400
    I have changed this to 300 seconds and the adapter has now gone green.
    BUT......
    That said, I have the exact scenario on another sender JMS channel set to 300 seconds and it exhibits the same issue.
    correlation settings:
    Set XI message id  to  = GUID
    Set Xi conversation

  • Correlation for JMS Queue

    Hi,
    I have following scenario :
    Queue1
    Bpel1 -> Writes Schema A to Queue1
    Bpel2 -> Writes Schema B to Queue1
    Bpel3 -> Reads from Queue1
    I need that Bpel3 should read only Schema A from Queue and not Schema B.
    So how will i define the correlation between Bpel1 & Bpel 3.
    I tried fetching the processId in Bpel 1 and add it to Invoke property jca.jms.JmsCorrelation_id, but was not able to set the same in Bpel3.
    Any help/spec in setting up correlation for JMS Queues is highly apreciated.
    Thanks !!

    In standard JMS, an application can specify a correlation-id on per message basis using the javax.jms.Message API, and then specify a filter (a "selector") when creating a consumer via the javax.jms.Session API, but, in general, it is usually better to use a separate dedicated queue per business process (simplifies management, simplifies coding, improves perf, etc), or, if that's not an attractive option, to use a single MDB to dispatch messages from the same queue to different business processes. I don't know the specific steps to do the same in BPEL.
    You might want to try posting to the BPEL forum at BPEL
    Hope this helps,
    Tom

  • My inbox used to show the sender for each message and now it does not...how do I get it back to where it was?

    My inbox used to show the sender for each message and now it does not...how do I get it back to where it was?

    Right click the heading at the top of the message list and select From from the list of options.

  • JES Messaging Server 6.0 will not accept mail alternate address

    JES Messaging Server 6.0 will not accept mail alternate address
    I have installed the Sun ONE Messaging server 6.0 as part of an evaluation of the Java Enterprise System. This was installed along with Directory Server 5.2 and Identity Server 6.1. During the installation I created a top level organization (o=internet) knowing that I would want to create multiple email domains within it and a default domain. After the installation was complete I used the User Management Utility (/opt/SUNWcomm/bin/commadmin) to create some users within the default domain. I provided each user with a primary email address ([email protected]) and an alternate email address (mailAleternateAddress = [email protected]).
    In testing the system I find that the Messaging Server will not accept messages sent to the alternate email address whether sent from the same server (via Messenger Express) or from an external server. It returns the error message: 550 5.1.1 unknown or illegal alias.
    In attempting to trouble shoot this problem I have watched the Directory Server's access log when such an email is sent. It shows a query using [email protected] even though the email message was sent to [email protected] In any event the DS finds the user, but the Messaging server rejects the message.
    [date_time] conn=120 op=11 msgId=12 - SRCH base="o=domain.com,o=internet" scope=2 filter="(mail=[email protected])" attrs="preferredLanguage mail mailEq
    uivalentAddress"
    [date_time] conn=120 op=11 msgId=12 - RESULT err=0 tag=101 nentries=1 etime=0
    [date_time] conn=120 op=12 msgId=13 - SRCH base="o=internet" scope=2 filter="(&(objectClass=sunManagedOrganization)(|(associatedDomain=host.domain.com)(sunPreferredDomain=host.domain.com)))" attrs=ALL
    [date_time] conn=120 op=12 msgId=13 - RESULT err=0 tag=101 nentries=0 etime=0
    Any suggestions to eliminate this problem would be appreciated.

    Both the primary and alternate email addresses are the same as the domain of the user.
    Here is what I want to do. Email is sent to a primary email server (not this machine). Mail for some users stays on that server to be read and mail for other users is moved to a geographically separate server (the one in question) by specifying that the mail be forwarded to the specific host: [email protected] > [email protected]
    On this second server I want to host two (or more) independent email domains. I do not want one of the domains to be a subdomain of the other. So during the installation I used o=internet as the root suffix and then used a different default domain (representing one of the registered internet domains). After installation I used the commadmin tool to create a second domain so now I have what looks something like this:
    o=internet,
    __ou=People
    __ou=Groups
    __o=domain1
    ____ou=People
    ____ou=Groups
    __o=domain2
    ____ou=People
    ____ou=Groups
    I then created some users under domain1 and some under domain2 so one user's dn is:
    uid=user, ou=people, o= domain1.com, o=internet.
    Mail sent locally to user@ domain1.com gets delivered correctly, but sending to [email protected] does not.
    host2.domain1.com is the fully qualified domain name of the server.

  • We have 2 itouchs, we a separate itunes account for each one. We have one home computer to use them both on for syc and icloud, the icloud will not accept the 2 accounts?

    we have 2 itouchs, we a separate itunes account for each one. We have one home computer to use them both on for sync and icloud, the icloud will not accept the 2 accounts?

    Do you know what happens if you delete the icloud account from an iphone 4s?  Will it delete the pictures, documents, etc. from the phone, or just unlink the icloud from the phone?  I want to associate a different icloud account to the phone.

  • Since moving to iCloud, my mobileme email works ONLY on my iPhone, but not on my PC with Outlook.  I get an error message indicating the authentication is not accepted.  any suggestions?

    since moving to iCloud, my mobileme email works ONLY on my iPhone, but not on my PC with Outlook.  I get an error message indicating the authentication is not accepted.

    To anyone who has viewed this post and is having similar difficulties, the answer came on a different forum: I dragged & dropped the files from Mail to iCloud Drive. Opened them on my MB Air, they were saved in Templates and are now accessible across all my devices.
    Answer came from SGIll: Numbers templateshttps://discussions.apple.com/message/27505880#27505880Numbers templates

  • Ever since I updated to Yosemite my mac book pro keeps asking for Apple Id and password but will not accept them

    Ever since I updated to Yosemite my mac book pro keeps asking for Apple Id and password but will not accept them.  What can I do?

    Try the advice here. I had the same problem and it worked for me.
    You have to delete the "SC Info" folder from /Users/Shared. You will have to use Terminal to enable you to see this folder first. Make sure iTunes is not running when you delete the "SC Info" folder
    There is an article from Apple on this here. The "SC Info" folder contains iTunes authorization information.
    I did this two weeks ago and iTunes accepted by login. I haven't been asked for my AppleID or password since.

  • JMS/AQ: Setting properties for JMS message using PL/SQL

    I have created a procedure in PL/SQL that uses JMS messages, and now I need to include a property so that the subscriber can use a message selector to filter out unwanted messages. Is this possible using PL/SQL?
    A previous post said: "... But you can have properties in the message payload itself and also define selectors on the message content ...". But I looked at Sun's tutorial and there it said: "A message selector cannot select messages on the basis of the content of the message body."
    I have 300 different screens and messages apply only to one screen at a time. When the user is looking at screen 'A' I want him to only recieve messages that apply to screen 'A'. I thought I would do this with message selector, but is there any other way?
    Here is my code(borrowed from an earlier post)
    PROCEDURE ENQUEUE_JMS_MESSAGE AS
    BEGIN
    DECLARE
    Enqueue_options DBMS_AQ.enqueue_options_t;
    Message_properties DBMS_AQ.message_properties_t;
    Message_handle RAW(16);
    User_prop_array SYS.AQ$_JMS_USERPROPARRAY;
    Agent SYS.AQ$_AGENT;
    Header SYS.AQ$_JMS_HEADER;
    Message SYS.AQ$_JMS_TEXT_MESSAGE;
    Message_text VARCHAR2(100);
    BEGIN
    Agent := SYS.AQ$_AGENT('',NULL,0);
    User_prop_array := SYS.AQ$_JMS_USERPROPARRAY();
    Header := SYS.AQ$_JMS_HEADER( Agent, '', 'aq1', '', '', '', User_prop_array);
    Message_text := 'Message 1 from PL/SQL';
    Message := SYS.AQ$_JMS_TEXT_MESSAGE(Header, LENGTH(Message_text), Message_text, NULL);
    DBMS_AQ.ENQUEUE(queue_name => 'tstopic',
    Enqueue_options => enqueue_options,
    Message_properties => message_properties,
    Payload => message,
    Msgid => message_handle);
    END;
    END;
    -Christer

    Thanks for the answer. I managed to set the Correlation id and retrieve it using getJMSCorrelationID(). But I did not manage to use the MessageSelector on it. I have used the Topicbrowser which is not part of the JMS standard? I tried to enqueue the messages using Java too and tried to use the topicbrowser on both JMSCorrelationID and user defined properties withou success. Is there some special requirements of the TopicBrowser?
    Enumeration messages;
    oracle.jms.TopicBrowser browser =tsess.createBrowser(topic, "TS", "JMSCorrelationID = 'TST'");
    int count = 0;
    messages = browser.getEnumeration();
    if(messages.hasMoreElements())
    System.out.println("message"); //never executed
    dtxtmsg = (TextMessage)(tsub1.receiveNoWait()) ; //returns a message
    String corrID = dtxtmsg.getJMSCorrelationID(); //returns: TST
    Thanks for your help so far...it would really save my day if you have some ideas on this too!
    -Christer

  • How to stop and start MDBs to listen for JMS messages

    Hello! This might be more of an architecture question rather than a technical questing, but I post it here, in the lack of a better place...
    For several years I have been using Webster and Webster MQ to send messages back and forth to clients. The architecture for the middleware platform has been designed around the functionality of ListenerPorts. Listenerports is a Webster functionality that let you "stop" and start to listen to JMS messages for a given MDB either by admin console, or by JMX.
    The arhitecture we used was something like this :
    1.Client sends a persistent message to a queue. (order)
    2. An MDB pics up the order message, calls a SessionBean that "fronts" the IIOP back end system.
    This is quite "out of the box" architecture, but we used the Listenerports to solve a stability problem for our back end system.
    The backEnd system was quite unstable, so the EJB threw an exception (typically because of timeout or connection refused) back to the MDB.
    The Listenerport was "defined" to handle 3 errors before stopping, so the MDB resent the message twice before the listenerport automatically stopped. The nice thing about this feature was that the client could continue to send orders, and was not bothered when the back end system was down.
    When the backEnd system was up and running, we could start the listenerport and it was all back to normal state. We even had a start script that checked the state of the listenerport every 30 minute, and started it automatically if it was stopped, making the admin task of starting the MDB unnecessary..
    Now.. Why am I telling this story..
    I would like to know how this could be done using "clean" J2EE technologies..That is..Not using any technology that is not portable..
    I`m playing with glassfish at home, and it struck me that there is nothing in the J2EE spec that defines the functionality described above ? Am i missing something ?
    I Do not want to stop My application because the back end system is down? That is the only way (i know of) that i can "stop" to listen for messages..
    I can put all the messages on an error queue when the backbend system is down, but that would lead to more code just to handle the error messages. Maybe the easiest way to solve this is to "move" (programmatically) all messages from the error queue over to the "standard" queue every XX minute, but somehow that sounds "wrong"
    Can anyone give me some advice to how this problem situation should be solved ? I`m interested in the solution both from an architectural perspective and from a more technical perspective..
    Best regards
    Hans-Jacob Melby

    Breakpoints, whether normal or conditional, are just meant for debugging of your code.  I had the sense from your question that the pausing you want to do is a part of normal operation of your code.  I would NOT recommend using a breakpoint for that situation.  It would bring up the block diagram showing the breakpoint when it occurs.  A user besides the programmer would not know what to do in that case.
     Yes, both the inner and outer loops would have shift registers.
    Putting a case structure with a small while loop inside the "Pausing Case" is doable.  It just depends on what you are doing or waiting for while the program operation is "paused".

  • After downloading photoshop elements 12, the system started the install and asked again for the serial.  install process will NOT accept the serial #

    I purchased a software license for photoshop elements 12.  I started the process to download the software and provided the serial number on the download card.  Since the serial number provided was correct, the download started and completed.  Once installed the system started to install the software.  Again I had to supply the serial number.  This time the system will NOT accept the serial number.  I entered it again.  Not accepted.  I tried it again, this time with dashes.  Again the serial number is not accepted.  What do I do?

    Is there any message provided when serial number is not accepted?  If so, what does it say?

  • Having trouble signing up for verizon monthly wifi why will it not accept my phone number?

    We are trying to sign up for monthly wifi with verizon.  Why will it not accept our phone number?

    That's an issue you will probably need to take up with Verizon customer support.
    Regards.

  • HT1918 when i am entering credit card/payment details not getting accepted since it asks for billing address as unites States and not accepting an oman mobile number

    not able to buy product from apple store due to problems in having credit card information entered

    If you are not in the US then you can't use the US store - you need to be in the US with a US billing address to use the US store.
    If you are in Oman as your name implies then you can only use the Omani store - you have your region set to Oman ? And you've tried entering your Omani billing address ?

  • Why values selected for a h:selectOneMenu via keyboard are not accepted?

    Hi,
    I have a h:selectOneMenu in a jspx page. When i run the page on IE6 and I select a value using the keyboard, the value selected is not accepted. But when i run the same page on Mozilla Firefoz 1.5 and select a value through the keyboard it works..
    Can someone help me on how to get the value wen i select through the keyboard on IE6.
    Thanks
    Meenackshi

    Tell IE to use the Sun VM.

  • Need suggestion on  implementing JMS message error recovery

    Hi,
    Our application has a JMS topic where we publish application events. Now, there can be scenarios where the consumers cannot process the message due to some infrastructure issues and would error out. We need a way so that those messages can be reprocessed again later. we are thinking of the following design for JMS message error recovery
    1. Use a persistent TOPIC (this would ensure guaranteed delivery)
    2. Configure a error destination on JMS topic e.g a jms queue
    3. Have an error handling MDB listening to the Error destination. An error handling MDB would dequeue the errored messages from error destination and persist it to a Data base "error" table..
    4. Provide a mechanism to republish those messages to topic (e.g a scheduler or admin ui or a command line utility) .. The messages would deleted from database "error" table and published to topic again....
    A. Are there any issues with the above design which we need to handle?
    B. Are there any additional steps required in a Cluster environment with a distributed topic and distribute error destination? (our error mdb will have one-copy-per-application setting)
    B. From a performance angle, Is it OK to use persistent TOPIC ? Or will it better to persist the message to the db table and then publish it as a non persistent message ... ? (But i guess the performance should be more or less the same in both of these approaches)
    C. Are there any other recommended design patterns for error recovery of JMS messages
    Please advise.
    Regards,
    Arif

    Thanks Tom !
    We may not be able to go with the approach of delaying/pausing redelivery of the messsage because
    1. Pausing entire MDB approach: Our MDB application consumes messages generated by different producers and our MDB needs to continue processing the messages even if messages corresponding to one producer is erroring out
    2. Redelivery delay : This would only delay the retry of an errored message. But there would still be a problem if the message fails during all retries (i.e redelivery limit count). We don't want to lose this message. In our case, It is possible that a particular message cannot be processed due to unavailability of a third party system for hours or may be a day.
    Basically, i am looking on approaches for a robust and performant error recovery/retry framework for our application (refer details in my first post on this thread) while fully making use of all features provided by middleware (WLS). Please advise.
    Regards,
    Arif

Maybe you are looking for

  • Tabular form on table with no p.k

    hi all the question i'm about to ask is basic question on creating table , and as a result of that about tabular form i have table like this IND NUMBER(2) COMPANY NUMBER(5) CLM_NUM NUMBER(15) VERSION_NUM NUMBER(2) DATE_GET NUMBER(8) CAR_NUMBER VARCHA

  • Media in iWeb not showing photos in Photos library

    I recently upgraded to Mavericks on my iMac and am now attempting to load more photos to my iWeb website. As a result of Mavericks, my iPhoto library has been imported into the Photos library now and no longer show up in the Media panel of iWeb as th

  • N 65 Flash not working

    Can somebody tell me how to enable the flash on the camara on my N65. Thanks Andy

  • Apple mail showing wrong body in gmail (imap) messages

    I asked about this the other day and thought I had solved my own problem by rebuilding Mail. But it is persisting and becoming more than annoying. Does anyone know why this is happening suddenly and how to fix it? I have recently repaired permissions

  • Sun Fire X4100 - Serial redirection is very unstable.

    Dear all, I am having new troubles with X4100 hardware. I am setting up console serial redirection and it does not work properly. Here is what I am doing : - I set up the SP serial port speed to 115200 and commitpending to true. - I set up console re