Can JMS pick message based on Schema?

Hi All,
i am newbie to SOA and trying to use JMS to consume message based on Schema i.e. it should consume only relevant message based on its schema..
Scenario:
-> I am having multiple producers and multiple subscribers for same queue..
-> Multiple message with different message type will be produced in a queue and all consumers should pick their relevant messages based on their schema..
-> i.e. Producer A and Producer B will produce different messages types and Consumer B should pick message only from Producer B and should not consume message from Producer A, the message from Producer A should be available for Consumer A..
Note: I do not want to use Header Properties for the same..
Thanks in Advance

Hi,
As per comments i tried using JMS_BEA_SELECT
I used following Query in Message Selector of Consumer JMS:
JMS_BEA_SELECT('xpath','/ExpenseRecord/EmpId/text()') ='1'
Following Property is added in my.jca file..
<property name="MessageSelector" value="JMS_BEA_SELECT('xpath','/ExpenseRecord/EmpId/text()') ='1'"/>
but my JMS Consumer is not picking any message at all
Can anyone please tell how can i use JMS_BEA_SELECT to consume the mesage based on data Area..
MY Schema is as follows:
<?xml version= '1.0' encoding= 'UTF-8' ?>
<schema elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/pcbpel/samples/expense"
xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://xmlns.oracle.com/pcbpel/samples/expense">
<element name="ExpenseRecord">
<complexType>
<sequence>
<element name="EmpId" type="string" minOccurs="0"/>
<element name="Item" type="string" minOccurs="0"/>
<element name="Count" type="integer" minOccurs="0"/>
<element name="Cost" type="double" minOccurs="0"/>
</sequence>
</complexType>
</element>
</schema>
I am sending Folllowing Message
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
     <soap:Body xmlns:ns1="http://xmlns.oracle.com/pcbpel/samples/expense">
          <ns1:ExpenseRecord>
               <ns1:EmpId>1</ns1:EmpId>
               <ns1:Item>Item1</ns1:Item>
               <ns1:Count>2</ns1:Count>
               <ns1:Cost>20.0</ns1:Cost>
</ns1:ExpenseRecord>
</soap:Body>
</soap:Envelope>
But message is not getting consumed by my Consumer..
Thanks in Advance..
Edited by: 910947 on Jan 31, 2012 10:37 PM
Edited by: 910947 on Jan 31, 2012 10:38 PM

