Spring and Jms message: no message in the queue

Hi all,
this is my application
Spring 3.0.5 + Oc4j 10.1.3.3 + Oracle DB + Oracle Aq
This is the flow:
1. Update datas
2. Send jms message
The application updates correctly datas, in the same transaction sends a message to an oracle jms queue but the queue table is empty.
Transaction starts with method avvService.updateStatoService()
This is a log snapshot
2013-02-07 11:04:48,982 [DEBUG] org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:365) CLIENT: HOST: - Creating new transaction with name [it.mycompany.gevi.service.avvenimenti.AvvenimentoService.updateStatoAvvenimentoService]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-java.lang.Exception
2013-02-07 11:04:52,340 [DEBUG] it.mycompany.service.qbuilder.logic.QBUpdateService.doExecute(QBUpdateService.java:62) CLIENT: HOST: - DAO.updateService - getStatement 
2013-02-07 11:04:52,340 [INFO] it.mycompany.service.qbuilder.logic.QBUpdateService.doExecute(QBUpdateService.java:62) CLIENT: HOST: - DAO - SQL is:
          UPDATE TABLE_NAME
          SET STATO = ?
          WHERE COD = ?
2013-02-07 11:04:52,918 [INFO] it.mycompany.service.qbuilder.logic.QBUpdateService.doExecute(QBUpdateService.java:62) CLIENT: HOST: - DAO - {1=1, 2=1200300146}
2013-02-07 11:04:52,949 [INFO] it.mycompany.gevi.service.GenericService.updateService(GenericService.java:50) CLIENT: HOST: - Risultato updateService:1
2013-02-07 11:04:52,965 [DEBUG] org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:470) CLIENT: HOST: - Participating in existing transaction
2013-02-07 11:04:53,730 [DEBUG] org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:464) CLIENT: HOST: - Executing callback on JMS Session: oracle.jms.AQjmsSession@ee2a92
2013-02-07 11:04:54,167 [DEBUG] org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:567) CLIENT: HOST: - Sending created message: oracle.jms.AQjmsTextMessage@27fdb9
2013-02-07 11:04:54,526 [INFO] it.mycompany.gevi.service.JMSSenderService.sendMessage(JMSSenderService.java:64) CLIENT: HOST: - JSM Message Sent!
2013-02-07 11:04:54,526 [DEBUG] org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:752) CLIENT: HOST: - Initiating transaction commit Spring bean configuration file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xmlns:p="http://www.springframework.org/schema/p"
     xmlns:jee="http://www.springframework.org/schema/jee"
     xmlns:orcl="http://www.springframework.org/schema/data/orcl"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
          http://www.springframework.org/schema/tx
          http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
          http://www.springframework.org/schema/aop
          http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-3.0.xsd
          http://www.springframework.org/schema/task
          http://www.springframework.org/schema/task/spring-task-3.0.xsd
          http://www.springframework.org/schema/data/orcl
          http://www.springframework.org/schema/data/orcl/spring-data-orcl-1.0.xsd
          http://www.springframework.org/schema/jee
          http://www.springframework.org/schema/jee/spring-jee-3.0.xsd"
     default-lazy-init="true" default-autowire="byName">
     <jee:jndi-lookup id="geviDs" jndi-name="jdbc/DBGeviDS" />
     <jee:jndi-lookup id="geviAqAdmDs" jndi-name="jdbc/AQAdmGeviDS" />
     <orcl:aq-jms-connection-factory id="topicConnectionFactory" data-source="geviAqAdmDs"
      connection-factory-type="TOPIC_CONNECTION" />
     <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
          <property name="sessionTransacted" value="true"/>
        <property name="connectionFactory" ref="topicConnectionFactory"/>
        <property name="explicitQosEnabled" value="true"/>
        <property name="timeToLive" value="60000"/>
        <property name="pubSubDomain" value="true"/>
        <property name="defaultDestinationName" value="VR_INFO_VAR_TOPIC"/>
    </bean>
     <tx:jta-transaction-manager/>
     <tx:annotation-driven transaction-manager="transactionManager"  proxy-target-class="true" />
     <aop:config>
          <aop:pointcut id="genericServiceMethods" expression="execution(* it.mycompany.gevi.service..*Service.*(..))" />
          <aop:advisor pointcut-ref="genericServiceMethods" advice-ref="txServiceAdvice"/>
     </aop:config>
     <tx:advice id="txServiceAdvice" transaction-manager="transactionManager">
          <tx:attributes>
               <tx:method name="read*Service" read-only="true"/>
             <!-- Other methods use the default transaction settings (see below) -->
             <tx:method name="insertReturning*Service"    propagation="REQUIRED" />
             <tx:method name="create*Service" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
             <tx:method name="delete*Service" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
             <tx:method name="update*Service" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
             <tx:method name="sendMessage" propagation="REQUIRED" rollback-for="java.lang.Exception" />
          </tx:attributes>
     </tx:advice>
     <bean name="genericService" class="it.mycompany.gevi.service.GenericService" />
     <bean name="avvService" class="it.mycompany.gevi.service.avvenimenti.AvvenimentoService"/>
     <bean name="jmsSender" class="it.mycompany.gevi.service.JMSSenderService" >
          <property name="jmsTemplate" ref="jmsTemplate"/>
     </bean>
