Mbean that listen for jms queue messages

Hi to all,
          I must use a Jmx notification listener architecture to trap when a new message arrives (i must also handle the message content) in a weblogic jms queue.
          Do you know which mbean could help me to observe the new ariving message?
          In the javadocs i cant' find any useful mbean to do that..
          Thanks

Hi to all,
          I must use a Jmx notification listener architecture to trap when a new message arrives (i must also handle the message content) in a weblogic jms queue.
          Do you know which mbean could help me to observe the new ariving message?
          In the javadocs i cant' find any useful mbean to do that..
          Thanks

Similar Messages

  • Error while passing ODI variable in JNDI Url for JMS Queue XML

    Hi,
    Facing a weird problem while passing ODI variable in JNDI Url for JMS Queue XML.
    Below is the JNDI Url configured under ODI Topology:
    JNDI Url: t3://<host_location>?d=#TEST.SCHEMA_FILE&s=<schema_name>&JMS_DESTINATION=jms/<queue_name>
    where,
    #TEST.SCHEMA_FILE --> ODI variable storing xsd name and location
    Issue Description:
    If we restart ODI server then for the first run of any ODI interface using JMS Queue XML, it is unable to get the value for ODI variable present in JNDI Url (d=#TEST.SCHEMA_FILE).
    It throws error message saying: No XSD found
    Temporary Resolution:
    As a temporary fix if we hard-code and pass the value in that ODI variable as shown below, it will successfully go through.
    eg: JNDI Url: t3://<host_location>?d=C:\XSD\test.xsd&s=<schema_name>&JMS_DESTINATION=jms/<queue_name>
    Reverting it back to variable later will have no issues and subsequent run will succeed.
    But again anytime later if server is restarted then first run will have this issue.
    Want to have permanent fix for it.
    Any one having idea on it please share. Appreciate your help!

    What ODI version are you using? It could be related to the bug in the older version as described in support note Doc ID 1290326.1

  • 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

  • JMS Queue Messages not picked up.

    Hello,
    We are facing below issue frequently, any help in this regard would be highly appreciated.
    We have 2 MDB's listening to the a queue on WLS 8.1 SP2. We are using Message Selector to identify which of the 2 MDB's should pick up the message.
    The issue is that if too many messages are queued up, then the MDB at times doesn't pick them up, even when free instances of MDB are available in the Bean Pool.
    But if we restart the server then all the messages are picked up instantly. Server restart acts as some kind of Trigger for the Queued Messages to be picked up instantly.
    We have been trying to explore as to why this happens, but havent still resolved it.
    Any ideas would be appreciated.
    Thanks.
    Khyati

    Hello,
    We are facing below issue frequently, any help in this regard would be highly appreciated.
    We have 2 MDB's listening to the a queue on WLS 8.1 SP2. We are using Message Selector to identify which of the 2 MDB's should pick up the message.
    The issue is that if too many messages are queued up, then the MDB at times doesn't pick them up, even when free instances of MDB are available in the Bean Pool.
    But if we restart the server then all the messages are picked up instantly. Server restart acts as some kind of Trigger for the Queued Messages to be picked up instantly.
    We have been trying to explore as to why this happens, but havent still resolved it.
    Any ideas would be appreciated.
    Thanks.
    Khyati

  • Sevice Contract - Listener for Events Queue Issue

    Hi,
    The Listener for Events Queue in our Production environment ran very long, It took about 3+ hrs to complete the program. Is there any thing specific that we can check as part of RCA.
    Further there were 'library cache lock' found ... how this can impact the performance and how library cache lock works.
    Regards
    Tauseef E Ahmad

    Hi Team,
    i used the following code for recognizing the key events.
    String javaScriptKeyListener =
    " function keyListener() "
    +" { "
    +" alert(window.event.keyCode) ; } ";
    OAWebBean body = pageContext.getRootWebBean();
    if (body instanceof OABodyBean)
    ((OABodyBean)body).setOnLoad("onKeyPress = javascript:keyListener()");
    but it is not working as expected..
    Any suggestions ??
    Regards
    Sridhar

  • Creating data server for JMS Queues in ODI

    hi,
    I am trying to create data server for JMS Queues in ODI.
    I am getting following error:
    java.sql.SQLException: Cannot load connection class because of underlying exception: 'javax.jms.JMSException: Cannot find the Connection Factory (jms/QueueConnectionFactory) in JNDI'.
    To implement this, I am giving following parameters:
    JNDI driver : com.evermind.server.rmi.RMIInitialContextFactory
    JNDI url : ormi://localhost/default
    JNDI resource : jms/QueueConnectionFactory
    Please help.
    Thanks,
    Monika

    Hi,
    according to docs
    http://docs.oracle.com/cd/E23943_01/integrate.1111/e12644/hypersonic_sql.htm#ODIKM590
    i see
    JDBC Driver: org.hsqldb.jdbcDriver
    JDBC URL: jdbc:hsqldb:hsql://<host>:<port>
    could you modify
    JDBC Driver : org.hsqldb.jdbc.JDBCDriver
    JDBC Url : jdbc:hsqldb:hsql://localhost
    according to docs?
    Thanks

  • 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".

  • Getting jndi name for jms queue via jmx?

    All,
    I'm trying to write a utility that will do a 9.2-style message export against 8.1 I think I have it all figured out except that I don't know how to get the jndi name of a queue or topic via jmx. I'm using jmx to find queues and subscriptions that have messages waiting, then trying to connect to them to siphon off the messages. I can't just browse jndi for any queue I find because I also want to access the durable subscriptions, for which I need the client and subscriptions ids. Is there a way to map from the jms destination runtime mbean to the jndi name? The getDestination() method isn't supported (throws an exception.)
    thanks

    Hi John,
    You can get destination JNDI names by looking up their value in the JMX configuration mbeans rather than the runtime mbeans. The client-id and subscription-name are available on the JMSDurableSubscriberRuntime mbean.
    Regards,
    Tom

  • How to define transaction semantics for JMS Queues

    Hi,
    My scenario in Oracle Fusion Middleware 11gR3, SOA Suite, IDE: JDeveloper 11g is as follows:
    First). receive a message from QueueA, Second). Using the message, call a serviceABC and send the same message into QueueB.
    I created a syn-BPEL, configured two JMS Adapters(for accessing Queue A & B) and one webservice binding for calling serviceABC(Proxy service). Note: I created the two queues and a connection factory under JMS System Module. As two different external systems have to access QueueA and QueueB.
    Now, when I execute the BPEL and ServiceABC gets faulted, the message is gettings consumed from QueueA and the same message is getting produced in QueueB.
    My goal is to define a transaction semantics for my composite(syn-BPEL), such that, when ServiceABC or producing the message in QueueB fails. I retain the message in QueueA(basically, rolling back the message).
    Options tried so far: 1). Created a scope for the three operations and added a compensationhandler to it and .2). XA Connection Factory is Enabled. Result: no luck:( still message from QueueA is getting consumed where as per my goal it should get rolled-back.
    Please suggest your approach, I'll try out and post the outcome back.

    Whats your architecture? Are you running your app on an application server? If so, are you in a servlet or EJB? You should be able to get the application server to manage your transactions for you in that case e.g. wrap all the JMS calls in an stateless session bean and give it Required in its transaction attribute of deployment descriptor.
    If you're not on an application server, you need to get a transaction manager, either by putting your code in an app server ( with JBoss you can use its transaction manager without necessarily having to use EJBs or Servlets, but thats not tested as thoroughly as the container managed transactions, and you will have to write some of the transaction code yourself ) or using a stand alone one.

  • OSB: Configuring business service for JMS Queue

    Hi,
    I want to produce messages into a JMS queue from OSB proxy service. I have created business service for the JMS queue. I also want to return Status code=200, Status Messgae=Success if the message is successfully inserted into the Queue. Kindly let me know how to do this.
    I tried using Service Callout to call the business service but it is not allowing me to use it because my business service is a one-way operation. So, i tried with Publish activity but my doubt is how and where to configure request payload for the publish activity. I could not find any.
    And how do i know if the message is successfully inserted so that i can send the Status=200 back to the calling proxy service.
    Kindly help in this regard.
    Thanks in advance.

    As suggested, use QoS=ExactlyOnce as RoutingOption within the Publish to business service. If there was any error it will send the flow to error handler where you can do a reply with failure to return HTTP status code=500 to the caller of the proxy service.
    If you do a reply with success the caller will receive HTTP status code=200

  • Proxy Service listening a JMS Queue

    HI all,
    I have a simple question.
    I have an web application that write a message into a JMS Queue.
    I wanna know if when a message arrives into a JMSQueue an ESB proxy can listen this queue, get the message and afterwards process it.
    Thanks and Regards!

    Hi,
    In ALSB 2.6 its very much possible. Create a proxy Service (Any XML Service) configure your endpoint to the queue. provide correct Url, Connection factory JNDI and queue JNDI to the endpoint.
    Hope this helps you.
    ~Anup

  • Any example for ENQUEUE_ARRAY for JMS compatible messages?

    Is there any examples of using ENQUEUE_ARRAY with messages that are compatible with JMS? either a VARRAY or NESTED TABLE of JMS content?
    I have an after insert trigger that propagates to JMS and in the for each row loop I'd much rather enqueue as a batch than for each individual message.
    It's hard enough getting JMS compatible content working where you are enqueuing just a single message but just what's involved to get this working with batches of JMS compatible messages?

    Hi prajithparan,
    Thanks for the response. I already looked at the link and a few other links in this forum that are related to array inserts/updates. However, I could not find answers to my specific questions. I am specifically concerned with the setup of parameters to the API calls (OCIBindByName and OCIBindArrayOfStruct) that fully reflects the two-dimensional nature of the array of structs that I am trying to insert.
    Moreover, I need to set the data type of the columns to be inserted as SQLT_STR. I think this data type requires the programmer to supply the length of the null terminated C strings as well. If we are inserting just one column, we can provide the length of each of the strings to be inserted into a VARCHAR2 column as part of a OCIBind call, for each of those columns.
    Since in an array insert, we are supplying multiple rows at the same time, how do we supply the lengths of strings to be inserted ? Should it be some form of two-dimensional array ?
    I could not get clear answers to these questions from either the Oracle documentation or the links on this forum. May be the answers are there and I am just missing them ?

  • Problem in configuring my driver for JMS Queues

    Hello,
    I'm working in connecting ODI to Sonic ESB.
    I have added all the drivers needed to ODI/Drivers and I continue to have an error.
    After searching in our ESB Doc i finally found why.
    I have to change a property of my Driver.
    I have tryied to change it in the Property Tab of the JMS Queue Data Server.
    with Key= "My Property Name" and Value= "the new Value needed"
    But there's no change, where can I do this ???
    Thanks for your answer,
    Cordially,
    BM

    In fact I have to change the domain in which I will be connected.
    On Sonic ESB by default it is nammed Domain1 and I want to change this name to SonicTestDomain.
    In java I just have to put :
    prop.put("com.sonicsw.jndi.mfcontext.domain", "SonicTestDomain");
    but in my Topology I'm using the Property Tab and in the first column nammed Key I put
    com.sonicsw.jndi.mfcontext.domain and on the other nammed Value I put SonicTestDomain.
    But when I put Test it always responding me :
    javax.naming.NamingException [Root exception is com.sonicsw.mf.comm.InvokeTimeoutException: Domain1.DIRECTORY SERVICE:ID=DIRECTORY SERVICE - listDirectories()]
    --> with Domain1 so the ghange of the property didn't do nothing.
    If someone can help me...

  • Tool for Viewing queue messages

    Does anyone know of any tools for viewing queue/topic messages - including any configuration details for the tool.
    Thanks in advance for your help.

    Two options using SQL. Others may exist.
    q_tab_name = value used in dbms_aqadm.create_queue for the queue_table parm
    select * from <q_tab_name>;
    select * from aq$<q_tab_name>;

  • MDB not listening to JMS Queue

    We are using OC4J 10.1.2 We are using JMS for queueing, the Queueing application sucessfully displays the JMS message id, but MDB is NOT listening to the JMS for some reason. We have verified the deployment config files etc. Can amy one help

    1 - It doesn't appear that targets were set for any of the administered WL objects. In WL, most administered objects must have a configured target so that WL knows which servers to run them on.
              2 - There's no need to specify a URL or initial-context-factory in the MDB. In your case, you're referencing JNDI objects on the MDB's local cluster (which, in turn, map to foreign references).
              3 - Note that URL and connection-factory have been re-specified in the foreign JMS server properties, and there 's a mix of delimiters ";" and " ". Normally, no JNDI props are needed except, depending on the use case, for security credentials.

Maybe you are looking for