Similar Messages

  • JmsAdapter issues-Pick message based on correlationid

    Hello,
    I'm experiencing an issue during picking the messages from AQ based on the JMSCorrelationID in Asynchronously.
    I've developed asynchronous BPEL services, which will post messages in AQ (Inbound), the same service will liston response from Out queue.
    Currently my service is consuming all messages, i want to consume only relevant response message based on the correlation Id.
    Could you please advise me?
    Regards,
    Paddy.
    Edited by: user8725842 on Feb 22, 2012 4:44 PM

    Replied in
    Oracle JMS Adapter - Bpel Pick message from AQ based on the correlationId?

  • How can we pick Message ID at runtime in message mapping?

    Hi Experts,
    I am working on a file to file Scenario.
    Lets say I have a Field called SEQ_NO at target.
    I want to populate it this with Message ID (MONI one) at runtime.
    Is it possible? If Yes, How can we do this?

    Hi,
    No It is not working fine.
    Inside TEST----
    > Parameter Tab< I had input MESSAGE_ID Against MessageId.
    After that I run It, Got the error as Below:
    17:48:17 Start of test
    Runtime exception during processing target field mapping /ns0:MT_BANK_CUST_DET/File_Out/Header/SEQNO. The message is: Exception:[java.lang.StringIndexOutOfBoundsException] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@6ec66ec6] com.sap.aii.mappingtool.tf3.MessageMappingException: Runtime exception during processing target field mapping /ns0:MT_BANK_CUST_DET/File_Out/Header/SEQNO. The message is: Exception:[java.lang.StringIndexOutOfBoundsException] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@6ec66ec6].
    It is possible to get MESSAGE ID which we get in MONI for every message pass throught XI in message mapping itself?
    Regards
    Pradeep

  • Can JMS Message be filtered dynamically based on the JMS Header variable

    Hi All,
    We have a requirement to filter messages from an MQ (Queue) using the JMS Adapter.
    There is only one subscriber to this Queue.
    Can we use the Message Selector option using the same subscriber to pick different messages based on the context set.
    For example I have two BPEL instances running for the same BPEL process and both of them have to read messages from the same MQ Queue, say SampleQueue.
    The first BPEL instance need to pick the messages when JMSpriority = 1
    The second BPEL instance should pick the messages when JMSpriority = 2
    Is this possible? As the Message Selector in the examples given is expecting a literal on the right side of the expression.
    Ex : Country='UK' Color='Green' etc
    To put the question in a different way, can the right side of the expression in a message selector be a BPEL variable?
    Thanks

    Hi
    I have the same question. Basically, I want to match my response message with the request message. I am putting in an id in JMSCOrrelationID in the request. The applciation that send the response put the COrrelationId, I sent into the JMSMessageId. But now, I want to correlate my request and response? What is the best way to do this in BPEL?
    Can the right side be a variable? I want to say JMSMessageID = 'ID: ' + JMSCorrelationId.

  • Oracle JMS Adapter - Bpel Pick message from AQ based on the correlationId?

    Hello,
    I'm experiencing an issue during pricking the messages from AQ based on the JMSCorrelationID in Asynchronously.
    I've developed asynchronous BPEL services, which will post messages in AQ (Inbound), the same service will liston response from Out queue.
    Currently my service is consuming all messages, i want to consume only relevant response message based on the correlation Id.
    Could you please advise me?
    Regards,
    Paddy.

    Thanks MaShek for your replay,
    During process invocation I've generated guid and set this value to JMSCorrelationID property which will set as message corrlationID, same JMSCorrelationID coming in response as well, I've set on message property same JMSCorrelationID which I set in invocation.
    If same message response comes then the pick activity is working fine that means consumed message and correlation correctly, but other messages also consuming and then rejecting message. I want to restrict this.
    Only relevant correlationid messages need to pick and process.
    If any suggestions appreciated.
    Note: I'm using Jdev11.1.15,
    Regards,
    Paddy

  • Polling messages based on priority in BPEL using JMS adapter

    Hi All,
    Is it possible to poll the messages based on the priority in BPEL using JMS adapter?
    I could set the priority for the messages but while polling it is picking the messages in FIFO(First in First out) order. But I want the messages to be picked on priority.Any help is appreciated.

    Do you only want to pick up messeges with a certain priority? So anything larger than say priority 2?
    You can try this: Oracle JCA Adapter for JMS - 11g Release 1 (11.1.1.5.0)
    Message SelectorThis field is also optional. It filters messages based on header and property information. The message selector rule is a Boolean expression. If the expression is true, then the message is consumed. If the expression is false, then the message is rejected.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')

  • Is JMS adapter can handle text message ?

    Hi all,
    In my scenario we have to take the data from Mainframe, CIS the data will come may in the form of text. If the data comes with text format ,is our JMS (DB2 drivers) can handle the messages in queue if yes is there any explicit configuration need to done. Till now we did message processsing of xml files but if the queue contains text message how to handle if it is not possible what procedure need to do any adpater module we have to write explicitly can some body explain?

    Hi,
    Refer these links
    http://static.springframework.org/spring/docs/2.5.x/reference/jms.html
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710
    http://help.sap.com/bp_bpmv130/Documentation/Planning/XIUnicodeGuide030411.pdf
    http://help.sap.com/saphelp_nw04s/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a05b2347-01e7-2910-ceac-c45577e574e0
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/482aae19-0301-0010-3485-8efd618818d0
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/604e2b64-e689-2910-64b3-ffd650f83756
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/00982670-748c-2a10-3985-cdd42fb43e50
    and also blogs
    Triggering XI Alerts from a User Defined Function
    How to send any data (even binary) through XI, without using the Integration Repository
    Regards,
    Surya

  • Will Location based reminders work on ios 6 for the IPad 3 I keep getting a message that siri can't do location based reminders on this device any help please

    Will Location based reminders work on ios 6 for the IPad 3 I keep getting a message that siri can't do location based reminders on this device any help please

    Have they called you back? I have opened a similar support case too today, they does not know what to do and they will speak with some engineer, but now that I have found this post...I think we just have to wait for a new minor release...anyway our devices (2 and the new if cellular) must be supported http://support.apple.com/kb/HT4970

  • Hi, I am a beginner. Can anyone tell me how to detemine the servant area size of a message based controlle

    r. I am trying to use viOut16 to the data low register with 0xCEFF, 'Read Servant Area'command. I am waiting on the read ready/write ready bits of the response register but the write ready bit is never 1! The device I am writing to is an E8491B. Thank you.code section (variables left out!, no error handling incl.):
    #define MSG_DESCR "VXI0::0::INSTR"
    #define RESPONSE 0x0a
    #define DATA_LOW 0x0e
    #define READREADY 0x0400
    #define WRITEREADY 0x0200
    #define TIMEOUT 300
    int main( void )
    status = viOpenDefaultRM(&defaultRM);
    if(status < VI_SUCCESS)
    printf("viOpenDefaultRM error : 0x%04x\n", status);
    return -1;
    status = viOpen(defaultRM, MSG
    _DESCR, VI_NULL, VI_NULL, &instr);
    if(status < VI_SUCCESS)
    printf("viOpen error : 0x%04x\n", status);
    return -1;
    status = viSetAttribute(instr, VI_ATTR_TMO_VALUE, 1000);
    viIn16(instr, VI_A16_SPACE, RESPONSE, ®);
    while((reg != WRITEREADY) && (timeoutCnt < TIMEOUT))
    viIn16(instr, VI_A16_SPACE, RESPONSE, ®);
    reg = (WRITEREADY & reg);
    timeoutCnt++;
    if(timeoutCnt >= TIMEOUT)
    status = viClose(instr);
    status = viClose(defaultRM);
    return 0;
    printf("'Read Servant Area' command\n");
    viOut16(instr, VI_A16_SPACE, DATA_LOW, 0xceff);
    viIn16(instr, VI_A16_SPACE, RESPONSE, ®);
    timeoutCnt = 0;
    while((reg != READREADY) && (timeoutCnt < TIMEOUT))
    viIn16(instr, VI_A16_SPACE, RESPONSE, ®);
    reg = (READREADY & reg);
    timeoutCnt++;
    if(timeoutCnt >= TIMEOUT)
    status = viClose(instr);
    status = viClose(defaultRM);
    return 0;
    viIn16(instr, VI_A16_SPACE, DATA_LOW, ®);
    printf("'Read Servant Area' command contents : 0x%04x\n", reg);
    return 0;

    r. I am trying to use viOut16 to the data low register with 0xCEFF, 'Read Servant Area'command. I am waiting on the read ready/write ready bits of the response register but the write ready bit is never 1! The device I am writing to is an E8491B. Thank you.Here are a couple of ideas that we can try.
    1.Try some sample code of simpler ways of communicating with the board. There are some good example that you can search for on the NI webpage. Here are some links for examples in LabVIEW and C for performing message based reads and writes using viIn and viOut. It's not exactly the same, but it is very very similar.
    http://zone.ni.com/devzone/conceptd.nsf/webmain/A69FB1619075695886256BDD0068C1CE?opendocument
    http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B123AE0CBAC4111EE034080020E74861&p_node=DZ52409&p_source=External
    http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3DE3556A4E034080020E74861&p_node=DZ52409&p_source=external
    2. Another option is to use NI-Spy to troubleshoo
    t your VXI module. See the following link for more info. http://www.ni.com/support/vxi/spy/spy.htm
    3. I think the best place to find support on this module would be with Agilent, the manufacturer of this board.
    Hope this helps!!

  • What causes javax.jms.JMSException: Can't publish message: Server running low on memory?

    I'm trying to debug a problem with an application running under
              Weblogic 5.11p11, Solaris 2.7. JMS has a JDBC backing store.
              The application runs fine unless we keep it under severe high load for
              a relatively long period of time (say a couple of hours) without
              giving it time to "breath". Then, we start getting these JMS
              exceptions: javax.jms.JMSException: Can't publish message: Server
              running low on memory
              I initially thought this was a GC problem: i thought the GC thread
              wasn't able to "catch up" because the server utilization was high.
              However, when i display Runtime.freeMemory() at the point where i get
              this JMSException, i can see that there is about 16MB (out of 64MB
              totalMemory) of allocatable memory. So it isn't really running out
              of memory!
              I'd appreciate any insights, pointers, etc., about this problem.
              Thank you in advance.
              glauber
              

    JMS 5.1 prevents new messages if the server as at 75% utilization. I think (not sure)
              that this can be turned off if desired, but I would not recommend doing so, as this feature prevents
              JMS messages from "hogging" all of the memory.
              Tom
              glauber wrote:
              > Does the JMS server use a separate pool of memory, or does it share
              > the same Java heap? If it's a separate pool, how can it be set up?
              >
              > glauber
              >
              > [email protected] (glauber) wrote in message news:<[email protected]>...
              > > I'm trying to debug a problem with an application running under
              > > Weblogic 5.11p11, Solaris 2.7. JMS has a JDBC backing store.
              > >
              > > The application runs fine unless we keep it under severe high load for
              > > a relatively long period of time (say a couple of hours) without
              > > giving it time to "breath". Then, we start getting these JMS
              > > exceptions: javax.jms.JMSException: Can't publish message: Server
              > > running low on memory
              > >
              > > I initially thought this was a GC problem: i thought the GC thread
              > > wasn't able to "catch up" because the server utilization was high.
              > > However, when i display Runtime.freeMemory() at the point where i get
              > > this JMSException, i can see that there is about 16MB (out of 64MB
              > > totalMemory) of allocatable memory. So it isn't really running out
              > > of memory!
              > >
              > > I'd appreciate any insights, pointers, etc., about this problem.
              > >
              > > Thank you in advance.
              > >
              > > glauber
              

  • JMS Adapter is not picking messages from Topic ( AIA Error Notification)

    Hi All,
    One of my service is not picking messages from topic. This service was working in one environment but not working in this environment.
    I am using AIA 2.5 and using AIAErrorNotification.
    Service AIAAsyncErrorHandlingBPELProcess is enquing the message but consumer service AIAReadJMSNotificationProcess is not being invoked automatically.
    Whenever we are manually invoking this service, then this service is dequing messages from topic.
    Is any have any clue for this?
    Thanks in Advance.
    Edited by: vikky123 on Dec 22, 2010 1:46 PM

    Increase Log level for cube.activation to debug and check the logs by stopping & starting the activation agent(I mean Retire and activate the process) .. It should give a clue on what's happening..

  • AS2 Sender adapter..  How we can receive 2 messages from same partner??

    Hi all,
    I have to receive 2 AS2 messages from my partner like ORDERS and REMADV information.
    I kept Message Subject as * for both my AS2 Sender adapters.
    I configured both the scenarios and i ask my partner to send the messages and he got the error as
    "403 : FORBIDDEN" .
    But these two scenarios are working when i delete one scenario and run the other by keeping message subject as *
    I felt like the messages can be diffferentiated only with Message subject when we are dealing with AS2 adapters.
    Questions :
    Is there any option in AS2 sender adapter where we can differentiate the messages apart from Message subject because my partners are sending the messages without any message subject.
    Kindly let me know.. its urgent.
    Regards
    Seema.

    Hi Swarup,
    Thanks for the reply.
    I think you totally misunderstood my question.
    Here i will explain clearly..
    Sender Party : PartyA
    Sender AS2ID : A-AS2
    Recevier party: PartyB
    Receiver AS2ID : B-AS2
    PartyB will be receiving messages from PartyA.
    Say it is receving ORDERS and REMADV messages.Both are XML files.
    So PartyB will be configured with two complete new scenarios and 2 AS2 sender adapters to receive the messages.I kept Message subject as * in both the sender adapters.
    The messages are not coming in and clearly there is a confilct in selecting the correct communication channel.
    Actually i read in one of the thread that the messages which are coming to XI will be picked up based on two things:
    1) AS2 ID of the partner which is dicussed above and the second one is
    2) Message subject
    But from my partners we are receving the messages without any Message subject.
    So in this situation how we can differentiate each messages and how the messages will go to correct communication channel.??
    Regards
    Seema.

  • JMS C API based on Queue

              Hi,
              I have downloaded jmscapi.zjp,and tested TopicExample.c on Windowns,it is OK.
              when I try to test Queue(I just modify "topic" words in TopicExample.c to "queue"),and
              compile, I find it can not work(without any result). Who have any exerpience
              about JMS c client based on Queue, or source code?
              Thanks,
              xuyiliang
              

    The name you pass into JmsContextCreate as the uri gets put into the
              InitialContext hashtable with the key PROVIDER_URL. Hence, the name here
              will work exactly the same as if you put the same string into the Hashtable
              you used in a Java client to get the initial context. The JMS C Client
              therefore supports clusters to the exact extent that a normal Java client
              does. Perhaps you could post some of your code, but my guess is that this
              is some sort of environment issue...
              Sorry I could not be more helpful,
              John Wells (Aziz)
              [email protected]
              "xuyiliang" <[email protected]> wrote in message
              news:[email protected]...
              >
              >
              > Thanks, I have passed the test.It seems to compiler env cause.
              > Another problem,we configure two managed server to a cluster, and
              distribute destination.
              > For Java JMS client, we can send to message to cluster( sometimes first
              server,
              > sometimes another server).but for C client ,we find to send messge only on
              a server.(We
              > have configure
              > IP:port-> IP1:portt1,OP2,port2.
              > Does anyone know how to solve it? C client should also support JMS
              cluster.
              > BR,
              > xuyiliang
              >
              > "John Wells" <[email protected]> wrote:
              > >Could you post your code? Also try setting JMSDEBUG=y, it will provide
              > >additional debugging information.
              > >
              > >John Wells (Aziz)
              > >[email protected]
              > >
              > >"xuyiliang" <[email protected]> wrote in message
              > >news:[email protected]...
              > >>
              > >> Hi,
              > >> I have downloaded jmscapi.zjp,and tested TopicExample.c on
              Windowns,it
              > >is OK.
              > >> when I try to test Queue(I just modify "topic" words in TopicExample.c
              > >to
              > >"queue"),and
              > >> compile, I find it can not work(without any result). Who have any
              > >exerpience
              > >> about JMS c client based on Queue, or source code?
              > >> Thanks,
              > >> xuyiliang
              > >
              > >
              >
              

  • JMS (Java Message Service)

    I have to redesign and implement a system. The existing system is a server which allows connections from clients all over the world. Clients have an application installed on their machine that allows them to connect to the server and send and receive information. The server receives this information manipulates it and sends it back to the clients.
    This is a short description of the system but in reality the system carries out many complicated operations.
    The communication between the clients and the server is done using sockets and TCP/IP. At the moment the clients connecting to the system are not that many but they are expected to multiply over the next few months.
    I am responsible to redesign the system to make it more reliable and more sophisticated beacause at the moment it is not. I have been advised that JMS technology is the way to go but from the tutorials and the books I've read it seems to me that it is too much for the system i want to build.
    Can you please give me some information about when JMS is good to be used and if in my case it will benefit the design of my new system?
    Can JMS be used without the use of the Java Application server?
    Can JMS be used with J2SE (Standard Edition)?
    Thank you for your time

    Could you possibly provide me with any links on how to do what I want to do?I would get started by experimenting with either activemq or jboss
    http://www.activemq.org
    http://www.jboss.com
    ActiveMQ is a JMS Provider, JBoss (as I'm sure you know) is a full blown app server.
    You may also want to check out
    http://www.enterpriseintegrationpatterns.com/
    At the moment the components of the system use sockets and communicate by sending straight String messages. I was advised that JMS is going to make the system a lot better.You can still parse strings using JMS, but you can also pass Serializable java objects. This is not always the most practical solution because you need to manage the distribution and versioning of the classes (and any dependent jars) for each of your clients. An alternative is to marshal / unmarshall your objects to/from XML, then you only need to manage the distribution and versioning of a schema.
    Other reasons to use JMS are
    1. JMS messages are transactional and can even take part in distributed transactions
    2. JMS messages are recoverable (they can be persisted to files or database depending on your provider), so even if your JMS provider crashes, "in-flight" messages won't be lost
    3. JMS messages can be asynchronous

  • JMS Server Message Buffer Size & Thresholds and Quotas settings

    On WLS10MP1,
    For persistent messages:
    1.Does "JMS Server Message Buffer" setting serve the same purpose as "Bytes Threshold High" under Threshold ?
    2.If no, can someone explain the difference pls.
    Many thanx,

    Message Buffer Size relates to the number of message the JMS server keeps in the memory. The value of this determines when the server should start paging the message out of memory to a persistence store. So this is directly related with the memory/storage issue and the size of messages.
    Bytes Threshold High relates to the performance of the JMS server. When this limit is reached JMS server starts logging the message and may even instruct he producer to slow down the message input.
    So the if you get Bytes Threshold High messages that means you should check on your consumer (MDB who is picking up messages from the que), and try to increase its performance.
    However if your Message Buffer Size is crossing limits then you should think of increasing the momory so that more messages can be kept in memory and disck IO can be reduce.
    Anyone wants to add something more to it?

Maybe you are looking for

  • Ovi Store and Wifi in Nokia E7

    When I try to download something from the Ovi Store using Wifi and the data connection from network off I get an error when I press download/buy. I don't get the error when data is turned on. This is normal or I have to reinstall Belle? Greetings fro

  • Apple remote no longer works under 10.6.2 on Mac Mini

    Have just updated my Mac Mini to 10.6.2, only to find that it no longer recognises the white Apple remote at all. I have tried both a paired remote and an unpaired remote. I have even tried pairing the unpaired remote. Nothing works. The Mini simply

  • Problem with currency fields in alv while editing

    hi guys, while creating the editable fields and saving the data in database i have problem with currency(price fields), when iam entering 10000 it is storing as 100.00 in database but i want to store it as 10,000.00 can any one help me .... it is urg

  • Sort the table values in asc or desc

    I have a table named date_table contains two columns (Term,multiplier) with values given below Term Multiplier 1 M 2 M 8 Y 15 D 2 Y 24 M 1800 D Values given above are term and multipiler.Means 1 M stands 1 month,15 D stands for 15 Days 2 Y stands for

  • Install Adobe Flash Player 9 via GPO

    Hi All, I am attepting to roll out Flash player 9 from an AD GPO and am getting the following errors from rsop.msc Primary install:- 20 August 2008 10:34:51 Software Installation did not complete policy processing because a system restart is required