</beans>Thanks in advance.

Hi all,
this is my application
Spring 3.0.5 + Oc4j 10.1.3.3 + Oracle DB + Oracle Aq
This is the flow:
1. Update datas
2. Send jms message
The application updates correctly datas, in the same transaction sends a message to an oracle jms queue but the queue table is empty.
Transaction starts with method avvService.updateStatoService()
This is a log snapshot
2013-02-07 11:04:48,982 [DEBUG] org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:365) CLIENT: HOST: - Creating new transaction with name [it.mycompany.gevi.service.avvenimenti.AvvenimentoService.updateStatoAvvenimentoService]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-java.lang.Exception
2013-02-07 11:04:52,340 [DEBUG] it.mycompany.service.qbuilder.logic.QBUpdateService.doExecute(QBUpdateService.java:62) CLIENT: HOST: - DAO.updateService - getStatement 
2013-02-07 11:04:52,340 [INFO] it.mycompany.service.qbuilder.logic.QBUpdateService.doExecute(QBUpdateService.java:62) CLIENT: HOST: - DAO - SQL is:
          UPDATE TABLE_NAME
          SET STATO = ?
          WHERE COD = ?
2013-02-07 11:04:52,918 [INFO] it.mycompany.service.qbuilder.logic.QBUpdateService.doExecute(QBUpdateService.java:62) CLIENT: HOST: - DAO - {1=1, 2=1200300146}
2013-02-07 11:04:52,949 [INFO] it.mycompany.gevi.service.GenericService.updateService(GenericService.java:50) CLIENT: HOST: - Risultato updateService:1
2013-02-07 11:04:52,965 [DEBUG] org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:470) CLIENT: HOST: - Participating in existing transaction
2013-02-07 11:04:53,730 [DEBUG] org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:464) CLIENT: HOST: - Executing callback on JMS Session: oracle.jms.AQjmsSession@ee2a92
2013-02-07 11:04:54,167 [DEBUG] org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:567) CLIENT: HOST: - Sending created message: oracle.jms.AQjmsTextMessage@27fdb9
2013-02-07 11:04:54,526 [INFO] it.mycompany.gevi.service.JMSSenderService.sendMessage(JMSSenderService.java:64) CLIENT: HOST: - JSM Message Sent!
2013-02-07 11:04:54,526 [DEBUG] org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:752) CLIENT: HOST: - Initiating transaction commit Spring bean configuration file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xmlns:p="http://www.springframework.org/schema/p"
     xmlns:jee="http://www.springframework.org/schema/jee"
     xmlns:orcl="http://www.springframework.org/schema/data/orcl"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
          http://www.springframework.org/schema/tx
          http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
          http://www.springframework.org/schema/aop
          http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-3.0.xsd
          http://www.springframework.org/schema/task
          http://www.springframework.org/schema/task/spring-task-3.0.xsd
          http://www.springframework.org/schema/data/orcl
          http://www.springframework.org/schema/data/orcl/spring-data-orcl-1.0.xsd
          http://www.springframework.org/schema/jee
          http://www.springframework.org/schema/jee/spring-jee-3.0.xsd"
     default-lazy-init="true" default-autowire="byName">
     <jee:jndi-lookup id="geviDs" jndi-name="jdbc/DBGeviDS" />
     <jee:jndi-lookup id="geviAqAdmDs" jndi-name="jdbc/AQAdmGeviDS" />
     <orcl:aq-jms-connection-factory id="topicConnectionFactory" data-source="geviAqAdmDs"
      connection-factory-type="TOPIC_CONNECTION" />
     <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
          <property name="sessionTransacted" value="true"/>
        <property name="connectionFactory" ref="topicConnectionFactory"/>
        <property name="explicitQosEnabled" value="true"/>
        <property name="timeToLive" value="60000"/>
        <property name="pubSubDomain" value="true"/>
        <property name="defaultDestinationName" value="VR_INFO_VAR_TOPIC"/>
    </bean>
     <tx:jta-transaction-manager/>
     <tx:annotation-driven transaction-manager="transactionManager"  proxy-target-class="true" />
     <aop:config>
          <aop:pointcut id="genericServiceMethods" expression="execution(* it.mycompany.gevi.service..*Service.*(..))" />
          <aop:advisor pointcut-ref="genericServiceMethods" advice-ref="txServiceAdvice"/>
     </aop:config>
     <tx:advice id="txServiceAdvice" transaction-manager="transactionManager">
          <tx:attributes>
               <tx:method name="read*Service" read-only="true"/>
             <!-- Other methods use the default transaction settings (see below) -->
             <tx:method name="insertReturning*Service"    propagation="REQUIRED" />
             <tx:method name="create*Service" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
             <tx:method name="delete*Service" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
             <tx:method name="update*Service" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
             <tx:method name="sendMessage" propagation="REQUIRED" rollback-for="java.lang.Exception" />
          </tx:attributes>
     </tx:advice>
     <bean name="genericService" class="it.mycompany.gevi.service.GenericService" />
     <bean name="avvService" class="it.mycompany.gevi.service.avvenimenti.AvvenimentoService"/>
     <bean name="jmsSender" class="it.mycompany.gevi.service.JMSSenderService" >
          <property name="jmsTemplate" ref="jmsTemplate"/>
     </bean>
