JMS with pending message

In the WLS7 domain, there are MDB, EJB and startup class.The startup class need
          30 seconds. MDB & EJB are all depend on
          the result from the startup class.
          When restart the domain with pending messages,
          1.whether by default MDB processes the
          pending message before startup class finishs running?
          2. is it possible to let MDB wait until startup class finishs?
          Regards,
          David
          

Setting "start-mdbs-with-application" to false in
          weblogic-application.xml would start mdb's after
          opening the listen port (at the very end of the
          server boot).
          David wrote:
          > In the WLS7 domain, there are MDB, EJB and startup class.The startup class need
          > 30 seconds. MDB & EJB are all depend on
          > the result from the startup class.
          > When restart the domain with pending messages,
          > 1.whether by default MDB processes the
          > pending message before startup class finishs running?
          > 2. is it possible to let MDB wait until startup class finishs?
          >
          > Regards,
          > David
          

Similar Messages

  • Sync/Async bridge via JMS with FAULT messages

    Hello all,<br><br>
    I set up a sync/async bridge scenario with using of JMS communication channel (SAP - JMSReceiverCC - JMSServer and application - JMSSenderCC - SAP). The normal communication works fine.<br>
    But what we can not solve is the Fault Message handling. If there is a application error behind the JMS, a fault message is generated instead of proper application response and sent back to XI. Without any additional setup of JMS Sender CC the processing of the message ends with "MAPPING - EXCEPTION_DURING_EXECUTE", because normal "response mapping" is executed instead of "fault message mapping". This is correct behavior without any discussion.<br><br>
    [SAPhelp|http://help.sap.com/saphelp_nw70/helpdata/en/45/202845de34072ce10000000a155369/frameset.htm] says that there are 2 module parameters to be set : fault, faultNamespace. The description is rather vague, so let's see, what the "NotifyResponseBean" does, when parameters fault/faultNamespace are filled:<br><br>
    <pre>if(fault != null && faultNamespace != null)
      if(faultNamespace.equals("http://sap.com/xi/XI/System"))
        ((XIMessage)message1).setMessageClass(MessageClass.SYSTEM_ERROR);
        ((XIMessage)message1).setError(fault, "no additional information");
      } else
        ((XIMessage)message1).setMessageClass(MessageClass.APPLICATION_ERROR);
        ErrorInfo errorinfo = message1.createErrorInfo();
        errorinfo.setAttribute("ApplicationFaultInterface", fault);
        errorinfo.setAttribute("ApplicationFaultInterfaceNamespace", faultNamespace);
        errorinfo.setAttribute("ErrorCode", fault);
        errorinfo.setAttribute("AdditionalErrorText", "no additional information");
        message1.setErrorInfo(errorinfo);
    } else
      ((XIMessage)message1).setMessageClass(MessageClass.APPLICATION_RESPONSE);
    }</pre><br>
    The code is pretty straight forward so one could assume, that it's the name and namespace of inbound synchronnous message interface what is supposed to be filled in the values of each parameter. And from that kind of information SAP XI can evolve how to handle the response, actually the fault.<br>
    Unfortunatelly the real situation is different - every time the fault message is generated and sent back to XI, the response is correctly corelated with the request message, "WaitResponseBean" and "NotifyResponseBean" are finished correctly and the processing crashes in messaging class on following exception:<br><br>
    java.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:592) at
    com.sap.aii.messaging.mo.MessageContext.setAttribute(MessageContext.java:140) at
    com.sap.aii.adapter.xi.ms.XIMessage.updateHeaders(XIMessage.java:4244) at
    com.sap.aii.adapter.xi.ms.XIMessage.getTransportHeaders(XIMessage.java:570) at
    com.sap.aii.af.ra.ms.impl.ServerConnectionImpl.request(ServerConnectionImpl.java:212) at
    com.sap.aii.af.ra.ms.impl.core.transport.http.MessagingServlet.doPost(MessagingServlet.java:337) at ...
    <br><br>
    Is there anyone, who can put more light on JMS sync/async bridge fault handling ???
    <br><br>
    Thank you ...<br>
    Regards
    Tomas

    Hello again,
    I proceed in investigation little more, but the main problem has not been solved. I found that the problem is not even in WaitResponseBean (placed in JMCReceiverCC). This bean is woken up properly on base of proper CorrelationID. See the log:
    2009-10-15 11:00:33 Success WRB: entering WaitResponseBean
    2009-10-15 11:00:33 Success WRB: retrieving the message for f1ea1fc0-b96d-11de-9b68-00144f4acd86 ...
    2009-10-15 11:00:46 Success WRB: retrieved the message: ApplicationError
    2009-10-15 11:00:46 Success WRB: leaving WaitResponseBean
    I think, that the problem is somewhere within main messaging functionality. I suppose that on base of exception message:
    com.sap.aii.messaging.mo.MessageContext.setAttribute(MessageContext.java:140) at
    which is generated.
    Any ideas or comments ?
    Thank you in advance.
    Regards
    Tomas

  • Problem with pending message

    Hi,
    I’m working with SAP XI 3.0 SP9.
    I have tried to execute a wrong Business Process. My message (receive) status is OK but the Business Process stopped in one Block.
    So my Outbound Status is pending.
    After that a made some changes in my Business Process but after the new tests my Scenario is still working with the First (wrong) BP and I’m receiving more pending messages.
    I can’t Cancel or Refresh execution of that message because receive status is OK!!
    Any idea how can I cancel that message execution?
    Thanks in advance and best regards
    Naycho

    Hello,
    I am using front end patch 9 and when I use to functionality 'Convert to Formula' this works fine.
    In the analysis grid you would right-click in the body of the grid and select 'Convert to Formula'.  Then when you refresh your workbook the format modifications should remain.
    If you have not tried this already I think it should resolve your problem.
    Fred

  • JMS messages stuck as Pending messages

              Hi.
              I am trying to write an application to process huge amounts of data. I try to
              process around 1,000, 000 messages [java objects] using a single queue and 8 MDB.
              The strange thing is that in the end there are always 10 messages stuck in the
              pending message category.
              I can also observe that a weblogic thread is stuck. [can see it in the console]
              The stuck thread current description is something like "Connectio27.Session28".
              I have tried to use the QueueConnectionFactory from a EJB using resource reference
              instead of fetching it directly. Even this has not helped. I guess the problem
              is that while loading the messages onto the queues, one of the threads gets stuck
              somewhere.
              I am sing MDB's for processing. There doesnot seem to be any problems on the MDB
              side.
              If I reboot the server the 10 messages get processed successfully.
              Any ideas will be highly appreciated.
              -Sharma
              

    if you waited for a minute or so between each threaddump, it definitly
              sounds like an issue around the database query not returning or there is too
              much data being returned.
              sree
              "Ghanshyam Sharma" <[email protected]> wrote in message
              news:40e2d9d6$1@mktnews1...
              >
              > Hmm, I didnt wait too much between thread dumps. Probably a minute or two.
              >
              > Let me check the oracle stuff.
              >
              > Thanks a Lot.
              >
              > -Sharma
              >
              > "sree bodapati" <iwillreply@thenewsgroups> wrote:
              > >Threaddumps dont seem to show much except for it looks like both execute
              > >thread 13 and 12 are stuck reading from oracle , you may want to see
              > >what
              > >query is being sent to oracle by instrumenting you MDB code see that
              > >query
              > >properly returns. The threads are runnable but they dont seem to move
              > >, what
              > >was the duration between each thread dump ?
              > >
              > >/
              > >sree
              > >
              > >
              > >"Ghanshyam Sharma" <[email protected]> wrote in message
              > >news:40e2ce39$1@mktnews1...
              > >>
              > >> Hi Tom.
              > >>
              > >> I am attaching a thread dump of the server on windows, when I have
              > >20
              > >messages
              > >> stuck as pending with MDB's having not-supported transaction attribute.
              > >>
              > >> I hope this helps in debugging the problem. Please let me know if
              > >something is
              > >> needed.
              > >>
              > >> Thanks everyone.
              > >> -Sharma
              > >>
              > >>
              > >> Tom Barnes
              >
              ><[email protected].bea.com>
              > >> wrote:
              > >> >As I wrote below, a thread-dump of the WL Server that hosts
              > >> >the stuck MDB might help explain things.
              > >> >
              > >> >Sharma wrote:
              > >> >
              > >> >> Hm, this is confirmed. I pumped in one million messages a few time
              > >> >with and without
              > >> >> file stores to differe the performance, but every time I get a clean
              > >> >slate :)
              > >> >>
              > >> >> Looks like having required transaction attribute somehow removes
              > >this
              > >> >problem.
              > >> >>
              > >> >>
              > >> >> But still I do not understand why messages were getting stuck with
              > >> >not-supported
              > >> >> attribute. Tom is it possible to understand this. The
              > >phenomenon/Reason
              > >> >behind
              > >> >> this may show up somewhere else :)
              > >> >>
              > >> >> -Sharma
              > >> >>
              > >> >> Tom Barnes
              >
              ><[email protected].bea.com>
              > >> >> wrote:
              > >> >>
              > >> >>>The default is no transactions. I also find it curious
              > >> >>>that this helps. I wonder if tx timeouts are helping here...
              > >> >>>
              > >> >>>Sharma wrote:
              > >> >>>
              > >> >>>
              > >> >>>>Surprisingly I could process all one million messages if I
              configure
              > >> >>>
              > >> >>>the MDB's
              > >> >>>
              > >> >>>>as folowing.
              > >> >>>>
              > >> >>>>Default-transaction=required
              > >> >>>>Transaction-typr=container
              > >> >>>>
              > >> >>>>When I was getting the problem, I had nothing for these settings.
              > >> >I
              > >> >>>
              > >> >>>do not know
              > >> >>>
              > >> >>>>what is the default, probably Not-supported ???
              > >> >>>>
              > >> >>>>Let me try my testing a few times and than confirm to you guys.
              > >> >>>>
              > >> >>>>Tom Barnes
              >
              ><[email protected].bea.com>
              > >> >>>>wrote:
              > >> >>>>
              > >> >>>>
              > >> >>>>>Since you narrowed the problem down to the MDB side, can
              > >> >>>>>post a thread dump of the server when it is stuck? That
              > >> >>>>>might help diagnose the problem.
              > >> >>>>>
              > >> >>>>>Ghanshyam Sharma wrote:
              > >> >>>>>
              > >> >>>>>
              > >> >>>>>
              > >> >>>>>>Infact The thread which is stuck is not the loader/message
              producer
              > >> >>>>>
              > >> >>>>>thread. It
              > >> >>>>>
              > >> >>>>>
              > >> >>>>>>is a thread handling message driven beans. My producers end up
              > >populating
              > >> >>>>>
              > >> >>>>>the
              > >> >>>>>
              > >> >>>>>
              > >> >>>>>>JMS correctly.
              > >> >>>>>>
              > >> >>>>>>This is 81sp02.
              > >> >>>>>>-Sharma
              > >> >>>>>>
              > >> >>>>>>"Ghanshyam Sharma" <[email protected]> wrote:
              > >> >>>>>>
              > >> >>>>>>
              > >> >>>>>>
              > >> >>>>>>>Hi.
              > >> >>>>>>>
              > >> >>>>>>>I am trying to write an application to process huge amounts
              > >of
              > >> >data.
              > >> >>>>>>>I try to
              > >> >>>>>>>process around 1,000, 000 messages [java objects] using a single
              > >> >>>
              > >> >>>queue
              > >> >>>
              > >> >>>>>>>and 8 MDB.
              > >> >>>>>>>The strange thing is that in the end there are always 10
              messages
              > >> >>>
              > >> >>>stuck
              > >> >>>
              > >> >>>>>>>in the
              > >> >>>>>>>pending message category.
              > >> >>>>>>>
              > >> >>>>>>>I can also observe that a weblogic thread is stuck. [can see
              > >it
              > >> >in
              > >> >>>>>
              > >> >>>>>the
              > >> >>>>>
              > >> >>>>>
              > >> >>>>>>>console]
              > >> >>>>>>>The stuck thread current description is something like
              > >"Connectio27.Session28".
              > >> >>>>>>>
              > >> >>>>>>>I have tried to use the QueueConnectionFactory from a EJB using
              > >> >resource
              > >> >>>>>>>reference
              > >> >>>>>>>instead of fetching it directly. Even this has not helped. I
              > >guess
              > >> >>>>>
              > >> >>>>>the
              > >> >>>>>
              > >> >>>>>
              > >> >>>>>>>problem
              > >> >>>>>>>is that while loading the messages onto the queues, one of the
              > >> >threads
              > >> >>>>>>>gets stuck
              > >> >>>>>>>somewhere.
              > >> >>>>>>>
              > >> >>>>>>>I am sing MDB's for processing. There doesnot seem to be any
              > >problems
              > >> >>>>>>>on the MDB
              > >> >>>>>>>side.
              > >> >>>>>>>
              > >> >>>>>>>If I reboot the server the 10 messages get processed
              successfully.
              > >> >>>>>>>
              > >> >>>>>>>Any ideas will be highly appreciated.
              > >> >>>>>>>-Sharma
              > >> >>>>>>
              > >> >>>>>>
              > >> >>
              > >> >
              > >>
              > >
              > >
              >
              

  • Trying to integrate with User Messaging Service adapter in SOA suite.Can it be possible through an JMS interface.

    Trying to integrate with User Messaging Service adapter in SOA suite. Can it be possible through an JMS interface.
    I have an JMS backend integrated to Oracle B2B. Is it possible to send an email protocol message using JMS interface to B2B where User messaging Service has been implemented. The adapters required for UMS have been deployed and the sdpmessaging jar files also have been added to the classpath. The only problem i face is i dont have an BPEL system to integrate where as in the forums it has been mentioned how to post a message using BPEL.
    Please let me know if there is a way to integrate the adapter with JMS interface.
    Thanks in advance
    Deepak

    If I remember correct, to use JCA adapter with SOA stack requires that adapter implement some Oracle API.
    The Adapter SDK is a light-weight tool kit that enables rapid implementation and deployment --- http://www.oracle.com/technology/products/integration/adapters/pdf/DS_OracleASAdapter.pdf
    http://download.oracle.com/docs/cd/B16981_04/current/acrobat/cct115dg.pdf
    Mostly you will have to wrap your jca adapter to make it available in SOA suite/stack.
    Other option is that you adapter provider would have given CCI interface or some custom interface which can be used for invoking adapter end-points.
    Manoj

  • Integrating Messaging system like MQ Series or JMS with SIM

    Hi,
    I am working with Integrating Messaging system Integration with SIM.
    Can anyone tell me in detail how we can integrate Messaging system like MQ Series/JMS with Sun Identity Manager?
    Thanks & Regards
    Chitarm

    Hi,
    I am working with Integrating Messaging system Integration with SIM.
    Can anyone tell me in detail how we can integrate Messaging system like MQ Series/JMS with Sun Identity Manager?
    Thanks & Regards
    Chitarm

  • Sample Websphere6 JMS application with default Messaging

    Hi,
    Where could I get the Sample Websphere6 JMS application with default messaging?.
    Please post me a link
    Thank you

    I am trying to execute
    SimpleQueueSender.java from jms tutorial but unforunately getting following
    errors.
    Errors-->
    Queue name is MyQueue
    JNDI lookup failed: javax.naming.CommunicationException:
    java.rmi.MarshalException: CORBA MARSHAL 13
    98079699 Maybe; nested exception is:
    org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge :
    minor code: 139807969
    9 completed: Maybe
    org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : minor
    code: 1398079699 comple
    ted: Maybe
    at
    com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_value(CDRInputStream_
    1_0.java:936)
    at
    com.sun.corba.ee.internal.iiop.CDRInputStream.read_value(CDRInputStream.java
    :292)
    at
    com.sun.corba.ee.internal.corba.TCUtility.unmarshalIn(TCUtility.java:268)
    at
    com.sun.corba.ee.internal.corba.AnyImpl.read_value(AnyImpl.java:562)
    at
    com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_any(CDRInputStream_1_
    0.java:618)
    at
    com.sun.corba.ee.internal.iiop.CDRInputStream.read_any(CDRInputStream.java:2
    63)
    at
    com.sun.corba.ee.internal.javax.rmi.CORBA.Util.readAny(Util.java:103)
    at javax.rmi.CORBA.Util.readAny(Util.java:92)
    at
    org.omg.stub.com.sun.enterprise.naming._SerialContextProvider_Stub.lookup(Un
    known Source)
    at
    com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:154)
    at javax.naming.InitialContext.lookup(InitialContext.java:350)
    at SimpleQueueSender.main(SimpleQueueSender.java:70)
    I have all the setup required for running jms api examples & also tried all the tips mentioned here ,but still getting these errors . Any
    help would be greatly appreciated.
    Praveg

  • Having problem with 7.1.2 upgrade, mail icon indicates 70 pending messages when there are none

    Recently upgraded to iOS 7.1.2, the mail icon indicate there are 70 pending messages when in fact there are none

    Recently upgraded to iOS 7.1.2, the mail icon indicate there are 70 pending messages when in fact there are none

  • JMS Queue loosing messages on Server restart

    Hi ,
    We are having a problem with a queue that is loosing pending messages if the server is restarted.
    We have following setup of Oracle Weblogic version 9.2 mp1.
    The JMS Server is backed up by a DB based persistent store.we are having a message driven bean that process the message in the queue asynchronously.
    the message that is delivered to the queue has Delivery Mode 'persistent'
    and the mdb using transactionType=MessageDriven.MessageDrivenTransactionType.CONTAINER.
    What is strange that we are loosing pending message in the queue , when server is restarted .even checking in the xxx'_WLSSTORE table in db i can see the message
    was persisted.
    If anyone of you have seen this situation kindly let me know.
    thanks in advance.
    Rgds
    roy

    You can follow this article to troubleshoot pending message issues.
    http://weblogic-wonders.com/weblogic/2011/01/10/working-with-jms-and-the-standard-issues-in-jms/
    -Faisal

  • Pending message redelivery wait period after server startup

    Hi, I have seen an strange behaviour in the way pending JMS messages are
              redelivered to MDBs at server startup.
              In my unit test I have seen that, killing Weblogic during an MDB code
              execution as expected makes the container to redelivery unconfirmed message
              at server startup. I have also seen that it's redelivered about 4 minutes
              after server is started (more info of this in thread: "Problem with
              persistent messages and MDBs" 25 October 2002)
              After a recent crash we have had on the system in wich there were a lot of
              messages pending to deliver to an MDB we saw that they were being
              redelivered just after the MDBs were deployed while system was starting. Of
              course due to the fact that some components needed by the MDB were not
              deployed by that time, a lot of exceptions were raised making messages to be
              queued again and promptly delivered wich caused more exceptions. Just a big
              mess!
              I'm tring to figure a good work-around about this, what I wanted to know is
              how is implemented the "delay" to send messages after server startup. Is it
              done by comparing timestamp of message (when did it enter the queue and
              thereby persisted on the store) with current system time?. That approach of
              course will fail if any of the messages were sent before that "delay" time.
              If this is the case and there isn't a fix for it this is what I have in
              mind:
              Each MDB will have a private attribute wich will be used to detect when
              system has completely started. By default it will be false and after a
              message is sent to the MDB the first line of the onMessage method will test
              wether system has started or not (by checking weblogic connection port i.e.
              7001. Btw. is there any better way of checking server has finished start-up)
              if not, a runtime exception will be launched that will force message to be
              redelivered (without trying to execute any MDB code), I think setting a
              proper redelivery delay i.e. 30-60 secs. will allow server to startup with
              less problems (in the situation I described above JVM crashed with an 11
              system signal)
              Any other ideas to deal with this?
              Thanks in advance.
              Regards.
              Ignacio.
              

    Hi Ignacio,
              I think you can usually control the order in which ejb's are booted,
              through a combination of console settings and
              meta file entries. I suggest posting to the ejb newsgroup
              to find out how.
              The four minute delay you see is normal for resolving
              interrupted transactions, but I believe that an enhancement
              was put into a 7.0 SP to reduce or eliminate this interval,
              and that 8.1 has no interval. Post to the transaction
              newsgroup for more info, or contact customer support.
              Given that you referenced earlier posts on this issue, you
              probably already know how to tune the interval down to one
              minute even without the enhancements.
              There is no other delay for sending messages at system startup,
              as soon as the MDB is booted it attaches to JMS, and JMS
              starts delivering messages whose transactional state is known.
              Tom
              P.S. I suppose one way to detect end-of-boot is to
              place a startup class last in the boot order.
              P.P.S. For MDBs one alternative is to code a "sleep" in the onMessage if
              an unavailable resource is detected - this
              is hokey, but works as long as you have made sure that
              max-beans-in-free-pool totals do not come near or exceed
              available thread pool size.
              Ignacio G. Dupont wrote:
              > Hi, I have seen an strange behaviour in the way pending JMS messages are
              > redelivered to MDBs at server startup.
              >
              > In my unit test I have seen that, killing Weblogic during an MDB code
              > execution as expected makes the container to redelivery unconfirmed message
              > at server startup. I have also seen that it's redelivered about 4 minutes
              > after server is started (more info of this in thread: "Problem with
              > persistent messages and MDBs" 25 October 2002)
              >
              > After a recent crash we have had on the system in wich there were a lot of
              > messages pending to deliver to an MDB we saw that they were being
              > redelivered just after the MDBs were deployed while system was starting. Of
              > course due to the fact that some components needed by the MDB were not
              > deployed by that time, a lot of exceptions were raised making messages to be
              > queued again and promptly delivered wich caused more exceptions. Just a big
              > mess!
              >
              > I'm tring to figure a good work-around about this, what I wanted to know is
              > how is implemented the "delay" to send messages after server startup. Is it
              > done by comparing timestamp of message (when did it enter the queue and
              > thereby persisted on the store) with current system time?. That approach of
              > course will fail if any of the messages were sent before that "delay" time.
              >
              > If this is the case and there isn't a fix for it this is what I have in
              > mind:
              >
              > Each MDB will have a private attribute wich will be used to detect when
              > system has completely started. By default it will be false and after a
              > message is sent to the MDB the first line of the onMessage method will test
              > wether system has started or not (by checking weblogic connection port i.e.
              > 7001. Btw. is there any better way of checking server has finished start-up)
              > if not, a runtime exception will be launched that will force message to be
              > redelivered (without trying to execute any MDB code), I think setting a
              > proper redelivery delay i.e. 30-60 secs. will allow server to startup with
              > less problems (in the situation I described above JVM crashed with an 11
              > system signal)
              >
              > Any other ideas to deal with this?
              >
              > Thanks in advance.
              >
              > Regards.
              >
              > Ignacio.
              >
              >
              

  • Pending Messages waiting for Client Acknowledgement

              Hi,
              I have tried to search the Internet for an answer to this question but failed.
              Any clue???
              I have setup a queue on BEA WLS 7.4. I have four consumers which connect concurrently
              to dequeue messages. Each of the consumers serve as a proxy to other clients
              waiting for the messages.
              The proxy application (consumer) is developed such that it will send the client_acknowledge
              to the Q manager after it finishes processing the received message and sends it
              successfully to the external client.
              I noticed that in some exceptional cases which I cannot reproduce, the proxy application
              would fail to send the message to client and therefore wouldn't send the client_acknowldege.
              Although I tried to catch all possible exceptions, i cannot catch this single
              exception that causes my proxy to continue processing the messages in a proper
              way. The problem is that I end up with some Pending Messages on the queue which
              cannot be available to other consumers and would stay that way till the consumer
              that was attempting to dequeue it is killed.
              Isn't there any way to configure an expiry period for this client_acknowledge
              wait state??? In other words, is it possible to configure a time after which
              the JMS provider would no longer be waiting for the client_acknowledge and sends
              the pending message back to the Q in a state that makes it available to other
              consumers.
              

    Sorry. Once a message has been received in "CLIENT_ACKNOWLEDGE" mode, it
              remains pending and unavailable to other consumers until either the consumer
              is closed, acknowledge is called, or the client disconnects.
              Have you tried using a transacted session? In that case, the transaction
              will time out eventually, which will roll back the transaction and make the
              message visible again. You can control the length of this timeout using the
              "TransactionTimeout" parameter on the JMS connection factory.
              greg
              "Muhannad" <[email protected]> wrote in message
              news:[email protected]...
              >
              > Hi,
              > I have tried to search the Internet for an answer to this question but
              failed.
              > Any clue???
              >
              > I have setup a queue on BEA WLS 7.4. I have four consumers which connect
              concurrently
              > to dequeue messages. Each of the consumers serve as a proxy to other
              clients
              > waiting for the messages.
              >
              > The proxy application (consumer) is developed such that it will send the
              client_acknowledge
              > to the Q manager after it finishes processing the received message and
              sends it
              > successfully to the external client.
              >
              > I noticed that in some exceptional cases which I cannot reproduce, the
              proxy application
              > would fail to send the message to client and therefore wouldn't send the
              client_acknowldege.
              > Although I tried to catch all possible exceptions, i cannot catch this
              single
              > exception that causes my proxy to continue processing the messages in a
              proper
              > way. The problem is that I end up with some Pending Messages on the queue
              which
              > cannot be available to other consumers and would stay that way till the
              consumer
              > that was attempting to dequeue it is killed.
              >
              > Isn't there any way to configure an expiry period for this
              client_acknowledge
              > wait state??? In other words, is it possible to configure a time after
              which
              > the JMS provider would no longer be waiting for the client_acknowledge and
              sends
              > the pending message back to the Q in a state that makes it available to
              other
              > consumers.
              

  • Messages moving to Pending message state

              Hi
              Using: Weblogic 7.0 with SP2
              1. We have an Application server communicating with a JMS Hub that has a two server
              cluster. This server has an MDB configured dually - one MDB definition listening
              to each of the two physical queues of a virtual queue.
              2. A client writes a message to the virtual queue (causing it to be picked up
              by one of the physical queues). The client exits. I verify that the message actually
              lands up in one of the physical queues using console.
              3. I start the App server, and immediately the message moves to 'Messages Pending'
              column.
              4. The onMessage() of my MDB does not get called at all - I have a log in the
              first line of onMessage() that I do not see.
              5. Any further attempt by the client to put messages into the queue causes it
              to move over to the pending message state as long as the app server is up.
              Any ideas? Thanks bunch in advance.
              Here are the relevant ejb-jar and weblogic-ejb-jar.xml snippets:
              ejb-jar.xml:
                   <message-driven>
                        <ejb-name>AcqPoolClosingResponseMDB</ejb-name>
                        <ejb-class>com.fanniemae.core.sec.packetization.acq.ejb.AcqPoolClosingResponseMDB</ejb-class>
                        <transaction-type>Container</transaction-type>
                        <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
                        <message-driven-destination>
                             <destination-type>javax.jms.Queue</destination-type>
                        </message-driven-destination>
                   </message-driven>
                   <container-transaction>
                   <method>
                   <ejb-name>AcqValidationResponseMDB.OOPSResponseQueue</ejb-name>
                   <method-name>*</method-name>
                   </method>
                   <trans-attribute>NotSupported</trans-attribute>
                   </container-transaction>
              weblogic-ejbjar.xml:
                   <weblogic-enterprise-bean>
                        <ejb-name>AcqPoolClosingResponseMDB.LoanSetupQueue</ejb-name>
                        <message-driven-descriptor>
                             <pool>
                             <max-beans-in-free-pool>10</max-beans-in-free-pool>
                             <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
                             </pool>
                        <destination-jndi-name>LoanSetupQueue@SecJmsHub-jms04-1</destination-jndi-name>
                        <initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory>
                        <provider-url>t3://dcore-ap04:7159</provider-url>
                        </message-driven-descriptor>
                        <jndi-name>ejb/AcqPoolClosingResponseMDB</jndi-name>
                   </weblogic-enterprise-bean>
              

    Hi Srikant,
              I'm somewhat familiar with "core". The "ejb-class" gives
              you away. :-) I'm not sure what the problem is, but here
              are some things you can try:
              Item number one. The conflicting
              descriptor combo of "container" managed transaction and
              "not-supported" may be the issue. For container
              managed transactions in an MDB, I think the assembly-descriptor
              for the onMessage method should be set to "Required" in
              addition to setting the transaction type to "Container":
              <container-transaction>
              <method>
              <ejb-name>......</ejb-name>
              <method-name>onMessage()</method-name>
              </method>
              <trans-attribute>Required</trans-attribute>
              </container-transaction>
              If you don't want container managed transactions, do not
              specify a "transaction-type" of "Container".
              Item number two. The ejb-name field in container-transaction
              does not match the the ejb-name field in message-driven.
              Furthermore, with container managed transactions
              the acknowledge-mode is ignored so it need not be set.
              Item number three. It is possible that your MDB app
              is throwing a runtime exception before it hits your
              onMessage trace statement. This would cause the MDB container
              to roll-back the tx. The message will then remain
              in a pending state if it is immediately redelivered
              or if there is a redelivery delay configured.
              Hope this helps,
              Tom, BEA
              Srikanth Meenakshi wrote:
              > Hi
              >
              > Using: Weblogic 7.0 with SP2
              >
              > 1. We have an Application server communicating with a JMS Hub that has a two server
              > cluster. This server has an MDB configured dually - one MDB definition listening
              > to each of the two physical queues of a virtual queue.
              >
              > 2. A client writes a message to the virtual queue (causing it to be picked up
              > by one of the physical queues). The client exits. I verify that the message actually
              > lands up in one of the physical queues using console.
              >
              > 3. I start the App server, and immediately the message moves to 'Messages Pending'
              > column.
              >
              > 4. The onMessage() of my MDB does not get called at all - I have a log in the
              > first line of onMessage() that I do not see.
              >
              > 5. Any further attempt by the client to put messages into the queue causes it
              > to move over to the pending message state as long as the app server is up.
              >
              > Any ideas? Thanks bunch in advance.
              >
              > Here are the relevant ejb-jar and weblogic-ejb-jar.xml snippets:
              >
              > ejb-jar.xml:
              >      <message-driven>
              >           <ejb-name>AcqPoolClosingResponseMDB</ejb-name>
              >           <ejb-class>com.fanniemae.core.sec.packetization.acq.ejb.AcqPoolClosingResponseMDB</ejb-class>
              >           <transaction-type>Container</transaction-type>
              >           <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
              >           <message-driven-destination>
              >                <destination-type>javax.jms.Queue</destination-type>
              >           </message-driven-destination>
              >      </message-driven>
              >
              >
              >      <container-transaction>
              >      <method>
              >      <ejb-name>AcqValidationResponseMDB.OOPSResponseQueue</ejb-name>
              >      <method-name>*</method-name>
              >      </method>
              >      <trans-attribute>NotSupported</trans-attribute>
              >      </container-transaction>
              >
              > weblogic-ejbjar.xml:
              >
              >      <weblogic-enterprise-bean>
              >           <ejb-name>AcqPoolClosingResponseMDB.LoanSetupQueue</ejb-name>
              >           <message-driven-descriptor>
              >                <pool>
              >                <max-beans-in-free-pool>10</max-beans-in-free-pool>
              >                <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
              >                </pool>
              >           <destination-jndi-name>LoanSetupQueue@SecJmsHub-jms04-1</destination-jndi-name>
              >
              >           <initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory>
              >           <provider-url>t3://dcore-ap04:7159</provider-url>
              >           </message-driven-descriptor>
              >           <jndi-name>ejb/AcqPoolClosingResponseMDB</jndi-name>
              >      </weblogic-enterprise-bean>
              >
              >      
              

  • JMS - remove persistent messages from memory

    Hi,
    I have a problem with RAM and JMS. I have to store many JMS-messages (overall size
    of more than 2GB). By default they are stored in RAM and in the database.
    How can I configure WL not to store all messages in RAM.

    Do you mean Time to Live Override value that we set in Overrides tab for the jms queue.Yes. Time to Live override can be used for that purpose.
    Do all messages get stored in persistent (file)store while a jms server is up or only the messages with certain status like "Pending" get stored in jms.If yes,do the >pending messages get automatically deleted once the messages are read by the client application.All persistent messages gets stored in the jms store which includes messages in Messages Current ( status - visible ) state.
    Some of the non persistent messages which gets paged out to free physical memory also end up in the store.
    Messages get deleted from the store, but file stores doesn't relieve the disk space to OS after deleting ie file stores never shrink in size automatically. You can even end up with a huge file store even though no messages are pending in any of the queues under it.

  • Pending message in Queue

              All,
              During a load test, there are lots of pending messages in a queue. How can I speed
              up the message processing? Configure a session pool or increase poll interval?
              Any suggestion is welcome. I am new to this. Thanks.
              Regards,
              Wen
              

    Hi Rick
              I recommend starting with the JMS Performance Guide
              white-paper on dev2dev.bea.com. You can find it on
              the main JMS technology page:
              http://dev2dev.bea.com/technologies/jms/index.jsp
              Tom
              Rick Chang wrote:
              > All,
              >
              > During a load test, there are lots of pending messages in a queue. How can I speed
              > up the message processing? Configure a session pool or increase poll interval?
              >
              > Any suggestion is welcome. I am new to this. Thanks.
              >
              > Regards,
              > Wen
              

  • QueueBrowser enumeration and Pending Messages

              I've flooded a Queue with messages. When I use a QueueBrowser to look at the contents
              of the queue, the number of items I get back from QueueBrowser.getEnumeration()
              is nowhere near the number of Pending Messages shown in the WebLogic admin console.
              For instance, the WL admin console shows 33 PendingMessages, but the number of
              messages in the QueueBrowser enumeration is 7. This is a non-distributed queue
              and I'm running WL non-clustered. I do have an MDB listening to the queue, but
              I only have 5 instances of the MDB available in the pool, which is not enough
              to immeditely process all of the messages I've sent to the queue.
              Is using a QueueBrowser the proper way to determine how many messages are pending
              in a queue, or is there another method of determining this (short of accessing
              the admin console MBeans)?
              Thanks
              

    Hi Jeff,
              The QueueBrowser browses only those messages that are
              available for dequeue. Messages are not available if they are
              awaiting action by a particular consumer, producer, or
              delivery timer. In addition, JMS server's push
              messages up to 10 at a time to asynchronous
              consumers, so 5 MDBs may have a backlog
              of 50 messages that are unavailable to QueueBrowsers
              (or other consumers.) The maximum backlog is configurable
              via the connection factory "MessagesMaximum" setting.
              Tom
              Jeff wrote:
              > I've flooded a Queue with messages. When I use a QueueBrowser to look at the contents
              > of the queue, the number of items I get back from QueueBrowser.getEnumeration()
              > is nowhere near the number of Pending Messages shown in the WebLogic admin console.
              > For instance, the WL admin console shows 33 PendingMessages, but the number of
              > messages in the QueueBrowser enumeration is 7. This is a non-distributed queue
              > and I'm running WL non-clustered. I do have an MDB listening to the queue, but
              > I only have 5 instances of the MDB available in the pool, which is not enough
              > to immeditely process all of the messages I've sent to the queue.
              >
              > Is using a QueueBrowser the proper way to determine how many messages are pending
              > in a queue, or is there another method of determining this (short of accessing
              > the admin console MBeans)?
              >
              > Thanks
              >
              >
              

Maybe you are looking for

  • IPad/iPhone won't print to HP Photosmart Premium (C410a)

    I just bought an HP Photosmart Premium All in One printer (C410a).  I got it all hooked up, using wireless and I have set a manual IP for it.  I have a 2nd generation AirPort Extreme router which is only set to run DHCP from .100 to .200, I have the

  • Opening Adobe Reader PDF

    Four months ago I wrote that when I tried to open Adobe Reader PDF for any reason, Photoshop Elements 4 took over and Adobe Reader was opened in PE4. I was given advice toopen and check in a word document my file association and to "tell" the system

  • Addition of number to a timestamp

    Hi, I have a variable v_time_stamp timestamp(6); v_number number; I derive the number dynamically. I derive v_time_stamp from a table. when i add v_time_stamp and v_number i face a strange problem. the millisecond part of the result is lost. can some

  • SD- conditions to be mapped to COPA value field data in BI

    Hi Experts, I have a req where in I have to map condition level Sales order data to some COPA value fields. Currently for one Sale order item there are multiple conditions that means multiple line items. But when I try to find the COPA value field fo

  • Error when trying to deploy Async Binary Update Sample

    Hi, I have installed WLI 8.5 in linux machine, When trying to deploy the AsyncBinaryUpdate sample provided at http://edocs.bea.com/wli/download_samples/index.html), i get error. I am following as per the instructions in the readme of the sample. I am