JMS Message ordering

What does the JMS specification (in J2EE version 1.3) say about queues having to support message ordering for messages of the same priority?
Is this a requirement or not....?
Thanks for your help.
Brent Miller
Chicago, IL

Hi,
About the order of message receipt, JMS1.1 specs say that Messages consumed by a session define a serial order. JMS defines that messages sent by a session to a destination must be received in the order in which they were sent. However, JMS does not define order of message receipt across destinations or across a destination's messages sent from multiple sessions.
However, an important point to note here is that several things can affect this order:
1) Messages of higher priority may be received before previous lower priority messages sent.
2) A client may not receive a NON_PERSISTENT messages due to a JMS provider failure.
3) If both PERSISTENT and NON_PERSISTENT messages are sent to a destination, order is only guaranteed within delivery mode i.e. a later NON_PERSISTENT message may be received before an earlier PERSISTENT message. However, it will definitely arrive ahead of an earlier NON_PERSISTENT message with the same priority.
Manish

Similar Messages

  • JMS destination key used for message ordering not working

    Hi there,
    i'm using Weblogic 10.3. I've been trying to implement ordering of messages using a destination key assigned to a JMS message queue. The default ordering is FIFO (it uses the JMSMessageID in ascending order for this).
    According to documentation (http://download.oracle.com/docs/cd/E12840_01/wls/docs103/ConsoleHelp/taskhelp/jms_modules/destination_keys/ConfigureDestinationKeys.html) one can also configure the queue to behave in a LIFO manner by creating a destination which sorts on the JMSMessageID in a descending order.
    I have tried this, it does not work. I have also played with different message priority settings and tried to sort on the JMSPriority field of the messages in ascending and descending order, it changes nothing. Messages keep being processed in a FIFO manner.
    Has anyone been able accomplish message ordering other than FIFO? Am I missing something?
    Any assistance would be highly appreciated!

    Why not try
    if (_key.keyPressed(TAB)) then
    -- DO WHATEVER CONDITION
    end if
    im not sure if that is the correct way of telling the system
    to use the TAB key but this works for RETURN when the user hits the
    enter key, so if u substitute the TAB for the command to use the
    TAB key im sure it will work
    im sorry if it doesnt tho, but its worth a try if your still
    struggling

  • Processing JMS messages one at a time

    Hi, I'm on a project where we're trying to synch Siebel and EBS Customer information. However there are certain events that can trigger Customer data being sent twice simultaneously; this produces problematic racing conditions when the Customer data is new to the receiving system.
    We're trying to throttle that by sending the messages to a JMS queue and process them one at a time, ie, we only want one instance of the JMS queue listener activated at any one time (we don't expect continuous load; mainly small bursts). Unfortunately I'm not sure which properties have to be changed to do this. I have created a JMS listener that consumes message, pretty much created by the adapter wizard. Currently the listener is spawning new instances just as fast as the messages come in causing EBS AppAdapter errors (can't create new Customer as it already exists).
    Here's the JMS operation definition:
    <pc:inbound_binding />
    <operation name="Consume_Message">
    <jca:operation
    ActivationSpec="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec"
    DestinationName="jms/CustomerInterface"
    UseMessageListener="false"
    PayloadType="TextMessage"
    OpaqueSchema="false" >
    </jca:operation>
    <input>
    <jca:header message="hdr:InboundHeader_msg" part="inboundHeader"/>
    </input>
    </operation>
    </binding>
    This is the activation agent:
    <activationAgents>
    <activationAgent className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink="ReceiveAccountJmsAdapter">
    <property name="portType">Consume_Message_ptt</property>
    </activationAgent>
    </activationAgents>
    This is the connector-factory:
         <connector-factory location="eis/CustomerInterface" connector-name="Jms Adapter">
              <config-property name="connectionFactoryLocation" value="jms/Queue/CustomerInterface"/>
              <config-property name="factoryProperties" value=""/>
              <config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE"/>
              <config-property name="isTopic" value="false"/>
              <config-property name="isTransacted" value="false"/>
              <config-property name="username" value="oc4jadmin"/>
              <config-property name="password" value="********"/>
              <connection-pooling use="none">
              </connection-pooling>
              <security-config use="none">
              </security-config>
         </connector-factory>
    What else will I have to do to get this to work? Or will I be forced to deploy it to it's own BPEL domain where dspMaxThreads and dspMinThreads are set to 1?
    -- Just tried to put it on its own domain and change the dspMaxThreads/dspMinThreads and that didn't work.
    - Dale
    Message was edited by:
    Dale Earnest

    Hi Al,
    Yes - it possible.
    Please read the section Describing Message Ordering of the Adapter Life-Cycle Management of the Application Server Adapter Concepts Guide found here: http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b31005/life_cycle.htm#BABJIFJI
    Best regards
    Christian Damsgaard

  • Message Ordering or Singlton Service in SOA Suite 11g

    In SOA Suite 10g, JMS Adapter could behaviors as Singleton instance by setting the properties "XclusterGroupId".
    In addition, set Routing Service to be Synchronous execution, therefore only one instance consuming the Target message queue sequentially.
    Does this properties still take effect in SOA Suite 11g, as I didn't find this properties being mentioned through Adapter Technology documentations?
    Otherwise are there any other solutions for the Message Ordering?
    Thank you in advance.
    -Simon
    Edited by: user8408910 on Jul 13, 2009 1:31 AM

    Is it the same answer for JMS topic listeners? i.e. each new message on the topic should be processed once and only once by a Composite deployed to a cluster with >1 server instances.
    Thanks for info,
    Todd

  • How to stop and start MDBs to listen for JMS messages

    Hello! This might be more of an architecture question rather than a technical questing, but I post it here, in the lack of a better place...
    For several years I have been using Webster and Webster MQ to send messages back and forth to clients. The architecture for the middleware platform has been designed around the functionality of ListenerPorts. Listenerports is a Webster functionality that let you "stop" and start to listen to JMS messages for a given MDB either by admin console, or by JMX.
    The arhitecture we used was something like this :
    1.Client sends a persistent message to a queue. (order)
    2. An MDB pics up the order message, calls a SessionBean that "fronts" the IIOP back end system.
    This is quite "out of the box" architecture, but we used the Listenerports to solve a stability problem for our back end system.
    The backEnd system was quite unstable, so the EJB threw an exception (typically because of timeout or connection refused) back to the MDB.
    The Listenerport was "defined" to handle 3 errors before stopping, so the MDB resent the message twice before the listenerport automatically stopped. The nice thing about this feature was that the client could continue to send orders, and was not bothered when the back end system was down.
    When the backEnd system was up and running, we could start the listenerport and it was all back to normal state. We even had a start script that checked the state of the listenerport every 30 minute, and started it automatically if it was stopped, making the admin task of starting the MDB unnecessary..
    Now.. Why am I telling this story..
    I would like to know how this could be done using "clean" J2EE technologies..That is..Not using any technology that is not portable..
    I`m playing with glassfish at home, and it struck me that there is nothing in the J2EE spec that defines the functionality described above ? Am i missing something ?
    I Do not want to stop My application because the back end system is down? That is the only way (i know of) that i can "stop" to listen for messages..
    I can put all the messages on an error queue when the backbend system is down, but that would lead to more code just to handle the error messages. Maybe the easiest way to solve this is to "move" (programmatically) all messages from the error queue over to the "standard" queue every XX minute, but somehow that sounds "wrong"
    Can anyone give me some advice to how this problem situation should be solved ? I`m interested in the solution both from an architectural perspective and from a more technical perspective..
    Best regards
    Hans-Jacob Melby

    Breakpoints, whether normal or conditional, are just meant for debugging of your code.  I had the sense from your question that the pausing you want to do is a part of normal operation of your code.  I would NOT recommend using a breakpoint for that situation.  It would bring up the block diagram showing the breakpoint when it occurs.  A user besides the programmer would not know what to do in that case.
     Yes, both the inner and outer loops would have shift registers.
    Putting a case structure with a small while loop inside the "Pausing Case" is doable.  It just depends on what you are doing or waiting for while the program operation is "paused".

  • How to parse XML content in JMS Message...

    Hi everybody,
    I am currently developing a Message-Driven Bean and has some problem parsing the XML data that contains in the JMS body.
    The XML data is contained in TextMessage (JMS message type) and in order to parse the data, I need to use the DOM builder, which is expecting to read from a file (e.g. abc.xml).
    My question is how can I use TextMessage (can be output to a String) as the input source instead of a file.
    Thanks in advance.

    Hi Boon,
    "Boon Keong" <[email protected]> wrote in message
    news:3dd46800$[email protected]..
    I am currently developing a Message-Driven Bean and has some problemparsing the XML data that contains in the JMS body.
    >
    The XML data is contained in TextMessage (JMS message type) and in orderto parse the data, I need to use the DOM builder, which is expecting to read
    from a file (e.g. abc.xml).
    >
    My question is how can I use TextMessage (can be output to a String) asthe input source instead of a file.
    What about this:
    DocumentBuilder db = ...
    Document doc = db.parse(new InputSource(new
    StringReader(textMessage.toString()));
    or
    Document doc = db.parse(new
    ByteArrayInputStream(textMessage.toString().getBytes()));
    Regards,
    Slava Imeshev

  • How to send JMS message from oracle to weblogic

    Hello,
    I am facing with a problem of sending jms message from oracle to weblogic. I am using oracle 10g and weblogic server 9.1. Here is the problem. I would like to create a trigger to send JMS message to weblogic server whenever there is an update in oracle database. So I created a java class that will send a jms message to weblogic server. But in that class I use the jndi from weblogic: weblogic.jndi.WLInitialContextFactory
    when I use the loadjava utility to load that class into oracle, the status of that class is invalid though this class is working fine in eclipse with the weblogic.jar included. I was thinking because the jndi from weblogic needs the weblogic.jar in order to work, then I loaded that jar file into oracle (it took about 20 minute to load everything) and everything loaded into oracle from that jar file is invalid and missing some reference.
    So my question is: how do I send a jms message from oracle to weblogic using a java class with the right jndi?
    Any help will be appreciated.
    Thanks
    TL

    It should be quite straightforward to do this. As stated you need weblogic.jar in your classpath, then use 100% standard JMS calls to publish.
    Ensure that you set the following properties before getting your initial context:
    java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
    java.naming.provider.url=t3://node:7001 (or whatever)
    this will ensure that the correct JMS implementation classes are invoked.
    You can't easily (without some mucking around) build a test implementation in an AQ environment and then deploy to WebLogic because in AQ you don't tend to use JNDI lookups (unless you've implemented oracle JNDI etc) but rather use non standard factory class to create connections etc.

  • Format of "JMS Message Destination Parameter" for JMS Sender Adapter

    Hi,
    I am trying to use the JMS Sender Communication Channel for several Interfaces by using the "JMS Message Destination Parameter". Currently, the Comm.Channel is reading the message and puts it back on the queue with the following error:
    Fehler bei der XI-Eingangsverarbeitung für Message am bzw. um 2007-07-25|09:34:12.057+0200. JMS- und XI-Identifikatoren für die Message sind ID:414d512051535749515441302020202046a4e892201c4d04 bzw. 701ec850-3a81-11dc-8176-00306e2c36a3. Der JMS-Adapter führt einen Rollback der Datenbank und der JMS-Sitzungtransaktionen durch. Wird die Sitzung ausgeführt, geht die Message nicht verloren und wird später erneut durchgeführt. Der Ausnahme-Stack-Trace ist java.lang.RuntimeException: MQJMS0003: Destination not understood or no longer valid: UserCreateRequest
    at com.ibm.mq.jms.MQDestination.createDestination(MQDestination.java:790)
    at com.ibm.mq.jms.MQSession.createDestination(MQSession.java:1092)
    at com.ibm.jms.JMSMessage.getJMSDestination(JMSMessage.java:4127)
    What is the format I will have to fill this parameter with in order for XI to understand it? I have tried the following so far which did not work:
    1.   (as in error message above)
    Help much appreciated.
    KR,
    Colin.

    One option in BPEL is to have a mid process receive, but this would require you to handle the Correlation of the message with BPEL process instance.
    Please refer the following section in SOA Guide for the same.
    Using Correlation Sets and Message Aggregation - 11g Release 1 (11.1.1.7)
    Please note the example is with File adapter but the same can be achieved for Any Adapter.

  • JMS messages sometimes not received by Flex client

    We have a problem that Flex client is sometimes not able to
    receive JMS messages from a JBoss JMS Queue. Most of the time it
    works, but if users logout/login using the same account frequently
    or you restart JBoss 4.0.4 during their session then it might
    happen. Then it doesn't work at all even if you wait. Client is
    able to send messages when this problem occurs, which can then be
    intercepted by other clients but cannot receive any messages from
    himself or from the others. JBoss 4.0.4 is running in cluster mode.
    Could it be that there is an old frozen session which is receiving
    the messages meant for the new client?(consumer selector is unique
    to each user, but if a user logs in twice, the same selector is
    used) If I run 2 instances of my JMS test consumer using the same
    selector then the consumer which registered later receives the
    messages and if it quits, then the older consumer starts receving
    them. This doesn't occur in Flex.
    Flex is running on Tomcat 5.5.17.
    Our messaging-config.xml is
    <?xml version="1.0" encoding="UTF-8"?>
    <service id="message-service"
    class="flex.messaging.services.MessageService"
    messageTypes="flex.messaging.messages.AsyncMessage">
    <adapters>
    <adapter-definition id="actionscript"
    class="flex.messaging.services.messaging.adapters.ActionScriptAdapter"
    default="true" />
    <adapter-definition id="jms"
    class="flex.messaging.services.messaging.adapters.JMSAdapter"/>
    </adapters>
    <destination id="JMSQueueB">
    <properties>
    <network>
    <session-timeout>10</session-timeout>
    </network>
    <jms>
    <initial-context-environment>
    <property>
    <name>java.naming.factory.url.pkgs</name>
    <value>org.jboss.naming:org.jnp.interfaces</value>
    </property>
    <property>
    <name>Context.PROVIDER_URL</name>
    <value>jnp://x.x.x.x:1100,jnp://x.x.x.y:1100</value>
    </property>
    <property>
    <name>Context.INITIAL_CONTEXT_FACTORY</name>
    <value>org.jnp.interfaces.NamingContextFactory</value>
    </property>
    </initial-context-environment>
    <destination-type>Queue</destination-type>
    <message-type>javax.jms.TextMessage</message-type>
    <connection-factory>ConnectionFactory</connection-factory>
    <destination-jndi-name>queue/B</destination-jndi-name>
    <destination-name>B</destination-name>
    <delivery-mode>PERSISTENT</delivery-mode>
    <message-priority>DEFAULT_PRIORITY</message-priority>
    <acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
    <transacted-sessions>false</transacted-sessions>
    </jms>
    </properties>
    <channels>
    <channel ref="my-rtmp"/>
    <channel ref="my-secure-amf"/>
    </channels>
    <adapter ref="jms"/>
    </destination>
    </service>
    Part of our actionscript code:
    pmConsumer = new Consumer();
    pmConsumer.destination = "JMSQueueB";
    pmConsumer.selector = "some jms selector ....";
    pmConsumer.addEventListener(MessageEvent.MESSAGE,
    presenceMessageHandler);
    pmConsumer.addEventListener(MessageFaultEvent.FAULT,
    faultHandler);
    pmConsumer.addEventListener(ChannelFaultEvent.FAULT,
    channelFaultHandler);
    pmConsumer.subscribe();
    Also Flex seems to be handing channel switching incorrectly,
    if rtmp port is firewalled, it won't use amf properly even though
    it was given 2 channels in configuration file and JMS messaging
    doesn't work. We have to alter the channel set during runtime.
    Flex also doesn't automatically switch to other JMS server if
    one goes down. Is this a feature or a bug? We have to reset
    producer and consumer in order for this to work.

    Hi,
    It was in earlier version of the OS that you could turn Bonjour On and Off.
    If this can be done in Leopard and Snow Leopard I have not found it yet. (But I don't look that often and nor for very long)
    This Forum may help with that
    I would also try a PRAM reset. (on Both computers)
    Shut down the computer.
    Restart it holding down APPLE(or ⌘)ALT+PR Keys until you have heard three Start Up Bongs.
    7:18 PM Tuesday; December 8, 2009
    Please, if posting Logs, do not post any Log info after the line "Binary Images for iChat"

  • ALDSP 3.2 - How to create JMS message from ALDSP

    Is there a way to write a jms message from ALDSP?
    I want to be able to perform database updates to a database and also write a message to queue in a transaction.
    Thanks

    As per my understanding only one resource can be non-transactional. In this case it would be the Web Service.If you have n data sources and the first n-1 are transactional and the nth one is not - if you update the first n-1 successfully, and the nth one fails - then you just throw an exception and the updates to the n-1 data sources get rolled back. If an update to one of the n-1 data sources fails you throw an exception and the update to the nth data source never happens. In your case, it's up to you to ensure the updates are executed in the correct order (how you write your XQSE procedure).
    Will the call to write a jms message from a Java function in ALDSP participate in the database transaction? DSP doesn't suspend the current transaction when calling a Java function. So yes, the JMS call would participate in the same transaction as the database call.
    If you want to dump out the transactionId in your java function in the same format as it appears in the DSP Audit, you can use :
    public String byteArrayToHexString(byte in[]) {
    StringBuffer out = new StringBuffer(in.length * 2 + 2);
    out.append("0x");
    for(int i = 0; i < in.length; i++) {
    byte ch = 0x00;
    ch = (byte) (in[i] & 0xF0);
    ch = (byte) (ch >>> 4);
    ch = (byte) (ch & 0x0F);
    out.append(HEX[(int) ch]);
    ch = (byte) (in[i] & 0x0F);
    out.append(HEX[(int) ch]);
    return out.toString();
    }

  • Valid JMS Message status

    Hello All,
    I have two WLS domains. One WLS 10.3.X, another is WLS 8.1.X
    Each domain have one queue each (e.g. 10.3.X => Q1 & 8.1.X => Q2) and the 10.3.X domain have been configured with a MessageBridge to deliver the messages from Q1 to Q2
    Each domain have ConnectionFactories XA enabled and the Bridge adapter is also set to "eis.jms.WLSConnectionFactoryJNDIXA"
    Now the Bridge is showing active, but if we put a test message in Q1, it is taking long to be delivered to Q2. There is no error in the logs (Debug Flgs have also been enabled).
    Sometimes it is also not being delivered at all.
    During this, the status of the message in the Q1 is showing "receive transaction".
    So can anyone tell me :
    1> what are the valid status of any message in wls jms queues and what are the meaning of them.
    2> what is the lifecycle of a message.
    Thanks in advance

    http://docs.oracle.com/cd/E24329_01/apirefs.1211/e24391/weblogic/jms/extensions/JMSMessageInfo.html#JMSMessageInfo(long,%20int,%20java.lang.String,%20long,%20java.lang.String,%20weblogic.jms.extensions.WLMessage,%20java.lang.String,%20boolean)
    "visible - The message is visible on the destination and may be consumed.
    send - The message is pending because it is associated with an in progress send operation.
    receive - The message is pending because it has been received by a consumer but not yet acknowledged.
    transaction - The message is associated with a transactional “send” or “receive” operation that is in progress.
    ordered - The message belongs to a Unit-of-Order (UOO).
    delayed - The message is pending because it has a scheduled delivery time or is otherwise delayed.
    expired - The message has expired and is no longer available for consumption.
    redelivery-count-exceeded - The message has exceeded the redelivery count set for the destination and is no longer available for consumption.
    paused - The message is pending because of a destination pause operation .
    sequenced - The message that is part of a SAF sequence.
    unit-of-work-component - The message is part of an Unit-of-Work (UOW).
    deleted - The message is marked for deletion."
    You can enable message life cycle logging
    - http://docs.oracle.com/cd/E24329_01/web.1211/e24385/troubleshoot.htm#i1128815
    "The message life cycle is an external view of the events that a JMS message traverses through once it has been accepted by the JMS server, either through the JMS APIs or the JMS Message Management APIs. Message life cycle logging provides an administrator with easy access to information about the existence and status of JMS messages from the JMS server viewpoint. In particular, each message log contains information about basic life cycle events such as message production, consumption, and removal."
    There is also a WLST script provided here (Re: Example using of getMessage(s) with JMS error queues? for browsing messages on a given destination.

  • JMS Message Sequencing

              Has any seen or figured out a way to track and/or sequence (keep the order of)
              JMS Messages placed on a distributed destination's target queues on each managed
              node? Seems like you can only do this with on dedicated queue but you lose clustering.
              Thanks
              Ryan
              

    Hi Ryan,
              Ordering is still preserved between a single instance of
              a queue sender and a queue consumer if "load balancing
              enabled" is set to false on the connection factory.
              My guess is you still need a way to ensure that subsequent
              instances of the same producer end up going back to the
              same physical destination. This can be accomplished by
              (1) hard coding the destination destination name
              - or -
              (2) taking advantage of the fact that the
              producer will connect to its local destination
              if producer, connection factory, and destination
              are all running on the same JVM.
              - or -
              (3) Giving each physical
              destination the same JNDI name, turn off
              "JNDINameReplicationEnabled" on each destination,
              and ensuring that the producer uses a JNDI
              context that is from the desired JVM to
              look up the physical destination JNDI name.
              Tom, BEA
              Ryan Richards wrote:
              > Has any seen or figured out a way to track and/or sequence (keep the order of)
              > JMS Messages placed on a distributed destination's target queues on each managed
              > node? Seems like you can only do this with on dedicated queue but you lose clustering.
              >
              > Thanks
              > Ryan
              

  • Getting a file name from a JMS message

    Hello,
    I am trying to unzip a jms message file, but in order to unzip it, I have to somehow have the file name in a java input stream. Since there is no message.getFileName method, I really don't know what to do.
    I am trying to do this in the onMessage method in one an MDB and it is not possible for me to have the fileName sent in the JMS header. Please help!
    Jeremy

    I got the code I am using off the sun developer's website and it uses a File Input Stream/Zip Input Stream which you need the file name of the file you are unzipping in order to unzip it.
    I guess what would be more helpful would be to know how exactly to unzip a .gz file within a JMS message. See, I am receiving a message to a queue, and upon getting this message I am to unzip the .gz file within the message and process it further through other workflows. One thing though, we are trying to do this without writing the file anywhere until we are completely done with the workflows, so this all needs to be done in the run time memory.
    As an intern, I am not that savy with these things, so any help would be greatly appreciated.

  • Need suggestion on  implementing JMS message error recovery

    Hi,
    Our application has a JMS topic where we publish application events. Now, there can be scenarios where the consumers cannot process the message due to some infrastructure issues and would error out. We need a way so that those messages can be reprocessed again later. we are thinking of the following design for JMS message error recovery
    1. Use a persistent TOPIC (this would ensure guaranteed delivery)
    2. Configure a error destination on JMS topic e.g a jms queue
    3. Have an error handling MDB listening to the Error destination. An error handling MDB would dequeue the errored messages from error destination and persist it to a Data base "error" table..
    4. Provide a mechanism to republish those messages to topic (e.g a scheduler or admin ui or a command line utility) .. The messages would deleted from database "error" table and published to topic again....
    A. Are there any issues with the above design which we need to handle?
    B. Are there any additional steps required in a Cluster environment with a distributed topic and distribute error destination? (our error mdb will have one-copy-per-application setting)
    B. From a performance angle, Is it OK to use persistent TOPIC ? Or will it better to persist the message to the db table and then publish it as a non persistent message ... ? (But i guess the performance should be more or less the same in both of these approaches)
    C. Are there any other recommended design patterns for error recovery of JMS messages
    Please advise.
    Regards,
    Arif

    Thanks Tom !
    We may not be able to go with the approach of delaying/pausing redelivery of the messsage because
    1. Pausing entire MDB approach: Our MDB application consumes messages generated by different producers and our MDB needs to continue processing the messages even if messages corresponding to one producer is erroring out
    2. Redelivery delay : This would only delay the retry of an errored message. But there would still be a problem if the message fails during all retries (i.e redelivery limit count). We don't want to lose this message. In our case, It is possible that a particular message cannot be processed due to unavailability of a third party system for hours or may be a day.
    Basically, i am looking on approaches for a robust and performant error recovery/retry framework for our application (refer details in my first post on this thread) while fully making use of all features provided by middleware (WLS). Please advise.
    Regards,
    Arif

  • Lost (and found) JMS - messages

              Using WLS 6.1 and have experienced that JMS messages has not been delivered to
              its consumer correctly. We are interested in any suggestions to what has happend,
              what can be done to avoid the problem in the future, or perhaps how we can find
              out more about the problem.
              We have a message driven bean A which sends messages to the queue Q, of which
              the message driven bean B is the only consumer.
              What we recently have experienced is that some of the messages delivered by A
              to Q never are delivered to B. But the messages seems to be persisted correctly,
              because after a restart they reappear!
              Following is a more detailed description of the scenario:
              1. A message is sendt with DeliveryMode=PERSISTENT and TimeToLive=0. QueueSender.send
              is invoked and returns normally.
              2. The consumers never gets the message (B.onMessage i never invoked with this
              message).
              3. Point 1-2 is repeated for 13 different messages over a period when ~100 similar
              messages are delivered normally.
              4. The server is then restarted.
              5. In the starup log it is indicated that 44 records are found in the JMSStore.
              6. When the server restarts, the "lost" messages gets delivered to B.
              After the server restart we have not experienced the problem again.
              Logs does not show anything unusual about the previous restart.
              Other details:
              There is always exatly 1 instance of A running, and 5-20 instances of B. A implements
              and uses a pool of javax.jms.XAQueueSession instances, which shares a single instance
              of javax.jms.XAQueueConnection. The aknowledge-mode for B is "Auto-aknowledge".
              We're using Weblogic Server 6.1.3.0 / Red Hat Linux 7.3.
              Any help on this problem is appreciated!
              

              I believe we've seen just the behaviour you describe on 6.1 SP2, but only on a
              multi-cpu box (Solaris), and only under load. We can't reproduce the problem reliably,
              and get no error messages/warnings anywhere, so very little to send to customer
              support; by the time we notice this, the problem's long passed, so a thread dump's
              of no use.
              We're going to try and see how SP5 (which has loads of JMS fixes) pans out.
              But if you find anything out, could you post here?
              simon.
              "Harald Stendal" <[email protected]> wrote:
              >
              >Using WLS 6.1 and have experienced that JMS messages has not been delivered
              >to
              >its consumer correctly. We are interested in any suggestions to what
              >has happend,
              >what can be done to avoid the problem in the future, or perhaps how we
              >can find
              >out more about the problem.
              >
              >We have a message driven bean A which sends messages to the queue Q,
              >of which
              >the message driven bean B is the only consumer.
              >What we recently have experienced is that some of the messages delivered
              >by A
              >to Q never are delivered to B. But the messages seems to be persisted
              >correctly,
              >because after a restart they reappear!
              >
              >Following is a more detailed description of the scenario:
              >
              >1. A message is sendt with DeliveryMode=PERSISTENT and TimeToLive=0.
              >QueueSender.send
              >is invoked and returns normally.
              >2. The consumers never gets the message (B.onMessage i never invoked
              >with this
              >message).
              >3. Point 1-2 is repeated for 13 different messages over a period when
              >~100 similar
              >messages are delivered normally.
              >4. The server is then restarted.
              >5. In the starup log it is indicated that 44 records are found in the
              >JMSStore.
              >6. When the server restarts, the "lost" messages gets delivered to B.
              >
              >After the server restart we have not experienced the problem again.
              >
              >Logs does not show anything unusual about the previous restart.
              >
              >Other details:
              >There is always exatly 1 instance of A running, and 5-20 instances of
              >B. A implements
              >and uses a pool of javax.jms.XAQueueSession instances, which shares a
              >single instance
              >of javax.jms.XAQueueConnection. The aknowledge-mode for B is "Auto-aknowledge".
              >
              >We're using Weblogic Server 6.1.3.0 / Red Hat Linux 7.3.
              >
              >Any help on this problem is appreciated!
              >
              

Maybe you are looking for

  • How to open a swf file in a new NON-browser window

    Hi, I'm trying to create a page where you click on the video thumbnail and the video opens up in its own window. I'd like the video to open at a specific size that I determine, not the browser, and I want it to be scalable. Here is what I have so far

  • While invoice verification system calculating tax on delivery costs also

    hi Guru's    i am facing problem that , wile invoice verification system calculating tax on delivery costs also , and when i am removing tax code in front of dilivery costs , invoice is not posting , i can use zero tax code for delivery costs , but i

  • Printable Report Query Problem

    I am attempting to develop a printable report query. I have created a report query under shared components that consists of 12 separate queries that gather data that all relates to a single page item. The intent is to create a printed PDF document fo

  • Mouse wrangling, can the mouse be confined to an area of a swf

    I want to be able to make the mouse only able to move around on part of the stage namely the bottom 75px. So I want ot to be able to move 100% on the X axis but I want to restrict the movement along the y axis. Is there a way to do this without using

  • Doubts in entering Challan details thorough text file....

    Hi Experts... When im trying to put the data in excel sheet which it has to be imported in f16 ,here im confused with the payroll period. The paydate and the date of deduction are showing as 20070526.For this period what is the payroll period. Which