</beans>Thanks in advance.

Similar Messages

  • How to check if Message already exists in the queue and if message is processing currently

    Hi everyone
    I am new to Azure and worked on adding messages to the queue through workerrole1. Worker role 2 pulls them out from queue and processing them and de-queing them.
    Worker role1 runs method gets called after every 10 seconds and puts messages in queue
    CloudQueueMessage
    message = newCloudQueueMessage(oAzureWorker.WorkerInstanceOf
    + "_"+ oAzureWorker.AgentId.ToString()
    + "|"+ ExecutionId.ToString());
                                    queue.AddMessage(message);
    Worker role2 runs method gets called after every 10 seconds too and checks the queue like this
    foreach
    (CloudQueueMessagemessage
    inqueue.GetMessages(20,
    TimeSpan.FromMinutes(5)))
    // Process all (20) messages in less than 5 minutes, deleting each message after processing.
    // Process message
    queue.DeleteMessage(message);
    Following are my questions
    1) How do I check in worker role1 if the message is already in queue, Because I don't want to queue it back again if its not yet processed and is in the queue already
    2) How do I check in worker role1 if the message is currently processing. Because I don't want to queue it back again.
    3) How do I make sure that ALL the messages get processed in the order they are inserted. I know Queue is FIFO, but I know if the message gets delayed in processing another instance can pick it up, even if it gets picked up by another instance, I want to
    make sure that the order remains.
    Right now the instances of both these worker roles are 1, in the future when we increase them, I don't want them to queue the same messages multiple times or queue them if the message is already in process mode.

    Hi Sarah,
    I agree to the Frank's suggestion. Why you need to burden the worker role 1 to check if the message really sits on the queue or not? You can do this simply in your code before pushing it on queue instead querying queue.
    All you need to do on worker role 1 is - push the message on the queue and forget as the entire queue design in azure is designed from asynchronous processing.
    About worker role 2 - Use the GetMessage method which hides retrieved message's from other clients and hence makes sure that only one client is processing it at a time. If processing is successful - delete the message. if it is not - the message will be
    visible anyways after the mentioned time provided in the GetMessage method.
    I agree that when you will increase number of instances of your worker role 1 which might insert duplicates in the queue - in that case - you might need to introduce the shared entity (like database) and let all instances communicate through it to avoid
    the duplication of messages on queue. 
    Bhushan | http://www.passionatetechie.blogspot.com | http://twitter.com/BhushanGawale

  • Acknowledging individual message, leaving others in the queue

    Hi,
    I am trying to find a way to acknowledge some messages while leaving others on the queue but when I do call m.acknowledge() on the message I want to ack all the messages previously received are removed from the queue. I have read the doc and it seems to me like what I want to do is not possible, hence my post :/
    The scenario is:
    1. I have 2 messages on a queue
    2. I receive message 1 and decide to keep it on the queue
    3. I receive message 2, process it and acknowledge it
    4. Both messages have been removed from the queue
    Do you know how I could achieve the following behaviour:
    1. I have 2 messages on a queue
    2. I receive message 1 and decide to keep it on the queue
    3. I receive message 2, process it and acknowledge it
    4. Only message 1 is left on the queue
    Thanks a lot,
    Mickael

    The behavior you are seeing is expected by JMS specification for javax.jms.Message.acknowledge().
    Have you looked at MQ's com.sun.messaging.jms.Message.acknowledgeThisMessage() ?

  • ***Raising Alerts When the message is struck in the Queue

    Hi Experts,
    Is there any way of Raising Alerts When the message is struck in the Queue I want to notify the user if the message is struck in Queue(smq1,smq2).Please let me know the same.
    Thanks,
    Srinivasa

    hi
    you can trigger alert for any of the component failure.
    for this u nees the ccms configuration.
    than you need to configure in RZ20 and RZ21.
    steps.
    1. create alert category in ALRTCATDEF
    2.enter long text
    3. add fixed recepient.
    4.go to RZ21.
    5. select display overview for method
    6. serch for method CCMS_Send_Alert_to_ALM.
    7. copy the method and create ur own Z method.
    8. open ur method.
    9. under control tab select ONLY IN CENTRAL SYSTEM TRIGGERED BY CCMS AGENTS.
    10. in parameter tab give ur alert cat created before.
    11.under release tab select AUTO REACTION METHOD.
    12. go to RZ20.
    13. a list of system will be displyed select ur own xi system
    14. now select the queue name for which u want to trigger alert.
    15.goto property button and double click.
    16. go to method tab and click on method assigment.
    17. goto method radio button and assigne the method u created in RZ21.
    done.....enjoy....
    u can check the log in slg1 tcode
    regards,
    navneet

  • Backing Up and Restoring the Message Store v.s. the queue

    Hello,
    We are running iPlanet 5.2 Messaging Server and need to migrate to another (duplicate) 5.2 Messaging Server. We have all the software installed and the LDAP user accounts created. Now we just need to move the existing mail from one server to the other.
    I found the Backing Up and Restoring the Message Store section in the Admin Guide says to back up and restore your data, Messaging Server provides the imsbackup and imsrestore utilities.
    However I am wondering about the Queue?
    Under <instance>/imta/queue
    What is the difference between the Message Store
    and the Queue? Can I just backup and restore the Queue using tar or cpio?
    Thanks in advance for any advice.
    Regards,
    Tim

    Hello,
    We are running iPlanet 5.2 Messaging Server and need
    to migrate to another (duplicate) 5.2 Messaging
    Server. We have all the software installed and the
    LDAP user accounts created. Now we just need to move
    the existing mail from one server to the other.
    I found the Backing Up and Restoring the Message
    Store section in the Admin Guide says to back up and
    restore your data, Messaging Server provides the
    imsbackup and imsrestore utilities.
    However I am wondering about the Queue?
    Under <instance>/imta/queue
    What is the difference between the Message Store
    and the Queue? The Message Store is where messages get delivered to, so you can read them.'
    The queue is where messages are temporarily stored, pending delivery to wherever they go.
    You can use tar, cpio, or what have you for the queue. Stop the server first. . .
    You then just restore the files to the new server. No need to restart or anything like that. Just dump the files in, and run
    imsimta cache -sync
    to tell the MTA to re-read the queue.
    Can I just backup and restore the
    Queue using tar or cpio?
    Thanks in advance for any advice.
    Regards,
    Tim

  • EOIO messages got held in the queue

    hi,
    In our scenario we are sending an IDOC from SAP whenever a material is newly created in SAP to a third party file share location.
    Please note that i have to maintain EOIO(requirement)at the same time when ever we send an IDOC from SAP,the status is set to HOLD in XI(and we know that this message is because it's predecessor got stucked in the queue)
    But when we check the queue in SMQ2 it looks fine(no entries there)even then if an IDOC is send from SAP the status goes to HOLD.what could be the reason for this ?
    RGds,
    Vasanth.

    Hi Michael,
    we are going as per the blog.evrything looks ok but i could not cancel the message(last step)and we are getting the following error
    Unable to cancel 1 of 1 messages; update the status
    (reason it says:<i>Predecessor not in final state</i>)
    If we could able to cancel that message hope the problem would be solved.
    RGds,
    Vasanth.
    Message was edited by: Vasanthakumar Balasubramani

  • RZ21-CCMS Alerts in case the message is struck in the Queue

    Hi all,
    How to Configure an alert ,if the message is struck in the SMQ1,SMQ2 an alert needs to be generated and sent to multiple users.
    eg:a.xyz.com,:b.xyz.com,:c.xyz.com...
    In  RZ21 I see there is an Option to send alert to only One receipent.How to Send the same to multiple receipents.
    Thanks,
    Srinivasa

    hi potharaju,
    the following blog shows the solution for the stuck EOIO messages-
    How to deal with stuck EOIO messages in the XI 3.0 Adapter Framework
    regards,
    alpa.

  • How to check the messages stuck up in the queues.

    hi experts,
    i have implemented the message queues in the EOIO form. if any message is stuck up in the inbound or the outbound queue. where would i will be able to check it.
    i have the answers of checking it up in SXMB_MONI and runtime workbench.
    is there any other way where i can get info about where the message has stuck up
    regards,
    Alpa.

    Hi,
    you could use transactions SMQ1 and SMQ2.
    For more information:
    XI Asynchronous Message Processing: Understanding XI Queues -Part I
    http://help.sap.com/saphelp_nw04/helpdata/en/7b/94553b4d53273de10000000a114084/frameset.htm
    Regards
    Patrick
    Edited by: Patrick Koehnen on Oct 22, 2008 2:51 PM

  • If UseMessageListener in JMS adapter set True, causing the message state 0

    We have a multi node SOA 10g deployed. If we have a UseMessageListener=True, the state of the message is not changing from 0 to 2. Even though the message was consumed.
    Same, configuration works fine in lower environment with single node.
    When we changed UseMessageListener= false, message state started getting changed even in multi node architecture.
    One more difference that we have in multinode and single node environment, is that we are having isTransacted mcf property value as false. Where as in single node is Transacted is true.
    Can some one explain some reasoning behind such behavior?
    What is the significance of UseMessageListener?

    Hi Tarak,
    The behaviour looks acceptable for me... Topics are different than queues, if you publish a message to a queue and there is no suitable consumer at that moment the message will remain in the queue... But for a topic, looks acceptable for me to say that if you publish a message and there was no suitable subscriber at the moment the message can be discarded... The message was checked for all durable subscribers and there was no one to able to pick it up... So it can be safely discarded... If later you change your durable subscriber to a situation on what the previous message could be picked up, that may be too late... Nevertheless, that's a very particular case and may vary according to implementation...
    May you can confirm the behaviour by checking the messages assigned to a durable subscriber... When you publish a message that doesn't match the selector, will the message even be listed at all?
    http://docs.oracle.com/cd/E23943_01/apirefs.1111/e13952/taskhelp/jms_modules/topics/ManageDurableSubscribers.html
    Hope this helps...
    Cheers,
    Vlad

  • Jms, tibco consumer receiving null from queue when there are messages in qu

    Hi,
    I am having a problem with jms specificly tibco. by application has many consumers for one queue
    say 15, with 0 to 100, messages per second going through. Occationaly 1 of more messages gets
    stuck in the queue which then bocks all other mesasges from being consumed. I can see there
    are messages in the queue with the tibjmsadmin package but receive(timeout) always returns null
    for all the consumers. Any ideas.
    Chers

    Thanks for your reply Jayesh, but unfortunately this code sits in production and I can't turn it off. I will try testing it locally, hopefully I can reproduce this issue.

  • Removing superseded messages from the queue

    Does JSMQ provide any way for a producer to remove a message from the queue which it queued some time ago but which it no longer wishes to send?
    I am investigating the use of JSMQ in a military battlemap application connecting nodes over low bandwidth/unreliable connections. The reason we want to be able to remove messages is as follows: Say a producer sends a low priority message to the queue regarding a unit's position. Later on the same producer sends an update regarding the same unit to the queue. If the first message is still present in the queue (ie has not been sent yet) then we want the producer to be able to remove it as it is now superseded by the new message and we don't want to waste bandwidth sending the old message first.
    I know we can set an expiry time on messages, but this doesn't really solve our problem. We want the original message to stay in the queue indefinately (until it is read by the consumer) unless it is superseded by a new message in which case we want to remove it.
    Thanks
    Roger

    Hi Roger,
    JMS does not support the removal of messages from a queue
    as you described. I can't think of a way to not deliver the old
    message once it was already sent.
    Alternatives I can think of:
    - Adjust the interval at which the consumer reads the messages
    off the queue and/or the number of messages that are read;
    so that the consumer will see the old and new messages
    and can decide which one to use. This does not address the
    bandwidth issue but allows the consumer to behave smarter.
    - Similar to above, but on the producer side. The producer waits
    for some interval before sending a message, in case an
    updated position of a unit arrives at the producer. This might not
    be good if a consumer needs to know the location of a unit as
    soon as it is available.
    - Use a topic instead of a queue. When using queues, old
    messages (containing old positions) sent to a queue are kept
    until the consumer reads it. With topics, if no consumers are
    around, the message is tossed. However, if you really need old
    messages to lie around (e.g. need to know last position of
    unit), this won't suit your needs.
    Sorry I don't have a straight answer for you, hope this helps
    somewhat.
    -i
    http://wwws.sun.com/software/products/message_queue/index.html

  • Messages stuck in the queue... how do I make them to be processed again?

    Hi,
    I'm new to SAP PI and kinda confused with queues.
    I have file -> bpm -> file scenario and there was an error in mapping within bpm process.
    When I went to qRFC Monitor (smq2), I see that in XBQO$PE_WS90000002 queue,
    there's an error, 'Permanent error in BPE inbound processing'... which is expected.
    Now, I run the interface scenario again several times but they don't get processed
    but stuck in the same queue. At this stage, I didn't know what to do...
    I thought by deleting the error message, other messages will be processed...
    I deleted the error message but the other messages are still in the queue...
    I have two questoins.
    1. What is the best way to handle an error in the queue... can I just delete it? or is there a better way to handle an error in the queue?
    2. After deleting the queue, what should I do to make the other messages to be processed again...
    Thank you.
    -Won

    Hi Won,
    There are programs for restarting the LUW entries:
    programs
    · RSARFCRD: tRFC Monitor (transaction SM58)
    · RSARFCSE: Restart an LUW (background job)
    · RSARFCEX: Restart tRFC LUWs (background job)
    · RSQOWKEX: Restart QOUT qRFC LUWs
    · RSQIWKEX: Restart QIN qRFC LUWs
    · RSARFCSE: Delete an LUW (background job)
    · RSARFCER: Delete various LUWs
    Also, check the url:
    http://help.sap.com/saphelp_nw04/helpdata/en/25/bcfa40badbf46fe10000000a1550b0/content.htm
    Hope this helps.
    Regards,
    Sushama

  • Messages waiting in the queue for long time.

    Hi Experts,
    We are having some Production issue - messages were waiting in the queue for long time and we found the errors in defaultTrace.12.trc file -
    Please help how to solve this issue its production and we need to move forward and solve this issue asap.
    XI AF API call failed. Module exception: (No information available). Cause Ex
    ception: 'JDBC Adapter configuration not initialized: null'.
    Thrown:
    com.sap.aii.af.service.api.AFException: XI AF API call failed. Module exception: (No information available). Cause Exception: 'JDBC Adapter configuration not
    initialized: null'.
            at com.sap.aii.af.service.api.AdapterAccess.sendMsg(AdapterAccess.java:214)
            at com.sap.aii.af.service.api.AdapterAccess.call(AdapterAccess.java:99)
            at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.process(AdapterProxyLocal.java:87)
            at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.call(SystemAccessorInternal.java:47)
            at com.sap.aii.mapping.lookup.SystemAccessor.call(SystemAccessor.java:115)
            at com.sony.pi.sp.StoredProceduresHandler.runScalarStoredProcedure(StoredProceduresHandler.java:86)
            at com.sap.xi.tf._MyPage_Invoice_SAP_to_Loyalty_MM_.invokePROC_CUSTOMER_DEDUP$(_MyPage_Invoice_SAP_to_Loyalty_MM_.java:1272)
            at sun.reflect.GeneratedMethodAccessor384.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:324)
            at com.sap.aii.mappingtool.tf3.rt.C2CFunctionWrapper.cacheContext(C2CFunctionWrapper.java:91)
            at com.sap.aii.mappingtool.tf3.rt.C2CFunctionWrapper.gotoNextContext(C2CFunctionWrapper.java:44)
            at com.sap.aii.mappingtool.tf3.rt.Q2QFunctionWrapper.cacheQueue(Q2QFunctionWrapper.java:86)
            at com.sap.aii.mappingtool.tf3.rt.Q2QFunctionWrapper.gotoNextContext(Q2QFunctionWrapper.java:41)
            at com.sap.aii.mappingtool.tf3.rt.Q2QFunctionWrapper.cacheQueue(Q2QFunctionWrapper.java:74)
            at com.sap.aii.mappingtool.tf3.rt.Q2QFunctionWrapper.gotoNextContext(Q2QFunctionWrapper.java:41)
            at com.sap.aii.mappingtool.flib3.CollapseContexts.gotoNextValue(CollapseContexts.java:52)
            at com.sap.aii.mappingtool.flib3.CollapseContexts.gotoNextContext(CollapseContexts.java:37)
            at com.sap.aii.mappingtool.tf3.rt.AResIterator.gotoNextContext(AResIterator.java:37)
            at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.gotoNextContext(FunctionWrapper.java:37)
            at com.sap.aii.mappingtool.flib3.IfWithoutElse.gotoNextContext(IfWithoutElse.java:58)
            at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:266)
            at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:326)
            at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:326)
            at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:415)
            at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:142)
            at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:118)
            at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64)
            at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:92)
            at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90)
            at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95)
            at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68)

    Hi All,
    CPACache refresh worked for one day and the same problem repeated again next day, but need to have parmanent fix and should know the root cause of the problem so that the problem can not be repeated again.
    Is there any solution other than  CPACache refresh and JDBC adapter stop and start to fix the issue.
    And also found some entries in SM12 lock entry list during the same schedule time when the messages was triggered and remains for long time. Let me know whether we can delete those locks ?
    user PIAFUSER
    Lock mode E
    and table SXMSPMAST
    with lock argument ......
    Any suggestions and tips help us alot in fixing this issue.
    Thanks in advance
    Gary.

  • MDB messages dont get processed from Queues when involving a remote Topic in transaction

    Using WLS 6.1 SP4 on winXP Pro boxes, I have come across a peculiar problem:
              I have several MDBs that process ObjectMessages from queues and forward their payload (wrapped in another new ObjectMessage) to other queues, all of which are located within the same WLS server.
              Right now I'm adding a new MDB that gets messages from a remote Topic with a durable subscription, and forwards the payload to local queues after some processing.
              When the Topic is local as well, there is no problem. But when the Topic is set up in a remote machine, only the MDB that has the remote durable subscription works the way it should. It receives the remote message and forwards it to the corresponding local queue. But then the messages in those local queues dont get processed. The 'Messages Received' count rises and the 'Messages' count stays at 0, as if the messages had been correctly processed and acknowledged, but no onMessage() method is called besides the one from the MDB that has the durable subscription to the remote Topic (I can tell because there's no further processing from the queue those messages get put in). It's as if those messages were simply received and acknowledged without being passed to other MDBs by WLS.
              * All queue MDBs use Required container-managed transaction management and auto-acknowledge
              * All queue MDBs have default durability for their queue subscriptions
              * The topic MDB has a durable subscription stored in a filestore
              * Lookup of the remote Topic is done via JNDI
              Since the processing and forwarding of messages occurs the way it should when everything is local, I am inclined to believe one of two things:
              a) There's some issue with the way WLS treats messages (or even just payloads) when they come from a remote server
              b) WLS is doing something I'm not aware of when propagating a transaction that begins with the delivery of a message from a remote JMS Topic when it involves further forwarding of messages in local JMS Queues.
              Any help will be appreciated.
              regards,
              .munir estevane
              

    Is the durable subscriber forwarder rolling back its transactions?
              That would cause the behavior you describe (eg the message gets
              placed in the queue, but is never made visible). What do
              the pending counts on the destination queue look like?
              Munir Estevane wrote:
              > Using WLS 6.1 SP4 on winXP Pro boxes, I have come across a peculiar problem:
              >
              > I have several MDBs that process ObjectMessages from queues and forward their payload (wrapped in another new ObjectMessage) to other queues, all of which are located within the same WLS server.
              > Right now I'm adding a new MDB that gets messages from a remote Topic with a durable subscription, and forwards the payload to local queues after some processing.
              >
              > When the Topic is local as well, there is no problem. But when the Topic is set up in a remote machine, only the MDB that has the remote durable subscription works the way it should. It receives the remote message and forwards it to the corresponding local queue. But then the messages in those local queues dont get processed. The 'Messages Received' count rises and the 'Messages' count stays at 0, as if the messages had been correctly processed and acknowledged, but no onMessage() method is called besides the one from the MDB that has the durable subscription to the remote Topic (I can tell because there's no further processing from the queue those messages get put in). It's as if those messages were simply received and acknowledged without being passed to other MDBs by WLS.
              >
              > * All queue MDBs use Required container-managed transaction management and auto-acknowledge
              > * All queue MDBs have default durability for their queue subscriptions
              > * The topic MDB has a durable subscription stored in a filestore
              > * Lookup of the remote Topic is done via JNDI
              >
              > Since the processing and forwarding of messages occurs the way it should when everything is local, I am inclined to believe one of two things:
              > a) There's some issue with the way WLS treats messages (or even just payloads) when they come from a remote server
              > b) WLS is doing something I'm not aware of when propagating a transaction that begins with the delivery of a message from a remote JMS Topic when it involves further forwarding of messages in local JMS Queues.
              >
              > Any help will be appreciated.
              >
              > regards,
              > .munir estevane
              

  • About JCOM and JMS

              if i use JCOM to communicate Microsoft Client and JMS server,can i code the client
              just like in the java,get connectionFactory,create connection,create session,create
              sub,implement onMessage method,set Listener,then wait coming message
              just use class reference(idl) to instead the true class,is it right?
              

              jerry8006 wrote:
              > if i use JCOM to communicate Microsoft Client and JMS server,can i code the client
              > just like in the java,get connectionFactory,create connection,create session,create
              > sub,implement onMessage method,set Listener,then wait coming message
              >
              > just use class reference(idl) to instead the true class,is it right?
              I think so, but I'm not sure how JCOM would work async - try the jcom
              newsgroup. Note that coding it this way would mean that every call
              would end up being a remote call, including things like
              "textMessage.getText()". It would be simpler and better peforming to
              just to use WebLogic JMS C client or the ActiveJMS generic JMS wrapper.
              If you plan to use JCOM I would seriously consider using simple session
              beans as wrappers that make a the JMS calls on the server side (a
              "proxy" pattern). For example, the ejb proxy "send(destName, text)"
              call would create the jms connection-factory/connection/session/sender
              if they don't already exist, and then call sender.send().
              Tom, BEA
              

Maybe you are looking for

  • Recurring Page Exception  -  'SocketException: Connection reset by peer'

    I have implemented a popup calendar that is implemented as an include of a file in a lower directory (i.e. 'script/calendar.jsp') that uses an iframe. This calendar is only in a few of my pages, but I get the below exception in each page which implem

  • Latest version of Acrobat

    How can I test what version of Acrobat reader is installed on my users computers. I have a rather large user base and need a link or something that sends me the version installed.

  • Amazon app store not opening in my Z10 after OS updated to 10.3.1?

    Recently updated my Balckberry z10 to 10.3.1 OS. Amazon appstore got installed as default. When i am trying to open it, it's asking permission to access data and files. And when i accept the same, the app crashes and closes. Please suggest way to res

  • Why does my XI pro upgrade fail?

    I am trying to upgrade from Acrobat XI standard to Pro but the setup fails, telling me there is already a more functional product installed.  This is on a Dell laptop that came with XI standard installed.  I'm not sure I know where the serial number

  • Hotmail won't work with Mountain Lion

    When I enter my Hotmail (now Outlook) email adress into Mountain Lion, it won't work. How can I get Hotmail to work?