Triggering MQ Queues using JMS

Hi
I want to associate a MQ trigger to a JMS queue. But as per JMS1.1 specification it stated that "JMS does not provide a mechanism for
triggering the execution of the client.
I came to know that using JMS interfaces and IBM MQ implementations, it is possible to do this.
Can anyone tell me, how can i do this.
Regards
Srinivas

Simple thing to do would be to write a JMS listener then call Runtime.getRuntime().exec("path_to_executable") from inside the onMessage() method.
There's probably a category 2 service pack for MQ that will do something similar without using JMS - try posting on mqseries.net

Similar Messages

  • How to forward message to two different queue using jms proxy service

    Hi all,
    In my project I need to listen to one jms queue then forward the messages to two different queue.
    Now I already made one proxy for listening to the queue then pass it to another queue using business service, It works.
    But how to forward the messages to two different queue in same flow process using one proxy and bs??
    or any other way?
    Really thanks in advance.
    Regards,
    Kahlil

    Hi,
    I have a MQ queue and i created a Proxy to listen to the queue , but i dont see any activity in OSB logs ..how do i knw if OSB proxy is polling that MQ ( mq is the transport protocol that i am using ) .
    Thanks
    Prarthana.

  • JNDI Newbe questions  : Connecting to MQSeries queue using JMS

    Hi.
    I'm trying to make a connection to a MQseries cueue using JMS and as I understand it I have to look some things up in a JNDI server.
    Right now I'm using the IBM Websphere test environment inluded in Visual Age for Java but later this aplication will be deployed on a Webphere 3.5 server.
    Question 1 : (code grabbed from an example)
    queueConnectionFactory = (QueueConnectionFactory)           jndiContext.lookup("QueueConnectionFactory");
    queue = (Queue) jndiContext.lookup(queueName);
    When i run an lookup on from my initial context I take it that it tries to search through the JNDI directory which lives within my Websphere Test environment. Ofcourse it doesn't find anything called "QueueConnectionFactory" so: What am I looking for here?
    I guess I want to find the MQseries server here right? Firstly I don't know what that one is called (is there a generic name?!) and second i suspect that the MQ server is not registrated in my local JNDI server...
    which lead me to Question 2 :
    Do I register a remote server in my JNDI directory OR do I try to connect to the real JNDI directry (that might have information on the MQ service) ?

    You are looking for the queue manager name in this case. You need a queue manager name and a queue name in you code, you also need define a queue manager and a queue in MQSeries. Then in your WebSphere Test Environment (Or run MQSeries command when you deploy this application, refer to its document) to define the relation between these two pairs of managers and queues. You may actually go to read these two articals and you'll feel much better to do this:
    http://www.developer.ibm.com/library/articles/programmer/farrell1.html
    http://www.developer.ibm.com/library/articles/programmer/farrell2.html
    Hope its helpful. Don't forget my 'dollars' if you feel this info is good for you.
    PC

  • Push different type of messages to JMS Queue using JMS Adapter

    Platform: Oracle SOA 11g. JMS Adapter.
    I got to push different types of messages as string to same queue. JMS Adapter requires schema to push a message to a queue. Since messages are of different types, how can I push them into queue. I tried to use singleString schema. Result is that actual message gets wrapped into <singleString> root element which is not the required result.
    Any hints or links shall be appreciated.

    Thanks fo ryour reply and help. I appreciate that.
    Wrapping of original message in <singleString>  element is done by JMS Adapter as the very last activity/setting. I am not composing/transforming message into final shape with singleString through transformation.
    Once message is with JMS adapted on one end, it is in Queue on the other end. No control.
    Since consuming end is not in my control and requires the actual message in Text format, I need to have the message target queue in Text format.
    If I select the Opaque schema, following error message is thrown.
    <bpelFault><faultType>0</faultType><mismatchedAssignmentFailure xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"><part name="summary"><summary>Mismatch Assign. cannot set a nonmessage value to a message-based variable. An attempt to assign a nonmessage value to a message-based variable failed. Verify the BPEL source for invalid assign activities.< /summary></part></mismatchedAssignmentFailure></bpelFault>

  • How to send message to a queue using JMS adapter

    Hi,
    I need to send messages to the default queue(demoQueue) available in the server using a JMS adapter in a BPEL process.
    I tried doing the same by using an invoke activity that invokes the JMS adapter service to send the message to the queue. I deployed this process in the server and gave an input to send it to the queue. The prcoess executed without any errors in the BPEL console.
    I am also using Hermes v1.0 to monitor the queue but it says that it dint receive any messages in the queue to read.
    I am sorry that i have restrictions from the client that i can't post the code here. Please let me know if anyone has got any solution or if you know any other way of doing the same.
    Thank you
    Message was edited by: prince
    the_prince

    You can use the following procedure :
    DBMS_AQ.ENQUEUE (
    queue_name IN VARCHAR2,
    enqueue_options IN enqueue_options_t,
    message_properties IN message_properties_t,
    payload IN "<ADT_1>",
    msgid OUT RAW);

  • Dynamic Queues using JMS Adapter - Possible?

    Can anyone advise if its possible to dynamically set the JMS Queue DestinationName at runtime when using the JMS Adapter?
    My guess is not, but I thought I'd ask anyway...
    Dennis

    Hi Dennis,
    Did u get a solution for this.
    Even i have a same scenario where i have to select the destination queue dynamically.
    Any help in this regards...
    Regards
    Ashwini

  • How to read Java Object message from JMS Queue using JMS Adapter .

    Dear All,
    In my scenario i have to read a java object message from JMS Queue . I tried by using the JMS Adaper ,but i am not getting any Payload . Can any one tell me is there any special settings for JMS Adapter to read the Java Object message .
    I am able to read the Message successfully thru JMS Adapter but in SXMB_MONI it is not showing any payload .
    I also went in Message monitoring but i am getting this type of message in Sender JMS Adapter  in Audit Log.
    JMS Message ID XXXXX Message Type Null unknown.Payload can not be read and will be empty.
    JMS Message ID XXXXX Payload Empty can not read.
    Please Help.
    Lateef

    Hi,
    As far as i know, JMS Object Messages is not supported by XI JMS adapter.
    you need to have the JMS provider to transform the message to bytes messages.
    (Refer to SAP note 856346)

  • How to send message to Queue using JMS

    Hai Friends,
    I have written one program, which sends one seriablizable object to the queue. At
    queuesender.send(objectmessage) statement
    i am getting the following exception, but message is going to queue. The next statement is not executing. Next statements is simple debug statement.
    i.e.,System.out.println("Message has been send");
    why this is not working let me know plzz
    HERE is EXception
    <May 15, 2006 11:02:46 AM IST> <Alert> <JMS> <BEA-040049> <JMSServer "cgJMSServer" store failure occurred while writing message for queue ACMQueue, java.io.IOException: JMS JDBC store, connection pool = <cgJMSPool-nonXA>, prefix = <weblogic>: flush failed
    java.io.IOException: JMS JDBC store, connection pool = <cgJMSPool-nonXA>, prefix = <weblogic>: SQL exception
    java.sql.SQLException: Connection failure. sendMethodRequest(...).

    Hai Friends,
    Previously i didn't give full stack trace. now i am sending the exact stack trace and little bit code. Plz help me
    CaseQuerySearchResult cqsr = new CaseQuerySearchResult();
    ObjectMessage obj = qsession.createObjectMessage();
    while(rs.next())
         // I am getting 10 fields from DB and setting those values like the following,
         cqsr.children.setLoan(rs.getString(1));
    obj.setObject(cqsr);
    qconnection.start();
    System.out.println("----B4 qsender----");
    qsender.send(obj);
    System.out.println("----After qsender----");
    <May 15, 2006 12:05:47 PM IST> <Alert> <JMS> <BEA-040095> <JMSServer "cgJMSServer". Store I/O failure, java.io.IOException: JMS JDBC store, connection pool = <cgJMSPool-nonXA>, prefix = <weblogic>: ping failed, database not responding
    java.io.IOException: JMS JDBC store, connection pool = <cgJMSPool-nonXA>, prefix = <weblogic>: SQL exception
    java.sql.SQLException: Connection failure. sendMethodRequestNoFlush(...).
    at com.pointbase.dbexcp.dbexcpException.getSQLException(Unknown Source)
    at com.pointbase.net.netJDBCPrimitives.sendMethodRequestPrivate(Unknown Source)
    at com.pointbase.net.netJDBCPrimitives.sendMethodRequestByID(Unknown Source)
    at com.pointbase.net.netJDBCConnection.setAutoCommit(Unknown Source)
    at weblogic.jdbc.wrapper.PoolConnection.setAutoCommit(PoolConnection.java:141)
    at weblogic.jms.store.JDBCIOStream.opendb(JDBCIOStream.java:2205)
    at weblogic.jms.store.JDBCIOStream.ping(JDBCIOStream.java:1286)
    at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:355)
    at weblogic.jms.store.JMSStore.execute(JMSStore.java:493)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    at weblogic.jms.store.JDBCIOStream.throwIOException(JDBCIOStream.java:498)
    at weblogic.jms.store.JDBCIOStream.opendb(JDBCIOStream.java:2287)
    at weblogic.jms.store.JDBCIOStream.ping(JDBCIOStream.java:1286)
    at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:355)
    at weblogic.jms.store.JMSStore.execute(JMSStore.java:493)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    java.io.IOException: JMS JDBC store, connection pool = <cgJMSPool-nonXA>, prefix = <weblogic>: ping failed, database not responding
    java.io.IOException: JMS JDBC store, connection pool = <cgJMSPool-nonXA>, prefix = <weblogic>: SQL exception
    java.sql.SQLException: Connection failure. sendMethodRequestNoFlush(...).
    at com.pointbase.dbexcp.dbexcpException.getSQLException(Unknown Source)
    at com.pointbase.net.netJDBCPrimitives.sendMethodRequestPrivate(Unknown Source)
    at com.pointbase.net.netJDBCPrimitives.sendMethodRequestByID(Unknown Source)
    at com.pointbase.net.netJDBCConnection.setAutoCommit(Unknown Source)
    at weblogic.jdbc.wrapper.PoolConnection.setAutoCommit(PoolConnection.java:141)
    at weblogic.jms.store.JDBCIOStream.opendb(JDBCIOStream.java:2205)
    at weblogic.jms.store.JDBCIOStream.ping(JDBCIOStream.java:1286)
    at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:355)
    at weblogic.jms.store.JMSStore.execute(JMSStore.java:493)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    at weblogic.jms.store.JDBCIOStream.throwIOException(JDBCIOStream.java:498)
    at weblogic.jms.store.JDBCIOStream.opendb(JDBCIOStream.java:2287)
    at weblogic.jms.store.JDBCIOStream.ping(JDBCIOStream.java:1286)
    at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:355)
    at weblogic.jms.store.JMSStore.execute(JMSStore.java:493)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    at weblogic.jms.store.JDBCIOStream.throwIOException(JDBCIOStream.java:498)
    at weblogic.jms.store.JDBCIOStream.ping(JDBCIOStream.java:1318)
    at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:355)
    at weblogic.jms.store.JMSStore.execute(JMSStore.java:493)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

  • BPEL Interaction Pattern - Using JMS as the medium

    Objective : Make one MAIN Business Process out of BPEL that would receive the Message from Userinput or some other source and finally after doing all operations inside BPEL process (that would happen using BPEL Sub processes that exchange data using JMS send and receive inside the different queues ). Finally the MAIN Business Process would receive the response from BPEL sub process send it to Database at the end. We would like to develop a single BPEL process that would represent a Business Process say like Order Create and internally we would invoke various Sub BPEL process to work on the payload and give a handshake using JMS as the medium rather than another BPEL process makes a direct handshake to the invoking/calling process.
    Steps Attempted :
    a) BPEL Process receives the message from Input (User input of Purchase Order) and do some transformation later publish the message to Queue by configuring JMS Adapter to Produce it. Next step inside the same BPEL process tries to receive it using the JMS Adapter to consume it. It keeps waiting forever without consuming the message
    b) BPEL Process (A) receives the message from (User input of Purchase Order) and do some transformation later send the message to another BPEL Process (B) that would receive the input message. BPEL Process B writes into the Queue using JMS Adapter. In this case also BPEL Process (A) configured to receive the message from the QUEUE where the BPEL PRocess B has sent. BPEL Process A waits for the message to arrive for ever.
    Some behaviours we noticed ,
    1) Queue messages are being dequeued (JMX Browser in OEM shows no messages). But BPEL console shows the BPEL Process A is waiting for it to arrive. I believe it is consuming the message but unable to kickoff from receive (JMS activity) activity configured in the BPEL.
    2) We ensured that no other BPEL Process is consuming by creating a new Queue by name DemoQueue4 that would be used by the BPELProcess A and BPEL Process B.
    3) BPEL Process A and BPEL Process B are ASYNCHRONOUS Process. BPEL Process B receives the input and writes into the Queue does not call back to BPEL Process A. BPEL Process A would listen to the Queue to receive it inside the BPEL Process A.
    Am I trying something architecturally not possible ?
    Thanks
    Nags.
    Message was edited by:
    cdmnagaraj

    You can register any compliant JMS provider as a foreign jms provider in weblogic and then can access the JMS administered objects (destination and connection factory) from the local weblogic JNDI tree.
    This blog shows how to configure AQJMS as a foreign JMS provider and then configure JMS adapter to access the jms objects.
    http://biemond.blogspot.com/2009/07/using-aq-jms-text-message-in-wls-1031.html
    You can use the above link as a reference on how to setup. You will have to modify the Initial Context Factory, Provider URL, JNDI Properties, foregin connection factories and foreign detsinations section to suit activeMQ.
    Note: Weblogic does not come inbuild with the required jars to connect to ActiveMQ unlike AQJMS, so you need to ensure that the active mq jms client jars are available in the weblogic's classpath.

  • How to read the messages in the JMS Queue using JMX

    Hi,
              I want to read messages in the JMS queue using JMX. I was able to read using QueueBrowser but want to modify priority of the messages using JMX.
              I tried to use JMSDestinationRuntimeMBean but it does not allow us to read messages unless we pass the message Id. Is there any way that I can get all the messages in the queue.
              I am using Weblogic 8.1 SP4
              Can someone please help me in this regard.
              Thanks,
              Kiran.
              Edited by KGudipati at 10/22/2007 1:22 AM

    Hi,
    As far as i know, JMS Object Messages is not supported by XI JMS adapter.
    you need to have the JMS provider to transform the message to bytes messages.
    (Refer to SAP note 856346)

  • How to create and use dynamic queue in JMS

    Plz tell me how to create and use a dynamic queue in jms and can reciever file lookup it as it lookup any server configurred queue(written in the server).

    Hi,
    We can use Azure File services to do this, for more information, please have a look at this article:
    http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/introducing-microsoft-azure-file-service.aspx. The Azure File service exposes file shares using the standard SMB 2.1 protocol. Applications running in Azure can now easily share files between
    VMs using standard and familiar file system APIs like ReadFile and WriteFile.
    Best Regards,
    Jambor
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Using JMS adapter with J2ee native queuing system

    Hi there,
    As far as I have understood J2EE contains it's own native queuing system (JMS). Since the J2EE is part of the WAS, shouldn't it be possible to somehow use XI's JMS adapter in conjunction with this native JMS?
    I've tried to search many places in many ways, but haven't been able to find any info. Is it possible at all?
    Hope, some of u guys can help out there:-)
    Regards,
    Daniel

    Hi Keith,
    It looks as if you are in the same situation.
    We have this working very nicely now and I'm happy to share. In fact I was just granted wiki permissions so I can add the information there along with screen shots.
    Informaiton on this configuration is very scattered but I imagine many people would find it useful for integrating with Mainframes without adding any complexity to the legacy environment. Let me come back to you with some more inormation, but for now you can get started with this:
    Insert a module as the 3rd line in your Module Processing Sequence to use AF_Modules/MessageTransformBean and give it a key in order to associate with the parameters you will need to type in below. These parameters are very similar to normal XI File adapter parameters.
    SAP Note 793922 has more info on the parameters... not the greatest reference I know.
    Also this has some info...
    http://help.sap.com/saphelp_nw04/Helpdata/EN/57/0b2c4142aef623e10000000a155106/content.htm
    I'll try and get some screen shots up on the Wiki.

  • How to delete JMS Queue using WSLT thru JNDI?

    How to delete JMS Queue using WSLT thru JNDI?

    Hi,
    You can use the following WLST script to delete the queue :-
    edit()
    cd('/JMSSystemResources/MyModule/JMSResource/MyModule')
    startEdit()
    cmo.destroyQueue(getMBean('/JMSSystemResources/MyModule/JMSResource/Mymodule/Queues/MyQueue'))
    activate()
    Is it what you are looking for?
    I hope this helps.
    Regards.
    Edited by: mchellap on Dec 11, 2008 4:27 PM

  • Using dynamic queues in jms

    I am making messenger using jms
    Can anyone tell me
    **if createQueue() or createTemporaryQueue() should be used for queue creation.
    **if createTemporaryQueue() is used,i think offline messages can't be sent
    **i am unable to create the queue,plz tell exactly how i can create it
    Thanx in advance

    createQueue/Topic do not create the physical destination but only the address to it. Queues and Topics are administered objects in JMS and are usually created by your JMS vendors admin tools / config files. Some provider even create the destinations on the fly (first use).
    -- Andreas

  • How to Run a simple program using JMS Queue.!!

    Hi All,
    I am trying to run simple program on JMS Queue.
    Using SOA Suite 10.1.3.2
    I created a connection factory and queue using EM.
    Connection Factory => Domain : Queue JNDI Location : jms/sidConnectionFactory
    Queue Name : SidQueue JNDI Location : jms/SidQueue
    Tried running a simple java class to send the messages to queue.[Pls find the file attached].
    Getting this error
    javax.naming.NamingException: META-INF/application-client.xml not found (see J2EE spec, application-client chapter for requirements and format of the file)
    at oracle.j2ee.naming.ApplicationClientInitialContextFactory.getRequiredClasspathResource(ApplicationClientInitialContextFactory.java:239)
    at oracle.j2ee.naming.ApplicationClientInitialContextFactory.getArchive(ApplicationClientInitialContextFactory.java:161)
    at oracle.j2ee.naming.ApplicationClientInitialContextFactory.getInitialContext(ApplicationClientInitialContextFactory.java:111)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
    Can some one tell me how i need to create this file and where to place this[i.e is this need to be placed in  my project or some directory structure of <SOA-HOME>
    Thx,
    Siddhardha.
    Code:
    package demo;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Properties;
    import javax.jms.*;
    import javax.naming.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class JMSQueue {
        public static void main(String args[])
    QueueConnection queueConnection;
    QueueSession queueSession;
    //private MessageProducer producer;
    QueueSender queueSender;
    try {          
    String message = "Test";
    String connectionFactoryName = "jms/sidConnectionFactory";
    String destinationName = "jms/SidQueue";
    /*Do i need to use this .......
    * If so where is the error in below statements...
    * Properties env = new Properties( );
    // ... specify the JNDI properties specific to the vendor
    env.put(Context.SECURITY_PRINCIPAL, "admin");
    env.put(Context.SECURITY_CREDENTIALS, "welcome");
    env.put(Context.INITIAL_CONTEXT_FACTORY,
    "com.evermind.server.ApplicationClientInitialContextFactory");
    env.put(Context.PROVIDER_URL,
    "ormi://localhost:23791");
    Context ctx = new InitialContext();
    // Get the connection factory.
    QueueConnectionFactory cf = (QueueConnectionFactory)ctx.lookup(connectionFactoryName);
    // Get the destination.
    Queue destination = (Queue) ctx.lookup(destinationName);
    // Use the connection factory to create a connection.
    queueConnection = cf.createQueueConnection();
    // Start the connection.
    queueConnection.start();
    // Use the connection to create a session.
    queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    // Use the session and destination to create a message producer and a message consumer.
    //producer = queueSession.createProducer(destination);
    queueSender = queueSession.createSender(destination);
    TextMessage msg = queueSession.createTextMessage(message);
    queueSender.send(msg);
    queueSession.close();
    queueConnection.close();
    catch (Exception ex) {
    ex.printStackTrace();
    * Attached following libraries to the Project
    * jms.jar
    * optic.jar
    * oc4jclient.jar
    */

    Hi,
    You need to change the INITIAL_CONTEXT_FACTORY to com.evermind.server.RMIInitialContextFactory.
    Regards,
    Sandeep

Maybe you are looking for