Questions on MDB

Can anybody please clarify my doubts.
1.If I have found some problem while processing a message , I heard there is an option that We can send them to some error queue which is configured as Blackout queue. How can we do this blackout queue configuration. How will we specify which is blackout queue and which is normal queue. The procedure is same for both types of queues?
2. What is JAXM. Is it related to webservices. Where will we use it.
3. What is a message push. Can anybody please tell me how to specify and where to specify. What is meant by creating multiple queue sessions and setting up a thread manager ( with threadpool) in onMessage() method.
Thank you in advance. Appreciate your help.

Sorry,
I just saw your announcement on help-desk.
null

Similar Messages

  • MDB Accessing datasource

    Hi,
    I have a question regarding MDBs accessing a datasource. Since application servers create a pool of MDBs that will consume messages, how should the datasource be retrieved efficiently?
    public class MDB implements MessageDrivenBean, MessageListener
         private MessageDrivenContext   context = null;
              private DataSource dataSource = null;
         public void ejbCreate()
                        InitialContext initialContext = new InitialContext();
              dataSource = (DataSource) initialContext.
                                                      lookup(lookupstring);
         public void setMessageDrivenContext(MessageDrivenContext context)
               context = context;
         public void onMessage(Message msg)
                    Connection connection = dataSource.getConnection();
         public void ejbRemove()
    }Since the application server will instantiate a pool of MDBs, the ejbCreate method will be called n times depending on the size of the MDB pool. Each instance of the MDB will have their own instance of the datasource. I want my MDBs to share a single instance of the datasource. How can I do this?
    For example, fo servlets, you have an init method which is only called once by the servlet container where you can instantiate a datasource. Subsequent requests to the servlet will create 1 thread for each request. But each thread will only access a single instance of the datasource.
    How can i do this with MDBs? Is my code correct or is there a better way? Or is it even a non-issue for application servers. Btw, I'm using JBoss.
    Can anyone point to any reading about this or can clarify this?
    Thanks in advance :)

    Hi Uday
    Configuration link for Sender Adapter
    <b>http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm</b>
    Configuration link of Reciever Adapter
    <b>http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm</b>
    XML Document Format for the Message Protocol XML SQL Format
    <b>http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm</b>
    Hope it helps.For further doubts u are free to post
    Regards
    Arpit Seth

  • Increase Number of Concurrent MDBs

    We are using WL 10.3.3. The heaviest load of the app is the JMS message processing. With the default work manager, the maximum number of concurrent MDBs is 16. We need to increase the MDB instances to a larger number. What is the best way to accomplish this?
    I did the followings, but it does seem to be working -
    1. Created an application I set up a work manager with MaxThreadsConstraint is set to 30
    2. Added the work mananger's name to the Dispatch Policy of the message bean configuration
    But on the Monitoring/Workload tab of the message driven bean, neither the work manager nor the Max Threads Constraint showed up. And the maximum bean instances stayed at the 16.
    What is missing there?
    Thanks,
    Hong

    Hi ,
    You have to create a custom work manager and then you have to associate this customer work manager to the dispatch policy of the MDB to increase the threads.
    Following links would surely help you as TomB has explained the same issue very well, do have a look at them.
    Re: WorkManager Max thread constraints not applied to MDB
    Questions Regarding MDB
    1 - Set the MDB's dispatch-policy to reference a custom work manager (not the default work manager)
    2 - Set the MDB's max-beans-free-pool to higher than 16 (default is something like 1000)
    3 - Configure the custom work manager with max threads constraint of higher than 16.However in the first link as its suggest the values for "max-beans-free-pool" and "max threads constraint" should be more then 16 because that's the default value, hence I would suggest you to keep both these value same BUT more then 16.
    Regards,
    Ravish Mody
    http://middlewaremagic.com/weblogic/
    Come, Join Us and Experience The Magic…

  • ADO Error%3A 0x80004005

    I am in process of converting code writen in Labview 8.2 to Labview2013, and also changing from Windows XP to Windows 7.  I've been able to successfully compile & rebuild the code, but now am getting error message when running the executable.  Any ideas of how to resolve these?  
    Here are the error messages I get:
    NI_Database_API.lvlibB Tools Open Connec
    (String).vi->NI_Database_API.lvlibB Tools Open Connec
    (Path).vi->Titan_DBConnect.vi->TMS_frontend_Titan.vi<ERR>ADO Error:
    0x80004005
    Exception occured in Microsoft OLE DB Provider for ODBC
    Drivers: General error: Invalid file dsn '' in NI_Database_API.lvlibB Tools
    Open Connec (String).vi->NI_Database_API.lvlibB Tools Open Connec
    (Path).vi->Titan_DBConnect.vi->TMS_frontend_Titan.vi-2147467259 -
    There is a "Titan DBConnect.vi" VI that points to a "Database.dsn" file. 
    Here is what is in the Database.dsn file:  (This file is created by Windows, and is the same for XP & 7.)
    [ODBC]
    DRIVER=Driver do Microsoft Access
    (*.mdb)
    UID=admin
    UserCommitSync=Yes
    Threads=3
    SafeTransactions=0
    PageTimeout=5
    MaxScanRows=8
    MaxBufferSize=2048
    FIL=MS
    Access
    DriverId=25
    DefaultDir=C:\Test Config
    DBQ=C:\Test
    Config\Database.mdb
    Thanks!

    The document you linked above definitely could be useful in resolving your issue. Your original error mentioned a .dsn file, and your second post mentioned a .udl file. LabVIEW communicates with the database through either the ODBC standard (uses a DSN) or the OLE DB standard (uses a UDL file). Which standard are you actually trying to use? Either way, make sure all the the settings you're using are consistent whichever standard you're trying to use.
    http://digital.ni.com/public.nsf/allkb/1D5EB4DCBD13106486256B9D005E11B0 (the one you linked above) gives a good description of how to use the OLE DB standard to communicate with a database.
    I'm also a little unclear whether you were able to test the steps outlined in the first document linked above (http://digital.ni.com/public.nsf/allkb/E7984C0DA0F0E65086257694005B4CB7). Let me know if that process was successful or if you ran into any problems trying to follow those steps.
    You also asked a question about .mdb files. It may be possible that copying the file from XP to Windows 7 could have caused your problem. You can create a new .mdb file through LabVIEW by following the instructions detailed in this document:http://digital.ni.com/public.nsf/allkb/95EE6A951D01CE0A8625733F00098371?OpenDocument
    Finally, when executing the above instructions that you quoted, make sure that the file path is correct and that you are pointing to a .udl file. I was unable to duplicate the problem you were experiencing with those steps on my machine.
    Let us know if you make in progress with these suggestions.
    Ryan K.

  • MDB and MessageConsumer Queue Questions

    (1) Does a MessageConsumer object, when called on its onMessage() method, provide the same JMS queue processing as a Message Driven Bean (MDB) called on it's onMessage() method? That is, the message remains on the queue until the onMessage() method completes in both cases.
    (2) Does the same apply to a MessageConsumer's receive() method? That is, the message remains on the queue until the next receive is called?
    Thanks

    Unfortunately, MDBs do not currently support running on a separate queue. They run on
    the default queue.
    -- Rob
    Nicole wrote:
    Hi Folks,
    as we got problems on thread deadlocks using JMS, we decided to define our own thread
    queue to be used by our application. In the documentation it is described, that you
    need to generate all your EJBs with java weblogic.ejbc -dispatchPolicy xyz. By this
    you connect your EJB to the named thread queue, which you will need to add to your
    config.xml.
    What I could find out was, that this works fine for stateful or stateless session
    beans, but it looks like message driven beans do ignore this option.
    So here are my questions:
    Which thread queue is used by message driven beans?
    How can I change the thread queue?
    Many thanks,
    Nicole

  • File extension naming control. Hotsync vs palm Desktop (db or mdb that is the question :-))

    I have been using a m125 for years now its time to upgrade. I am going to a treo 750. 
    I downloaded the current palm desktops(6.2.2) and hotsyncs (7.0.2) When i sy\nc with hotsync, it wants to make files with a "db" extension. When i edit files with the desktop it wants to use files with an "mdb" extension. I have to manualy rename the files back and forth in order to achieve sync.
    question: is there a way to control which extension is used?. ive searched the registry with no joy.
    Post relates to: Treo 750 (AT&T)

    Dorset:  once again, I am grateful for your effort to explain and provide explanation.  And, again, I was not asking for that kind of help, because I wanted to find a major source of documentation and troubleshooting, not trouble somebody to write a single possibly-relevant set of tailored suggestions.  Not to be ungrateful--but I must conclude that the only source of comprehensive information would be to dig into the source code.  Not likely to occur!
    good news, the problem is Possibly Solved: 
    Yesterday I reverse-engineered the save-to location by making a single new entry in the blank recordless address book, saving that, exiting, and doing a global DOS search of the hard disk for a file of any name with that date and time.
    Turns out Palm Desktop saved it to a new user name directory it created itself (where I hadn't been looking because I assumed it would be under MY user name) AND gave that saved file the name Unfiled.mdb, whereas I was looking for address.* on the first bunch of tries.  Double whammy: different folder, unpredictable file name. 
    So I deleted the bogus user name, imported an early-july backup copy of the address book (address.bak), and saved THAT out of desktop.  NOW it appears as a 3-Mb address.mdb file under the proper user name.  And it's looking hopeful: if I exit desktop, then re-run the program, the 2000-entry address book comes up without further ado.  Later I will screw up my courage and try to sync with my Tunsten.
    Over the long term, I will be easing out of the Windows and Palm universe--I have too many other things to do than [for brevity and compaint reduction, this essay condensed by author to "that-sort-of-thing."]
    Post relates to: Palm m105

  • MDB/Topic/WLS cluster question

              Hi
              I was going through some WLS 8.1 docs on JMS and had a question abt Topics & WLS
              in cluster config where say I have 3 servers with say server#1 hosting the Topic
              [not a distributed destination]. I have an an ear file containing an MDB with
              no pool size limit. After deploying the ear in the cluster - lets say that each
              server on the cluster has 5 instances of the MDB [just an example] and a message
              is published on the Topic.
              Q1>Will all the 3 servers get a [one and only one] copy of that message? [my guess
              is yes]
              Q2>Only 1 instance [out of 5] of the MDB/per server will get the message - right?
              Q3> Had I had a separate deployment of the same MDB class in the EAR file for
              the same Topic - thats just going to get treated as a completely separate subscriber
              independent of the first MDB though the implementing class is the same - right?
              thanks
              Anamitra
              

              Anamitra wrote:
              > Hi
              > I was going through some WLS 8.1 docs on JMS and had a question abt Topics & WLS
              > in cluster config where say I have 3 servers with say server#1 hosting the Topic
              > [not a distributed destination]. I have an an ear file containing an MDB with
              > no pool size limit. After deploying the ear in the cluster - lets say that each
              > server on the cluster has 5 instances of the MDB [just an example] and a message
              > is published on the Topic.
              >
              > Q1>Will all the 3 servers get a [one and only one] copy of that message? [my guess
              > is yes]
              Yes.
              > Q2>Only 1 instance [out of 5] of the MDB/per server will get the message - right?
              Yes.
              > Q3> Had I had a separate deployment of the same MDB class in the EAR file for
              > the same Topic - thats just going to get treated as a completely separate subscriber
              > independent of the first MDB though the implementing class is the same - right?
              Yes.
              >
              > thanks
              > Anamitra
              >
              For a little more information, I'm attaching notes on durable
              subscriber MDBs.
              A JMS durable subscription is uniquely identified within a cluster by a combination of "connection-id" and "subscription-id". Only one active connection may use a particular "connection-id" within a WebLogic cluster.
              In WebLogic 8.1 and previous, a durable topic subscriber MDB uses its name to generate its client-id. Since JMS enforces uniqueness on this client-id, this means that if a durable subscriber MDB is deployed to multiple servers only one server will be able to connect. Some applications want a different behavior where
              each MDB pool on each server gets its own durable subscription.
              The MDB connection id, which is unique within a cluster, comes from:
              1) The "ClientId" attribute configured on the WebLogic connection factory.
              This defaults to null. Note that if the ClientId is set on a connection
              factory, only one connection created by the factory
              may be active at a time.
              2) If (1) is not set, then, as with the subscriber-id,
              the connection-id is derived from jms-client-id descriptor attribute:
              <jms-client-id>MyClientID</jms-client-id>
              (the weblogic dtd)
              3) If (1) and (2) are not set, then, as with the subscriber-id,
              the connection-id is derived from the ejb name.
              The MDB durable subscription id, which must be unique on its topic, comes from:
              1) <jms-client-id>MyClientID</jms-client-id>
              (the weblogic dtd)
              2) if (1) is not set then the client-id
              comes from the ejb name.
              The above prevents a durable topic subscriber MDB from running on multiple servers. When an instance of the MDB starts on another server, it deploys successfully, but a conflict is detected and the MDB fails to fully connect to JMS. The work-around is the following:
              A) Create a custom connection-factory for each server:
              1) configure "JNDIName" to the same value across all servers
              ("myMDBCF" in this example)
              2) configure "ClientId" to a unique value per server
              3) enable "UserTransactionsEnabled"
              4) enable "XAConnectionFactoryEnabled"
              5) set "AcknowledgePolicy" to "ACKNOWLEDGE_PREVIOUS"
              6) target the CF at a single WebLogic server
              (Number 5 is required for non-transactional topic MDBs)
              B) In the MDB's weblogic-ejb-jar.xml descriptor, set the MDB's connection
              factory to the JNDI name of the custom connection factories configured in
              (A). Optionally, also specify the subscriber-id via the jms-client-id
              attribute.
              <weblogic-ejb-jar>
              <weblogic-enterprise-bean>
              <ejb-name>exampleBean</ejb-name>
              <message-driven-descriptor>
              <connection-factory-jndi-name>myMDBCF</connection-factory-jndi-name>
              <jms-client-id>myClientID</jms-client-id>
              </message-driven-descriptor>
              </weblogic-enterprise-bean>
              </weblogic-ejb-jar>
              C) Target the application at the same servers that have the custom connection
              factories targeted at them.
              Notes/Limitations:
              1) If the MDB is moved from one server to another, the MDB's corresponding
              connection-factory must be moved with it.
              2) This work-around will not work if the destination is not in the same
              cluster as the MDB. (The MDB can not use the local connection factory, which
              contains the connection-id, as connection factories do not work unless they
              are in the same cluster as the destination.)
              3) This work-around will not work for non-WebLogic JMS topics.
              4) A copy of each message is sent to each to each server's MDB pool.
              

  • MDB question

    Hello,
    I have an MDB that consumes messages from a JMS queue. After the MDB is done processing a message, how would I go about having the MDB send message to a different JMS queue? If anyone know a good link with information to this inquiry (or the answer ;p) i'd be greatful.
    Thanks

    Thanks,
    My question was how do MDBs send messages in general. In my onMessage function, after the bean recieves a message it calls the following function:
    public void callMe() throws NamingException, JMSException, IOException{
         String qName = "TestQResponse";
         String qFactory = "QCF2";
         QueueSend qs = new QueueSend();
         InitialContext ic = qs.getInitialContext("t3://localhost:7001");
         qs.setQueue(qName);
         qs.setFactory(qFactory);
    qs.init(ic, qName);
    qs.send("ZOMG, THE MDB SENT MESSAGE TO THE QUEUE I WANTED :D");
    qs.close();
    QueueSend class works in my client to send messages but when my bean calls this function I get exceptions. If I'm doing MDB outgoing calls wrong which i'm sure I am, let me know :P
    thanks

  • QUESTION Re. Integrating TIBCO EMS with Weblogic 8.1 using MDB

    Hi All,
              I am trying to integrate TIBCO EMS 4.3.0 with Weblogic 8.1 SP6.
              I have created a topic "SIMPLE.TOPIC" on the EMS. I have configured the Foreign JMS Server as follows:
              Name: TIBCO JMSServer
              JNDI Initial Context Factory:com.tibco.tibjms.naming.TibjmsInitialContextFactory
              JNDI Connection URL:tibjmsnaming://emshost:emsport
              I have configured the connection factory as follows:
              Name: TIBCO JMSTopicConnectionFactory
              Local JNDI Name: TopicConnectionFactory.Local
              Remote JNDI Name:TopicConnectionFactory
              User Name:username to connect to EMS server
              Password::pssword to connect to EMS server
              My JMS destination is configured as follows:
              Name: Tibco JMS Destination
              Local JNDI Name:SIMPLE.TOPIC.LOCAL
              Remote JNDI Name:SIMPLE.TOPIC
              My weblogic-ejb-jar.xml consists of the following code:
                        <weblogic-ejb-jar>
                <weblogic-enterprise-bean>
                  <ejb-name>SimpleTopicListener</ejb-name>
                  <message-driven-descriptor>
                    <pool>
                      <max-beans-in-free-pool>200</max-beans-in-free-pool>
                      <initial-beans-in-free-pool>20</initial-beans-in-free-pool>
                    </pool>
                    <destination-jndi-name>SIMPLE.TOPIC</destination-jndi-name>
                   <connection-factory-jndi-name>TopicConnectionFactory</connection-factory-jndi-name>     
                  </message-driven-descriptor>
                  <enable-call-by-reference>True</enable-call-by-reference>
                </weblogic-enterprise-bean>
              </weblogic-ejb-jar>
                                  The problem is, when I try to deploy this mdb, I get the following error:
              The Message-Driven EJB attempted to connect to the JMS destination with the JNDI name: SIMPLE.TOPIC. However, the object with the JNDI name: SIMPLE.TOPIC is not a JMS destination, or the destination found was of the wrong type (Topic or Queue).
              I have checked and double checked to make sure that the topic SIMPLE.TOPIC does exist on the EMS server.
              Does anyone know what is the issue here and how to resolve it?
              Many thanks!
              -Kinshuk
              Edited by kinshukk at 05/14/2007 8:35 AM

    (1) Check the standard ejb jar and make sure you've specified a topic destination type (the default is queue). For details, you can reference the WebLogic 9.0 MDB developer guide (the MDB dev guide was revised in 9.0 to include more detail than the 8.1 guide). Also, you might want to take a look at our integration/interop FAQ (again for 9.0 or later).
              (2) Change the weblogic-ejb-jar to reference the foreign local JNDI names - not the remote JNDI names.
              (3) Be careful about using the "." and "/" characters in local JNDI names - these have side-effects in JNDI (they force creation of subcontexts).
              Tom

  • Basic MDB Question

    Using WLS 7.0 and JBuilder 7
    I've created a MDB in JBuilder 7 and auto deployed it into an already
    running instance of WLS 7.0. The MDB simply has a System.out in the
    onMessage() method.
    From within the WLS 7.0 Console i've configured the following settings ...
    - JMS Connection Factory
    - JMS Store
    - JMS Server w/ JMS Topic
    All the JNDI names are correct and the bean deploys normally.
    I've also created a client which simply sends a message to the topic.
    Problem:
    WLS recieves the messages but they are never sent to the MDB and onMessage()
    is never called. Is there a setting that I am missing. This example works
    fine in WLS 6.1 but I can't seem to get it to work in 7.0.
    After some time I get the following error:
    <Jul 19, 2002 11:32:26 AM PDT> <Error> <Management> <140001> <Error getting
    attribute on MBean
    mydomain:Application=myMDBModule,EJBComponent=myMDBModule,EJBDescriptor=EJBD
    escriptor-1,Location=myserver,MessageDrivenDescriptor=MessageDrivenDescripto
    r-1,Name=Pool-1,Type=Pool,WeblogicEJBJar=WeblogicEJBJar-3,WeblogicEnterprise
    Bean=WeblogicEnterpriseBean-1. Method: null. Exception:
    javax.management.AttributeNotFoundException: .
    javax.management.AttributeNotFoundException:
    at
    weblogic.management.internal.DynamicMBeanImpl.getXAttributeInfo(DynamicMBean
    Impl.java:1966)
    at
    weblogic.management.internal.DynamicMBeanImpl.getAttribute(DynamicMBeanImpl.
    java:549)
    at
    com.sun.management.jmx.MBeanServerImpl.getAttribute(MBeanServerImpl.java:118
    1)
    at
    com.sun.management.jmx.MBeanServerImpl.getAttribute(MBeanServerImpl.java:115
    1)
    at
    weblogic.management.internal.RemoteMBeanServerImpl.getAttribute(RemoteMBeanS
    erverImpl.java:838)
    at
    weblogic.management.internal.MBeanProxy.getOneAttribute(MBeanProxy.java:285)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:188)
    at $Proxy120.getAttribute(Unknown Source)
    at
    weblogic.management.console.utils.MBeans.getDisplayName(MBeans.java:1023)
    at
    weblogic.management.console.utils.MBeans.getDisplayName(MBeans.java:846)
    at
    weblogic.management.console.tags.nav.NavDeleteMenuTag.doStartTag(NavDeleteMe
    nuTag.java:56)
    at
    weblogic.management.console.webapp._ejb._weblogic.__nav._jspService(__nav.ja
    va:1796)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImp
    l.java:539)
    at
    weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImp
    l.java:368)
    at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:119)
    at
    weblogic.management.console.webapp._ejb.__nav._jspService(__nav.java:189)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.RequestDispatcherImpl$ForwardAction.run(RequestDis
    patcherImpl.java:341)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImp
    l.java:251)
    at weblogic.servlet.jsp.PageContextImpl.forward(PageContextImpl.java:115)
    at
    weblogic.management.console.actions.ForwardAction.perform(ForwardAction.java
    :35)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(ActionSe
    rvlet.java:171)
    at
    weblogic.management.console.actions.internal.ActionServlet.doGet(ActionServl
    et.java:91)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5363)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3043)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2466)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    >
    Any help would be great! Thank you!
    -rjm

    Don't know off hand. It seems tranage that you get the MDB error in the log
    file, yet the stack trace is in a JSP. You might try posting to web
    services or EJB.
    _sjz.
    "Renato J. Mascardo" <[email protected]> wrote in message
    news:[email protected]...
    >
    Using WLS 7.0 and JBuilder 7
    I've created a MDB in JBuilder 7 and auto deployed it into an already
    running instance of WLS 7.0. The MDB simply has a System.out in the
    onMessage() method.
    From within the WLS 7.0 Console i've configured the following settings ...
    - JMS Connection Factory
    - JMS Store
    - JMS Server w/ JMS Topic
    All the JNDI names are correct and the bean deploys normally.
    I've also created a client which simply sends a message to the topic.
    Problem:
    WLS recieves the messages but they are never sent to the MDB andonMessage()
    is never called. Is there a setting that I am missing. This exampleworks
    fine in WLS 6.1 but I can't seem to get it to work in 7.0.
    After some time I get the following error:
    <Jul 19, 2002 11:32:26 AM PDT> <Error> <Management> <140001> <Errorgetting
    attribute on MBean
    mydomain:Application=myMDBModule,EJBComponent=myMDBModule,EJBDescriptor=EJBD
    >
    escriptor-1,Location=myserver,MessageDrivenDescriptor=MessageDrivenDescripto
    >
    r-1,Name=Pool-1,Type=Pool,WeblogicEJBJar=WeblogicEJBJar-3,WeblogicEnterprise
    Bean=WeblogicEnterpriseBean-1. Method: null. Exception:
    javax.management.AttributeNotFoundException: .
    javax.management.AttributeNotFoundException:
    at
    weblogic.management.internal.DynamicMBeanImpl.getXAttributeInfo(DynamicMBean
    Impl.java:1966)
    at
    weblogic.management.internal.DynamicMBeanImpl.getAttribute(DynamicMBeanImpl.
    java:549)
    at
    com.sun.management.jmx.MBeanServerImpl.getAttribute(MBeanServerImpl.java:118
    1)
    at
    com.sun.management.jmx.MBeanServerImpl.getAttribute(MBeanServerImpl.java:115
    1)
    at
    weblogic.management.internal.RemoteMBeanServerImpl.getAttribute(RemoteMBeanS
    erverImpl.java:838)
    at
    weblogic.management.internal.MBeanProxy.getOneAttribute(MBeanProxy.java:285)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:188)
    at $Proxy120.getAttribute(Unknown Source)
    at
    weblogic.management.console.utils.MBeans.getDisplayName(MBeans.java:1023)
    at
    weblogic.management.console.utils.MBeans.getDisplayName(MBeans.java:846)
    at
    weblogic.management.console.tags.nav.NavDeleteMenuTag.doStartTag(NavDeleteMe
    nuTag.java:56)
    at
    weblogic.management.console.webapp._ejb._weblogic.__nav._jspService(__nav.ja
    va:1796)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImp
    l.java:539)
    at
    weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImp
    l.java:368)
    atweblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:119)
    at
    weblogic.management.console.webapp._ejb.__nav._jspService(__nav.java:189)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.RequestDispatcherImpl$ForwardAction.run(RequestDis
    patcherImpl.java:341)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImp
    l.java:251)
    atweblogic.servlet.jsp.PageContextImpl.forward(PageContextImpl.java:115)
    at
    weblogic.management.console.actions.ForwardAction.perform(ForwardAction.java
    :35)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(ActionSe
    rvlet.java:171)
    at
    weblogic.management.console.actions.internal.ActionServlet.doGet(ActionServl
    et.java:91)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:945)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :332)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :242)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5363)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:721)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3043)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2466)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    >
    Any help would be great! Thank you!
    -rjm

  • JMS with MDB design question

    Hi All,
    Here is my situation. I have a JMS Queue and a MDB that consumes the messages delivered to this queue. In the OnMessage method of the MDB,I do some business processing including talking to a database. My requirement is that if the database is not available for some reason,I have to keep retrying the whole thing for half an hour at some predefined intervals. How can this be achieved?
    Thanks

    hi.
    i agree with arnaud that the use of timer is better. thanks for that, arnaud.
    additionally, i'd like to add that i don't think you should use a transaction for this sort of messaging, since from what i understand, you are talking single messaging here, and creating transactions for a single message flow is an overkill for most needs. also, it takes a lot of resources from the application server.
    the other point to consider is that you are not talking about a case where a message did not reach it's destination. as far as the messaging provider is concerned, the message was consumed by the MDB, and the problem occured in latter processing. you also, as crackers noted, have the issue of configuring the provider to handle the redeliveries, which is again a pain in a body-part.
    i think this is a design-related case, and i might go over the messaging-provider's acks here, and send acks on a different queue.
    nimo.

  • Generic JMS MDB Processing Questions

    Using MessageDrivenBean
    This bean can only receive a message from the JMS queue server using its onMessage(Message msg) method. If onMessage is called and cannot process the message due to some external resource being down, it seems the only two outcomes are to wait for the external resource to be available, or queue the message to another queue. I've read throwing an exception is not a "good programming" practice. My questions are:
    - Is the above the proper way to code the onMessage() method?
    - Is there a way to shutdown the MessageDrivenBean or JMS queue server when exiting the application?
    Thanks for your help.
    Joe

    Is it also possible to have the consumer close itself
    by queuing a close message to the queue with highest
    priority and the consumer calling its close()
    method?Not if you using onMessage. A consumer is driven by a session, a session is singlethreaded and calls onMessage, a close must wait until all onMessage calls have been finsihed. Hence, if you call close within onMessage, you have a deadlock.
    But you can use the synchronous receive() method of a consumer and call close after you've received it.
    -- Andreas

  • Mdb (Modular debugger) question

    Under Solaris there is mdb installed,
    is it able to call a function of a program
    being debuged the way as 'call' in gdb?

    Thanks.
    I read already the appropriate topics in the "Programming WebLogic Enterprise JavaBeans" and played also with parameters initial-beans-in-free-pool and max-beans-in-free-pool, without success.
    I also watched the weblogic servers monitor pages of the MDB, and while he is blocking for some reason instead of starting the next child MDB the "use count" is only 1. For me it seams that weblogic does not recognize that the child MDBs finished working.

  • MDB tx processing question

    Tom,
    My understanding was that WebLogic by default configuration would pull n messages at a time from the a foreign jms server (via JMS connection poller) ; and process the n messages using the same MDB in n different transactions. Is this correct?
    If it is , what would be the conditions when the message would just stay in WebLogic layer - and weblogic MDB will continuously try to process the message - assuming the code in MDB called setRollbackOnly upon processing failure within the MDB. MDB is transactional.
    We see a thread that seems to sit in the state below in our application - no matter how many threaddumps I take the thread stays at this point. I see no other thread waiting on a lock for anything. But this seemingly stuck thread is causing 5 messages on Tibco EMS to stay in pending state until I shutdown the WLS node - which then breaks the tibco session and tibco then makes the messages available for redelivery and another WLS instance picks it up. Do note that WLS does not report any stuck threads either (stuck thread timeout set to 600 seconds) and my threaddumps span across 5 seconds to 45 minutes.
    "ContinuousJMSMessagePoller :MessageProcessor-Tes-Mts" id=4973 idx=0xde tid=1717 prio=5 alive, daemon
    at java/util/HashMap.get(HashMap.java:344)[optimized]
    at org/jboss/cache/UnversionedNode.getDirect(UnversionedNode.java:203)[inlined]
    at org/jboss/cache/invocation/NodeInvocationDelegate.getDirect(NodeInvocationDelegate.java:212)[optimized]
    at org/jboss/cache/CacheImpl._get(CacheImpl.java:702)[optimized]
    at sun/reflect/GeneratedMethodAccessor176.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Unknown Source)[optimized]
    at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[optimized]
    at java/lang/reflect/Method.invoke(Method.java:585)[optimized]
    at org/jgroups/blocks/MethodCall.invoke(MethodCall.java:330)
    at org/jboss/cache/interceptors/CallInterceptor.invoke(CallInterceptor.java:53)
    at org/jboss/cache/interceptors/Interceptor.nextInterceptor(Interceptor.java:111)
    at org/jboss/cache/interceptors/EvictionInterceptor.handleGetKeyValueMethod(EvictionInterceptor.java:200)
    at org/jboss/cache/interceptors/MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:84)[optimized]
    at org/jboss/cache/interceptors/Interceptor.nextInterceptor(Interceptor.java:111)
    at org/jboss/cache/interceptors/PessimisticLockInterceptor.handleGetKeyValueMethod(PessimisticLockInterceptor.java:347)
    at org/jboss/cache/interceptors/MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:84)[optimized]
    at org/jboss/cache/interceptors/PessimisticLockInterceptor.invoke(PessimisticLockInterceptor.java:81)
    at org/jboss/cache/interceptors/Interceptor.nextInterceptor(Interceptor.java:111)[inlined]
    at org/jboss/cache/interceptors/MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:58)[optimized]
    at org/jboss/cache/interceptors/Interceptor.nextInterceptor(Interceptor.java:111)
    at org/jboss/cache/interceptors/TxInterceptor.handleNonTxMethod(TxInterceptor.java:456)
    at org/jboss/cache/interceptors/TxInterceptor.handleGetKeyValueMethod(TxInterceptor.java:250)
    at org/jboss/cache/interceptors/MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:84)[optimized]
    at org/jboss/cache/interceptors/Interceptor.nextInterceptor(Interceptor.java:111)
    at org/jboss/cache/interceptors/CacheMgmtInterceptor.handleGetKeyValueMethod(CacheMgmtInterceptor.java:81)
    at org/jboss/cache/interceptors/MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:84)[optimized]
    at org/jboss/cache/interceptors/Interceptor.nextInterceptor(Interceptor.java:111)
    at org/jboss/cache/interceptors/InvocationContextInterceptor.invoke(InvocationContextInterceptor.java:73)
    at org/jboss/cache/invocation/AbstractInvocationDelegate.invoke(AbstractInvocationDelegate.java:123)
    at org/jboss/cache/invocation/AbstractInvocationDelegate.invoke(AbstractInvocationDelegate.java:64)
    at org/jboss/cache/invocation/CacheInvocationDelegate.get(CacheInvocationDelegate.java:382)
    at com/myapp/core/CacheService.get(CacheService.java:188)
    at com/myapp/core/CacheService.getFinancialInstrument(CacheService.java:273)
    at com/myapp/util/TradeDalUtils.lookupFinancialInstrument(TradeDalUtils.java:768)
    at com/myapp/xom/ReferenceData.getFinancialInstrumentByIdentifier(ReferenceData.java:330)
    at com/myapp/xom/CMMExecutionModel.getFiForPrimaryExecutionItem(CMMExecutionModel.java:1170)
    at sun/reflect/GeneratedMethodAccessor57908.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Unknown Source)
        at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[optimized]
    at java/lang/reflect/Method.invoke(Method.java:585)[optimized]
    at ilog/rules/inset/IlrExecMethodValue.getValue(Lilog/rules/inset/IlrMatchContext;)Ljava/lang/Object;(Unknown Source)
    at ilog/rules/inset/IlrExecNaryValue.a(Lilog/rules/inset/IlrMatchContext;)[Ljava/lang/Object;(Unknown Source)[optimized]
    at ilog/rules/inset/IlrExecNaryValue.a(ILjava/lang/Class;Lilog/rules/inset/IlrMatchContext;)[Ljava/lang/Object;(Unknown Source)
        at ilog/rules/inset/IlrExecStaticMethodValue.getValue(Lilog/rules/inset/IlrMatchContext;)Ljava/lang/Object;(Unknown Source)
        at ilog/rules/inset/IlrExecStoreValue.getValue(Lilog/rules/inset/IlrMatchContext;)Ljava/lang/Object;(Unknown Source)
        at ilog/rules/inset/IlrExecBinaryTest.evaluate(Lilog/rules/inset/IlrMatchContext;)Z(Unknown Source)
        at ilog/rules/inset/IlrExecAndTest.evaluate(Lilog/rules/inset/IlrMatchContext;)Z(Unknown Source)
        at ilog/rules/engine/IlrTestRuleMem.i(Lilog/rules/engine/IlrPartial;)Z(Unknown Source)
        at ilog/rules/engine/IlrTestRuleMem.if(Lilog/rules/engine/IlrPartial;IIJ)Lilog/rules/engine/IlrRuleInstance;(Unknown Source)
        at ilog/rules/engine/IlrDefaultRuleMem.aa()V(Unknown Source)
        at ilog/rules/engine/IlrRuleMem.T()V(Unknown Source)
        at ilog/rules/engine/IlrAgenda.a([Lilog/rules/engine/IlrRule;Lilog/rules/engine/IlrAgendaFilter;IZ)I(Unknown Source)[optimized]
    at ilog/rules/engine/IlrEngine.fireAgendaRules([Lilog/rules/engine/IlrRule;Lilog/rules/engine/IlrAgendaFilter;IZ)I(Unknown Source)[inlined]
    at ilog/rules/inset/IlrExecRuleTask.a(Lilog/rules/engine/IlrTaskEngine;)V(Unknown Source)[inlined]
    at ilog/rules/inset/IlrExecRuleTask.execute(Lilog/rules/engine/IlrTaskEngine;Lilog/rules/engine/IlrWorkItem;ZZ)V(Unknown Source)[optimized]
    at ilog/rules/inset/IlrExecTask.run(Lilog/rules/engine/IlrTaskEngine;Lilog/rules/engine/IlrWorkItem;ZZ)V(Unknown Source)[optimized]
    at ilog/rules/engine/IlrTaskEngine.execute(Lilog/rules/inset/IlrExecTaskInstance;Lilog/rules/engine/IlrWorkItem;ZZ)I(Unknown Source)
    at ilog/rules/inset/IlrExecTaskInstance.execute(Lilog/rules/engine/IlrTaskEngine;Lilog/rules/engine/IlrWorkItem;ZZ)I(Unknown Source)
    at ilog/rules/engine/IlrTaskEngine.executeItem(Lilog/rules/engine/IlrWorkItem;Lilog/rules/inset/IlrExecFlowNode;ZZ)I(Unknown Source)
    at ilog/rules/engine/IlrTaskEngine.executeSubFlow(Lilog/rules/inset/IlrExecFlowNode;Z)I(Unknown Source)
    at ilog/rules/inset/IlrExecFlowTask.execute(Lilog/rules/engine/IlrTaskEngine;Lilog/rules/engine/IlrWorkItem;ZZ)V(Unknown Source)
    at ilog/rules/inset/IlrExecTask.run(Lilog/rules/engine/IlrTaskEngine;Lilog/rules/engine/IlrWorkItem;ZZ)V(Unknown Source)[optimized]
    at ilog/rules/engine/IlrTaskEngine.execute(Lilog/rules/inset/IlrExecTaskInstance;Lilog/rules/engine/IlrWorkItem;ZZ)I(Unknown Source)
    at ilog/rules/inset/IlrExecTaskInstance.execute(Lilog/rules/engine/IlrTaskEngine;Lilog/rules/engine/IlrWorkItem;ZZ)I(Unknown Source)
    at ilog/rules/engine/IlrTaskEngine.executeItem(Lilog/rules/engine/IlrWorkItem;Lilog/rules/inset/IlrExecFlowNode;ZZ)I(Unknown Source)
    at ilog/rules/engine/IlrTaskEngine.executeSubFlow(Lilog/rules/inset/IlrExecFlowNode;Z)I(Unknown Source)
    at ilog/rules/inset/IlrExecFlowTask.execute(Lilog/rules/engine/IlrTaskEngine;Lilog/rules/engine/IlrWorkItem;ZZ)V(Unknown Source)
    at ilog/rules/inset/IlrExecTask.run(Lilog/rules/engine/IlrTaskEngine;Lilog/rules/engine/IlrWorkItem;ZZ)V(Unknown Source)[optimized]
    at ilog/rules/engine/IlrTaskEngine.execute(Lilog/rules/inset/IlrExecTaskInstance;Lilog/rules/engine/IlrWorkItem;ZZ)I(Unknown Source)
    at ilog/rules/inset/IlrExecTaskInstance.execute(Lilog/rules/engine/IlrTaskEngine;Lilog/rules/engine/IlrWorkItem;ZZ)I(Unknown Source)
    at ilog/rules/engine/IlrTaskEngine.executeItem(Lilog/rules/engine/IlrWorkItem;Lilog/rules/inset/IlrExecFlowNode;ZZ)I(Unknown Source)
    at ilog/rules/engine/IlrTaskEngine.if(Z)V(Unknown Source)
    at ilog/rules/engine/IlrTaskEngine.a(Z)V(Unknown Source)
    at ilog/rules/engine/IlrContext.a(Z)Lilog/rules/engine/IlrParameterMap;(Unknown Source)
    ^-- Holding lock: ilog/rules/engine/IlrContext@0x1393f318[recursive]
    at ilog/rules/engine/IlrContext.execute()Lilog/rules/engine/IlrParameterMap;(Unknown Source)
    ^-- Holding lock: ilog/rules/engine/IlrContext@0x1393f318[recursive]
    at ilog/rules/bres/xu/spi/IlrEngineManager.execute()Ljava/util/Map;(Unknown Source)
    ^-- Holding lock: ilog/rules/engine/IlrContext@0x1393f318[thin lock]
    at ilog/rules/bres/xu/spi/IlrTransactionalEngineManager.execute()Ljava/util/Map;(Unknown Source)
    ^-- Holding lock: ilog/rules/bres/xu/spi/IlrTransactionalEngineManager@0x13897c90[thin lock]
    at ilog/rules/bres/xu/spi/IlrManagedXUConnection.contextExecute(Lilog/rules/bres/xu/cci/IlrXUConnection;)Ljava/util/HashMap;(Unknown Source)
    at ilog/rules/bres/xu/cci/IlrXUConnection.contextExecute()Ljava/util/HashMap;(Unknown Source)
    at ilog/rules/bres/xu/cci/IlrXUInteraction.contextExecute(Ljavax/resource/cci/Record;Ljavax/resource/cci/Record;)Z(Unknown Source)[inlined]
    at ilog/rules/bres/xu/cci/IlrXUInteraction.dispatchExecution(Ljava/lang/String;Ljavax/resource/cci/InteractionSpec;Ljavax/resource/cci/Record;Ljavax/resource/cci/Record;)Z(Unknown Source)[inlined]
    at ilog/rules/bres/xu/cci/IlrXUInteraction.execute(Ljavax/resource/cci/InteractionSpec;Ljavax/resource/cci/Record;Ljavax/resource/cci/Record;)Z(Unknown Source)[inlined]
    at ilog/rules/bres/xu/cci/IlrXUInteraction.execute(Ljavax/resource/cci/InteractionSpec;Ljavax/resource/cci/Record;)Ljavax/resource/cci/Record;(Unknown Source)[optimized]
    at ilog/rules/bres/session/IlrRuleSessionExecuteImpl.executeInteraction(Ljavax/resource/cci/Interaction;Ljavax/resource/cci/Record;Lilog/rules/bres/session/IlrRuleSessionExecuteImpl$Warnings;)Ljavax/resource/cci/Record;(Unknown Source)
    at ilog/rules/bres/session/IlrRuleSessionExecuteImpl.execute(Ljavax/resource/cci/ConnectionFactory;Ljava/lang/String;Ljava/util/Map;Lilog/rules/bres/session/IlrRuleSessionExecuteImpl$Warnings;ZZLjavax/resource/cci/Interaction;)Ljava/util/HashMap;(Unknown Source)
    at ilog/rules/bres/session/IlrRuleSessionExecuteImpl.executeStateless(Ljavax/resource/cci/ConnectionFactory;Ljavax/resource/cci/Connection;Ljavax/resource/cci/Interaction;Lilog/rules/bres/session/IlrSessionRequest;Lilog/rules/bres/session/IlrRuleSessionExecuteImpl$Warnings;)Lilog/rules/bres/session/IlrSessionResponse;(Unknown Source)
    at ilog/rules/bres/session/ejb/IlrStatelessRuleSessionEJB.executeRules(Lilog/rules/bres/session/IlrSessionRequest;)Lilog/rules/bres/session/IlrSessionResponse;(Unknown Source)
    at ilog/rules/bres/session/ejb/IlrStatelessRuleSessionEJB_ugt9ms_ELOImpl.executeRules(IlrStatelessRuleSessionEJB_ugt9ms_ELOImpl.java:145)
    at ilog/rules/bres/session/ejb/IlrGateLocal.executeRules(Lilog/rules/bres/session/IlrSessionRequest;)Lilog/rules/bres/session/IlrSessionResponse;(Unknown Source)
    at com/myapp/rules/jrules/JRuleSession.executeRules(JRuleSession.java:79)
    at com/myapp/core/RuleInvoker.invokeRule(RuleInvoker.java:52)
    at com/myapp/core/statemachine/StateMachine.executeRule(StateMachine.java:143)
    at com/myapp/core/statemachine/StateMachine.doTransition(StateMachine.java:109)
    at com/myapp/core/statemachine/StateMachine.doStateMachineTransitions(StateMachine.java:87)
    at com/myapp/core/statemachine/StateMachine.doTransition(StateMachine.java:64)
    at com/myapp/core/messagehandler/tes/TesMessageHandler.doTESMessageProcessing(TesMessageHandler.java:263)
    at com/myapp/core/messagehandler/tes/TesMessageHandler.tesProcessing(TesMessageHandler.java:134)
    at com/myapp/core/messagehandler/tes/TesMessageHandler.process(TesMessageHandler.java:112)
    at com/myapp/core/FullReSequenceMessageProcessor.doStateMachine(FullReSequenceMessageProcessor.java:173)
    at com/myapp/core/FullReSequenceMessageProcessor.processMessage(FullReSequenceMessageProcessor.java:333)
    at com/myapp/core/MessageProcessorMDB.onMessage(MessageProcessorMDB.java:81)
    at weblogic/ejb/container/internal/MDListener.execute(MDListener.java:429)[inlined]
    at weblogic/ejb/container/internal/MDListener.transactionalOnMessage(MDListener.java:335)[inlined]
    at weblogic/ejb/container/internal/ContinuousJMSMessagePoller.processOneMessage(ContinuousJMSMessagePoller.java:129)[optimized]
    at weblogic/ejb/container/internal/JMSMessagePoller.pollContinuously(JMSMessagePoller.java:394)
    at weblogic/ejb/container/internal/ContinuousJMSMessagePoller.pollForChild(ContinuousJMSMessagePoller.java:185)
    at weblogic/ejb/container/internal/JMSMessagePoller.run(JMSMessagePoller.java:530)
    at java/lang/Thread.run(Thread.java:595)
    at jrockit/vm/RNI.c2java(IIII)V(Native Method)
    -- end of trace
    Edited by: user1631781 on Jun 9, 2010 10:05 AM

    My understanding was that WebLogic by default configuration would pull n messages at a time from the a foreign >jms server (via JMS connection poller) ; and process the n messages using the same MDB in n different >transactions. Is this correct? Its possible for MDB to process more than one message in a transaction using a weblogic specific feature called MDB Transaction batching.This depends on the max-messages-in-transactions descriptor in weblogic-ejb-jar.xml. This controls mdb transaction batch size.
    http://download.oracle.com/docs/cd/E15051_01/wls/docs103/ejb/message_beans.html#wp1161543
    In your case the thread seems to be stuck at the application code level. I doubt if it is related to transactions.
    at java/util/HashMap.get(HashMap.java:344)[optimized]
    at org/jboss/cache/UnversionedNode.getDirect(UnversionedNode.java:203)[inlined]

  • New XSan setup requirements questions

    Hello All,
    We're in the process of installing XSan in our facility, swapping out our current SanMP configuration. I had three questions about metadata controllers.
    1) How CPU intensive is the XSan MDC function? I wanted to repurpose one of our MacPro 1,1 as an XSan metadata backup controller, but I'm a bit worried that the cpu won't be Zippy enough, it's a 2.8ghz dual-core x2 xeon. This would be the back up controller and exclusively dedicated to the task.
    2) I understand that running XSan requires an OS X Server to manage permissions etc. But if I recall from our experience with XSan 1, the MDC could run on OS X client version just fine. The current Apple lit says otherwise. Would I be able to run our backup MDC on OS X client? We already have another xserve functioning as our OD master/file serve. So the Primary MDC running on OS X Server would already be the redundant OD.
    3) How fast does the MDC FC connection need to be? If my clients are all on 4/8gb x2 connections, can I run my MDCs on 2gb? or single 4gb? My understanding is they are generally just accessing the metadata LUN, in which case, that LUN itself is the bottle neck to performance.
    Thanks in advanced for all your help.

    Speaking metadata, I suggest you look into this: http://www.getactivestorage.com/pr041210-1.php
    Active is onto something here and this answers a huge problem when scaling a SAN. Now your storage arrays can all use the max number of drives per box.
    As for your other questions:
    1: CPU is not a huge deal but do things right. Get an MDC and an MDB and let them do just SAN control. Scale your RAM needs to allow for 4 GB of RAM per SAN volume if you are doing AD permissions and (gasp) Spotlight. Thus, if you have one ingest volume and one work volume, have 8 GB of RAM + another 4 for the OS. More is better. Don't expect to use the devices as cluster nodes either. Leave the processing elsewhere.
    2: Using server is recommended and the official way to do it. If you already have an OD Master, then just connect the MDC and MDB to the domain. They do not need to be replicas.
    Just my two cents. Enjoy Xsan.

Maybe you are looking for