Edit a message in place on a JMS queue

In our organisation it is occassionally necessary to edit the message at the 'top' of a jms queue to adjust it's content so the consumer can handle it. We are currently investigating Weblogic server, and trying to determine how weblogic server would allow us to do this.
We can see the export option, which allows the message to be extracted to XML, from which it can be editted.
Unfortunately, the import adds the changed message to the end of the queue, rather than replacing the entry it was created from.
Is there a method that allows for an 'edit in place' result?
Thanks
Ian

I am not aware of a way to edit a JMS message... sounds like a desirable feature though... but it looks like JMS adheres to very strict paradigm of message lifecycle (I love using the word "paradigm", it makes me feel so literate :o) ).
there was already a discussion on this topic on the forum, I can't find it.... I think I remember the conclusion was "no"

Similar Messages

  • Messages stuck in "Messages Pending" column of a JMS queue.

    Hi
    Is there any way to retrive the messages which are stuck in "Messages Pending" column of a JMS queue.
    weblogic 8.1 SP5 version.
    Thanks

    there is some possibility to prevent the Pending Message or to automatically purge them on WL 9.x or WL 10.x?WebLogic JMS provides "message management" console, scripting, and mbean features to view and manipulate messages in a destination. You can search for "message management" in this newsgroups for more information - here's a good post: Re: WLST Script Help It also provides features for automatically moving problem messages to an error destination, expiring old messages, and/or deleting messages thave have exceeded a configured redelivery limit. I suggest reading through our feature list in the documentation, see "Value-Added WebLogic Server JMS Features" in the [ Information Roadmap | http://download.oracle.com/docs/cd/E15523_01/web.1111/e14529/messaging.htm#sthref23 ].
    Note that it's usually best to try and understand why messages are marked pending and fix the underlying reason instead of purging such messages. Messages are normally pending for a valid reason, and most use cases can't tolerate arbitrarily losing a message.
    Tom

  • Need to publish message from database to a JMS Queue using Java

    I need to publish messages to a Websphere JMS Queue whenever any changes happen on a particular column of a table in oracle 11g. For that I have written a trigger on that particular table which in turn will invoke one java procedure. I have written the java procedure using a standalone java class and uploaded the java class as a schema object. While executing the procedure it is throwing error as it is not able to instantiate some of the java classes. I don't know how to provide the reference of different jar files while executing the java class. Can anyone help me on this.

    Welcome to the forum!
    >
    I have written the java procedure using a standalone java class and uploaded the java class as a schema object. While executing the procedure it is throwing error as it is not able to instantiate some of the java classes. I don't know how to provide the reference of different jar files while executing the java class.
    >
    Clarify your statement. First you say 'standalone java class' but then you talk about instantiating java 'classes' and referencing 'different jar files'. If you are executing your Java class inside Oracle then any Java classes that your java class is referencing also have to be loaded into Oracle or it won't be able to reference or execute them.
    How do you plan to ' publish messages to a Websphere JMS Queue '? Where is this queue you are talking about?
    Why are you using a Java procedure and class instead of PL/SQL?
    What is your 4 digit Oracle version (result of SELECT * FROM V$VERSION)?

  • Specifying message delivery time for a JMS queue

              Guys,
              Can anyone tell me as to if it possible to specify message delivery from a JMS
              queue to a listening MDB at a specified interval in weblogic . I mean I need
              to post messages to the JMS queue but I need the messages to be delivered to the
              MDB's after lets say 30 seconds .
              How can I do it using the weblogic console ?? Which property do i need to change
              Please advise.
              Thanks
              Kar
              

    Hi,
              Message delivery time can be set programmatically,
              or through a console override. In your case, set it via
              the console with the value "30000".
              This feature has been available since 6.1, and is a
              JMS extension.
              Here is the link to the 8.1 documentation:
              http://edocs.bea.com/wls/docs81/jms/implement.html#1235262
              And for a full list of WL JMS features, see here:
              http://edocs.bea.com/wls/docs81/jms/intro.html#jms_features
              Tom
              kar piyush wrote:
              > Guys,
              >
              > Can anyone tell me as to if it possible to specify message delivery from a JMS
              > queue to a listening MDB at a specified interval in weblogic . I mean I need
              > to post messages to the JMS queue but I need the messages to be delivered to the
              > MDB's after lets say 30 seconds .
              >
              > How can I do it using the weblogic console ?? Which property do i need to change
              > ?
              >
              > Please advise.
              >
              > Thanks
              >
              > Kar
              >
              >
              

  • Message Driven Bean reading multiple times from a jms queue

    Hi,
    I am facing a strange problem with my message driven bean. Its configured to read message from a jms queue. But sometimes it read the same message multiple times from the jms queue.
    We are using weblogic server 8.1 sp5.
    Please find below our descriptor files
    ejb-jar.xml  
    <ejb-jar>  
      <display-name>ClarifyCRM_Process_Manager_13.1</display-name>  
      <enterprise-beans>  
        <session>  
          <display-name>ProcessManager</display-name>  
          <ejb-name>ProcessManager</ejb-name>  
          <home>com.clarify.procmgr.ejb.ProcessManagerHome</home>  
          <remote>com.clarify.procmgr.ejb.ProcessManagerRemote</remote>  
          <ejb-class>com.clarify.procmgr.ejb.ProcessManagerEJB</ejb-class>  
          <session-type>Stateless</session-type>  
          <transaction-type>Container</transaction-type>  
        </session>  
        <message-driven>  
          <display-name>ProcessManagerListener</display-name>  
          <ejb-name>ProcessManagerListener</ejb-name>  
          <ejb-class>com.clarify.procmgr.ejb.ProcessManagerMDB</ejb-class>  
          <transaction-type>Bean</transaction-type>  
          <acknowledge-mode>Auto-acknowledge</acknowledge-mode>  
          <message-driven-destination>  
            <destination-type>javax.jms.Queue</destination-type>  
          </message-driven-destination>  
        </message-driven>  
      </enterprise-beans>  
      <assembly-descriptor>  
        <container-transaction>  
          <method>  
            <ejb-name>ProcessManager</ejb-name>  
            <method-name>*</method-name>  
          </method>  
          <trans-attribute>Required</trans-attribute>  
        </container-transaction>  
      </assembly-descriptor>  
    </ejb-jar>  
    weblogic-ejb-jar.xml  
    <weblogic-ejb-jar>  
      <weblogic-enterprise-bean>  
        <ejb-name>ProcessManager</ejb-name>  
        <stateless-session-descriptor>  
          <pool>  
            <max-beans-in-free-pool>100</max-beans-in-free-pool>  
            <initial-beans-in-free-pool>10</initial-beans-in-free-pool>  
          </pool>  
        </stateless-session-descriptor>  
        <enable-call-by-reference>False</enable-call-by-reference>  
        <jndi-name>ProcessManagerHome</jndi-name>  
        <dispatch-policy>PMExecuteQueue</dispatch-policy>  
        <remote-client-timeout>0</remote-client-timeout>  
      </weblogic-enterprise-bean>  
      <weblogic-enterprise-bean>  
        <ejb-name>ProcessManagerListener</ejb-name>  
        <message-driven-descriptor>  
          <pool>  
            <max-beans-in-free-pool>100</max-beans-in-free-pool>  
            <initial-beans-in-free-pool>10</initial-beans-in-free-pool>  
          </pool>  
          <destination-jndi-name>clarify.procmgr.jms.queue.Execution</destination-jndi-name>  
          <connection-factory-jndi-name>clarify.procmgr.jms.factories.ExecConnection</connection-factory-jndi-name>  
        </message-driven-descriptor>  
        <enable-call-by-reference>True</enable-call-by-reference>  
        <dispatch-policy>PMListenerExecuteQueue</dispatch-policy>  
        <remote-client-timeout>0</remote-client-timeout>  
      </weblogic-enterprise-bean>  
    </weblogic-ejb-jar>   The MDB is sometimes reading multiple times from clarify.procmgr.jms.queue.Execution
    Also i would like to add here that the connection factory we are using clarify.procmgr.jms.factories.ExecConnection is having the following properties
    ServerAffinity Enabled=true
    XA connection factory enabled=false.
    Please help me out here!!

    Maybe, your MDB "sometimes" throws an Exception in onMessage.
    Check if this happens when you set <max-beans-in-free-pool>1</max-beans-in-free-pool>.

  • 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

  • JMS queues

    Hi Group,
    We have scenarion JMS to File, using SAP Pi as JMS provider,configured sender JMS channel to pick up the message from queue,some times the message in queues are not picking up and strucking in the queue,is there any way we can tune or adjust
    queues to pick up the messages immediately.Also is there JMS queues prioritization option available within 7.1 version.
    Regards,
    Rajiv

    Hi,
    depending on the JMS provider check question
    3. Provider specific Issues from
    Note 856346 - J2EE JMS Adapter: Frequently Asked Questions (FAQ
    >>>Also is there JMS queues prioritization option available within 7.1 version.
    yes:
    http://help.sap.com/saphelp_nwpi71/helpdata/en/59/25ee41c334c717e10000000a155106/content.htm
    >>>>there any way we can tune or adjust queues to pick up the messages immediately
    yes
    check service :XPI Service: AF Core
    where you can change the number of queues per adapter (so JMS for example)
    http://help.sap.com/saphelp_nwpi71/helpdata/en/a7/c3d341c4cbc317e10000000a155106/content.htm
    hope this helps,
    Regards,
    Michal Krawczyk

  • Connect from Weblogic JMS queue to SAP WAS JMS queue

    Hi,
    I am trying to setup a WLS 8.1 messaging bridge between a weblogic JMS queue and a SAP WAS JMS queue. I have configured a queue on both Weblogic and SAP WAS and I have set up the messaging bridge and bridge destintations in weblogic. However when weblogic tries to get the SAP initial context factory it fails with the error below.
    I have added the SAP Client jars to the weblogic system classpath, and in the weblogic startup script but it still fails. Has anyone connected from an external JMS queue to a SAP WAS JMS queue that could provide me with some guidence?
    <10/08/2006 08:23:45 AM WST> <Warning> <Connector> <BEA-190032> << Weblogic Mess
    aging Bridge Adapter (XA)_eis/jms/WLSConnectionFactoryJNDIXA > ResourceAllocatio
    nException of javax.resource.ResourceException: ConnectionFactory: failed to get
    initial context (InitialContextFactory =com.sap.engine.services.jndi.InitialCon
    textFactoryImpl, url = ux0800:55304, user name = username) on createManagedConnectio
    n.>
    Thanks
    Warren

    Stoyan,
    Thanks for that.
    My problem ended up being a classpath problem. I referenced the directory of the SAP jars in the weblogic start up script. When I changed this to reference each jar individually it worked.
    I have a new issue now which may have something to do with security. The trace suggests it is logging on as the guest user, even though I entered my username and password in the Messaging bridge.
    #1.5#000E7FED310600A30000008A0000302D00041AA399E338B4#1155189870559#com.sap.jms##com.sap.jms.server.sessioncontainer.InboundBus instance=BWIP#J2EE_GUEST#0####165536f0283611db8903000e7fed3106#SAPEngine_Application_Thread[impl:3]_126##0#0#Error##Plain###com.sap.jms.server.exception.JMSServerInvalidDestinationException: No destination with ID=0 found.
            at com.sap.jms.server.service.impl.RegistryServiceImpl.getDestinationContext(RegistryServiceImpl.java:404)
            at com.sap.jms.server.sessioncontainer.InboundBus.getDestinationContext(InboundBus.java:98)
            at com.sap.jms.server.sessioncontainer.InboundBus.process(InboundBus.java:153)
            at com.sap.jms.server.sessioncontainer.InboundBus.enqueue(InboundBus.java:116)
            at com.sap.jms.server.sessioncontainer.SessionContainer.receiveFromDispatcher(SessionContainer.java:63)
            at com.sap.jms.server.routingcontainer.RoutingContainer.receiveFromDispatcher(RoutingContainer.java:447)
            at com.sap.jms.server.JMSServerContainer.dispatchRequest(JMSServerContainer.java:635)
            at com.sap.jms.server.JMSServerFrame.request(JMSServerFrame.java:536)
            at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
            at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
            at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
            at java.security.AccessController.doPrivileged(Native Method)
            at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
            at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Warren

  • JMS Queue - Save changes made to persistent messages

    Good afternoon,
    I have set up a queue with persistent storage. To access the messages in the queue, I use a queueBrowser.
    I retrieve a given message (in fact an ObjectMessage) without acknowledging it, process the data it contains, and then set the processed data as the new Object of my ObjectMessage.
    However, these modifications are not taken into account in the persistent storage. That is, if I reboot my server, the modifications are lost - although the message is still present in the queue.
    Does anyone have any idea ?
    Thank you very much,
    As an exemple, here is a sample of my code :
    QueueSession qSession = null;
    QueueBrowser qBrowser = null;
    try {
    qSession = ConnectionFactory.getSessionClientAcknowledge();
    Queue queue = QueueFactory.getInstance(queueName);
    qBrowser = qSession.createBrowser(queue);
    Enumeration queueEnum = qBrowser.getEnumeration();
    while (queueEnum.hasMoreElements() && !bFoundIt) {
    Message msg = (Message)queueEnum.nextElement();
    if (msg instanceof ObjectMessage) {
    DataList currentDataList = (DataList)((ObjectMessage)msg).getObject();
    if (currentDataList != null) {
    DataMap currentInfo = currentDataList.getDataMapAt(0);
    msg.clearBody();
    ((ObjectMessage)msg).setObject(null);
    Message was edited by:
    Daedin

    You cannot edit messages in place. You need to copy them and send them to the same or another queue.
    JMS != JDBC...
    Regards,
    Colin.
    http://hermesjms.com

  • 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)

  • Message posted from BPEL not found in oc4j JMS queue

    Hi,
    I am facing a weird problem when I try to post a message in oc4j JMS from a BPEL process.
    There is no exception(Not even in the logs) and the BPEL process gets completed. But the message is missing(Could not find it while monitoring the queue).
    I am using SOA suite 10.1.3.5 and the oc4j JMS queue which comes with the installation.
    Can someone help me please.
    Saptarishi
    Edited by: saptarishi on May 25, 2010 3:51 PM

    Got a solution.

  • Redelivery of messages to JMS queue

    Hi,
              I am using weblogic 9.2 JMS and MDB for processing messages from queue. Only one instance of Container Managed MDB is running and the important point is that queue sequence should be maintained. I have a problem now. Each message will be picked by MDB and does some db lookups and it is sent over to another system. If there is any communication failure, the message has to be redelivered back to the front of the queue so that sequence is not lost. Even the same message is failing for more than one time, it should still be placed at the front of the queue becoz there is another mechanism that will pause the queue in case of communication exception.
              I tried with throwing Runtime exception but it is crashing the MDB and is getting deployed again which I think is not the right approach.
              I had set the transaction attribute as Required and tried to do setRollBackOnly on that for any exceptions but the message is not in the front of the queue. It is going to the back or somewhere in the queue.
              I also tried to put the message back with higher priority but did not seem to work.
              I have the redelivery delay as 0, I am not sure if I am missing any configuration settings. Pls let me know if there is a way to redeliver the message to the front of the queue for any exceptions in the message procesing by MDB.
              Thanks
              Srini

    Srini,
              WebLogic JMS' Unit-of-Order (UOO) feature was very specifically designed to handle strictly ordered message processing. The feature ensures that messages with the same UOO name are processed strictly in order - regardless of the number of concurrent consumers, redelivery delays, rollbacks, etc.
              If the entire queue is to be processed single threaded, you can very simply configure a default UOO for the queue, otherwise there are a variety of other UOO options. A good place to start is the JMS developer guide's UOO chapter.
              And yes, "setRollbackOnly" is the best way to force a rollback of an MDB CMT.
              Tom

  • Weblogic 10.3 Not Removing Expired Messages from JMS Queues

    Dear All,
    We have an application that is running on Weblogic 10.3.
    This application (let us call this application Y) receives messages on a JMS queue. These messages are placed on the queue by another application (let us call this application X). We would like to have these messages expire within a certain amount of time (i.e. 90000 ms) if they are not consumed.
    Now when application X places the messages onto the queue for application Y to consume, the JMS producer sets the time to live to 90000 ms. We can see that expiration time has been set appropriately in the weblogic console. If a message sits on the queue for longer than 90000 ms the state string of the message is changed to "receive expired". What we don't understand is why the expired messages still end up being consumed from the queue.
    We understand that Weblogic is supposed to have an 'Active Message Expiration' thread that will remove expired messages from the queue. The Expiration Scan Interval for the JMS Server is set to 30 (seconds).
    Can anyone tell us why our expired messages don't seem to be deleted from the queues?
    Tim

    Thank you for the response Rene.
    We have set up both the active expiration scan and the message expiration policy. The active expiration scan is set for every 30 seconds. The message expiration policy is set to "discard". However, the expired messages are still being consumed. Is it possible we are doing something wrong? See a portion of our configuration files below.
    We have set up the expiration scan time interval. See a portion of our config.xml below:
    <jms-server>
    <name>brokerJMSServer</name>
    <target>AdminServer</target>
    <persistent-store xsi:nil="true"></persistent-store>
    <store-enabled>true</store-enabled>
    <allows-persistent-downgrade>false</allows-persistent-downgrade>
    <hosting-temporary-destinations>true</hosting-temporary-destinations>
    <temporary-template-resource xsi:nil="true"></temporary-template-resource>
    <temporary-template-name xsi:nil="true"></temporary-template-name>
    <message-buffer-size>-1</message-buffer-size>
    *<expiration-scan-interval>30</expiration-scan-interval>*
    <production-paused-at-startup>false</production-paused-at-startup>
    <insertion-paused-at-startup>false</insertion-paused-at-startup>
    <consumption-paused-at-startup>false</consumption-paused-at-startup>
    </jms-server>
    <jms-system-resource>
    <name>broker-jms</name>
    <target>AdminServer</target>
    <sub-deployment>
    <name>EhrBrokerRequestQueue</name>
    <target>brokerJMSServer</target>
    </sub-deployment>
    <descriptor-file-name>jms/broker-jms.xml</descriptor-file-name>
    </jms-system-resource>
    <admin-server-name>AdminServer</admin-server-name>
    We have set up the message expiration policy in our jms descriptor. See a portion below:
    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-jms xmlns="http://www.bea.com/ns/weblogic/weblogic-jms" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-jms http://www.bea.com/ns/weblogic/weblogic-jms/1.0/weblogic-jms.xsd">
    <queue name="EhrBrokerRequestQueue">
    <delivery-params-overrides>
    <redelivery-delay>-1</redelivery-delay>
    </delivery-params-overrides>
    <delivery-failure-params>
    <redelivery-limit>-1</redelivery-limit>
    *<expiration-policy>Discard</expiration-policy>*
    </delivery-failure-params>
    <jndi-name>EhrBrokerRequestQueue</jndi-name>
    </queue>
    </weblogic-jms>
    What could we be doing wrong?
    Kind Regards,
    Tim

  • For Japanies Currency Yen - Getting Warnig message Decimal places not permi

    Hi SRM,
    For Japanies Currency Yen - Getting Warnig message Decimal places are not permitted,
    while creating Shopping Cart.
    Could you please provide solution for this.
    If you provied OSS notes on Japanies currencies ( > Support Pack -14).
    Thanks in advance
    Edited by: CK on Jun 25, 2009 9:50 AM

    Hi Muthu,
    Thanks a lot for your reply ,
    Could you please provide for this is there any OSS note saying that this is standard functionality,
    Sothat I can communicate this to customer.
    Greatly Appreciated...
    CK
    Edited by: CK on Jul 2, 2009 4:05 PM

  • Selectively pulling a message off of a JMS Queue

    Hi All,
    I want to iterate through the available messages in a JMS Queue (probably using a QueueBrowser) and then consume only a specific message based on message ID or some other property.
    (The Message Provider I am using is IBM MQ)
    How to do this using JMS API ? Can anybody give me a code snippet for this ?
    Thanks in advance.
    Edited title.

    arunkumar504 wrote:
    Hi All,
    I want to iterate through the available messages in a JMS Queue (probably using a QueueBrowser)what's that?
    and then consume only a specific message based on message ID or some other property.
    (The Message Provider I am using is IBM MQ)you mean correlation id?
    in general that's not how queues and messaging work. maybe you really want a topic/subscriber model instead of a point to point queue. it's hard to tell based on the info you've provided.
    How to do this using JMS API ? Can anybody give me a code snippet for this ?nope. consult your IBM docs.
    if you can't find something in an API, it would suggest that it can't/shouldn't be done. find another way. check your assumptions.
    %

Maybe you are looking for

  • Can a BO XI R2 Cluster Span Two Subnets?

    We were able to setup a BO XI R2 two server cluster using two servers on the same subnet.     Server A at IP address -.-.---.45     Server B at IP address -.-.---.46 Schedule reports and ad hoc queries through the web servers (on both machines) opera

  • How can I make the thesaurus work for spanish words?

    I have been using pages for about 4 months now, and usually I use it in english. I am currently writing a document in spanish but I can't manage to make the thesaurus, dictionary and wikipedia work for spanish words. I really need this to find synony

  • Parent / Child Groups in Portal with LDAP

    Heya, we are using EP 7 on SP 10 (NW 7), for User Authentication we use the UME with a configured (writable) LDAP Server as backend with a flat hierarchie. We have a Federated Portal Landscape with 3 Portals connected to one "main" portal and using R

  • How can my customers edit?

    I design in Dreamweaver, I know that if using Front Page a person can navigate to their webpage then just edit it from there with a few clicks, knowing that Dreamweaver is far superior to Front Page there must be a way I can allow a customer to edit

  • I've changed Info.plist and quicktime crashes

    Hi all, I've tried to enable mkv recognition and changed Info.plist, then I restored it to default state, but Quicktime Player is now crashing all the times. Any suggestions how can I reinstall it or solve the problem? Thanks! Process:         QuickT