MDB and Execute Queue

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

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

Similar Messages

  • Creating a MDB and Distributed Queue in Clustered env in weblogic 9.2

    I have created 3 managed servers and all these managed servers are in the cluster.
              Now i create JMS module for this cluster and create the Connection factory 'QUEUE_CF_8' and distributed Queue 'DIS_QUEUE_8' targeting to the cluster.
              I create a MDB and JMS client and deploy them in the cluster.JMS client sends the message to the distributed queue and MDB is listening to the distributed queue
              When i deploy the MDB , it is deploys perfectly . But when i run the client it fails with the following exception
              [java] javax.naming.NameNotFoundException: Unable to resolve 'QUEUE_CF_8'. Resolved '' [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'QUEUE_CF_8'. Resolved '']; remaining name 'QUEUE_CF_8'
              When i view the JNDI tree for all the managed servers , i can see the Connection factory and the distributed queue.
              Also i deploy the MDB to the cluster and no submoduletargets are specified.
              Let me know what is that iam missing.

    <?xml version='1.0' encoding='UTF-8'?>
              <weblogic-jms xmlns="http://www.bea.com/ns/weblogic/90" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xsi:schemaLocation="http://www.bea.com/ns/weblogic/920 http://www.bea.com/ns/weblogic/920.xsd">
              <connection-factory name="Queue_CF_8">
              <sub-deployment-name>Server_group_4</sub-deployment-name>
              <jndi-name>QUEUE_CF_8</jndi-name>
              <security-params>
              <attach-jmsx-user-id>false</attach-jmsx-user-id>
              </security-params>
              </connection-factory>
              <uniform-distributed-queue name="DIS_QUEUE_8">
              <sub-deployment-name>Server_group_4</sub-deployment-name>
              <jndi-name>DIS_QUEUE_8</jndi-name>
              <load-balancing-policy>Round-Robin</load-balancing-policy>
              </uniform-distributed-queue>
              </weblogic-jms>
              But the problem was with the clustering.
              Thanks for your time..

  • Servlets and Execute Queues

    6.0 doc in the "Known Issues" has the following:
              039575
              If your servlet makes an HTTP connection back to the same server there is the
              possibility of deadlock under load. To work around the problem, use a separate
              execute queue for the servlet that returns the DTD.
              My question is: is the process of setting up servlets etc to use separate execute
              queues documented somewhere?
              TIA
              Dimitri
              

    In fact, it is (sort of) documented in 6.0sp1 (for some reason console
              didnt use this in 6.0):
              Thread dump shows
              2 threads for queue: '__weblogic_admin_html_queue'"
              and
              2 threads for queue: '__weblogic_admin_rmi_queue'"
              looking at the console.war/WEB-INF/web.xml shows how console servlets are
              configured to use separate execute queue:
              <servlet>
              <servlet-name>...servlet name...</servlet-name>
              <servlet-class>...servlet class...</servlet-class>
              <init-param>
              <param-name>wl-dispatch-policy</param-name>
              <param-value>__weblogic_admin_html_queue</param-value>
              </init-param>
              </servlet>
              For RMI (as rmi_queue name suggests) stuff looking at things generated
              by weblogic.ejbc shows that dispatchpolicy is mentioned in the .ser'ialzed
              deployment descriptor.
              Cameron Purdy <[email protected]> wrote:
              > (I thought you asked this before.) I haven't seen it doc'd yet, and they
              > said it might not be 'til the next release. I've been checking the "dima"
              > web site for doc on it, but haven't found any yet ;-).
              > --
              > Cameron Purdy
              > Tangosol, Inc.
              > http://www.tangosol.com
              > +1.617.623.5782
              > WebLogic Consulting Available
              > "Dimitri Rakitine" <[email protected]> wrote in message
              > news:[email protected]...
              >> 6.0 doc in the "Known Issues" has the following:
              >>
              >> 039575
              >> If your servlet makes an HTTP connection back to the same server there is
              > the
              >> possibility of deadlock under load. To work around the problem, use a
              > separate
              >> execute queue for the servlet that returns the DTD.
              >>
              >> My question is: is the process of setting up servlets etc to use separate
              > execute
              >> queues documented somewhere?
              >>
              >> TIA
              >> Dimitri
              >>
              Dimitri
              

  • 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

  • Authentication problem w MDB on WL8.1 and JMS Queue on WL6.1

              Hi,
              I'm having problems with a MessageDrivenBean that is deployed on a Weblogic 8.1
              server. It listens to a JMS Queue on a Weblogic 6.1 server.
              I'm getting the following error message upon deployment:
              [java.lang.SecurityException: Authentication for user system denied in realm wl_realm
              I've made sure that both servers are installed with the user "system" and a password
              of "password".
              This worked fine for two WL6.1 servers.
              Here's my ejb-jar.xml:
              <!DOCTYPE ejb-jar PUBLIC
              '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN'
              'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
              <ejb-jar>
                  <enterprise-beans>
                      <message-driven>
                          <ejb-name>WebResponseJMSBean</ejb-name>
                          <ejb-class>com.ditech.webresponse.jms.WebResponseJMSBean</ejb-class>
                          <transaction-type>Container</transaction-type>
                          <message-driven-destination>
                              <destination-type>javax.jms.Queue</destination-type>
                          </message-driven-destination>
                      </message-driven>
                  </enterprise-beans>
                  <assembly-descriptor>
                      <container-transaction>
                          <description>Transaction attributes for 'WebResponseJMSBean' methods</description>
                          <method>
                              <ejb-name>WebResponseJMSBean</ejb-name>
                              <method-name>*</method-name>
                          </method>
                          <trans-attribute>NotSupported</trans-attribute>
                      </container-transaction>
                  </assembly-descriptor>
              </ejb-jar>
              Here's my weblogic-ejb-jar.xml:
              <?xml version="1.0"?>
              <!DOCTYPE weblogic-ejb-jar PUBLIC
              '-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN'
              'http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd'>
              <weblogic-ejb-jar>
                  <weblogic-enterprise-bean>
                      <ejb-name>WebResponseJMSBean</ejb-name>
                      <message-driven-descriptor>
                          <destination-jndi-name>com.ditech.jms.CowResponseQueue</destination-jndi-name>
                          <provider-url>t3://localhost:7003</provider-url>
                          <connection-factory-jndi-name>com.ptp.jms.AppOnlineConnectionFactory</connection-factory-jndi-name>
                      </message-driven-descriptor>
                      <jndi-name>ejb/WebResponseJMSBean</jndi-name>
                  </weblogic-enterprise-bean>
              </weblogic-ejb-jar>
              Can anyone give me any suggestions?
              Thanks in advance,
              -Ben
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

              We are facing a similar issue, between MDB's and JMS Queues on 2 separated WebLogic
              8.1 domains. What I will test next week are:
              1. In the domain where my MDB's are deployed, configure Foreign JMS Servers/Connection
              Factories/Queues, for which passwords can be specified (not possible in weblogic-ejb-jar.xml)
              2. If No.1 does not work, I will add CredentialGenerated="false" in <SecurityConfiguration>
              in config.xml in both domains
              3. If No. 2 still does not work, I will specify run-as principal and security-role
              in my MDB DD files, and specify CredentialMapping via the WebLogic admin console.
              Maybe you can try the same?
              Eric Ma
              "B Liu" <[email protected]> wrote:
              >
              >Hi,
              >
              >I'm having problems with a MessageDrivenBean that is deployed on a Weblogic
              >8.1
              >server. It listens to a JMS Queue on a Weblogic 6.1 server.
              >
              >I'm getting the following error message upon deployment:
              >
              >[java.lang.SecurityException: Authentication for user system denied in
              >realm wl_realm
              >
              >I've made sure that both servers are installed with the user "system"
              >and a password
              >of "password".
              >
              >This worked fine for two WL6.1 servers.
              >
              >Here's my ejb-jar.xml:
              >
              ><!DOCTYPE ejb-jar PUBLIC
              >
              >'-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN'
              >
              >'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
              >
              >
              ><ejb-jar>
              >
              >    <enterprise-beans>
              >
              >        <message-driven>
              >
              >            <ejb-name>WebResponseJMSBean</ejb-name>
              >            <ejb-class>com.ditech.webresponse.jms.WebResponseJMSBean</ejb-class>
              >            <transaction-type>Container</transaction-type>
              >            <message-driven-destination>
              >                <destination-type>javax.jms.Queue</destination-type>
              >            </message-driven-destination>
              >
              >        </message-driven>
              >
              >    </enterprise-beans>
              >
              >    <assembly-descriptor>
              >
              >        <container-transaction>
              >
              >            <description>Transaction attributes for 'WebResponseJMSBean'
              >methods</description>
              >            <method>
              >                <ejb-name>WebResponseJMSBean</ejb-name>
              >                <method-name>*</method-name>
              >            </method>
              >            <trans-attribute>NotSupported</trans-attribute>
              >
              >        </container-transaction>
              >
              >    </assembly-descriptor>
              >
              ></ejb-jar>
              >
              >Here's my weblogic-ejb-jar.xml:
              >
              ><?xml version="1.0"?>
              >
              >
              >
              ><!DOCTYPE weblogic-ejb-jar PUBLIC
              >
              >'-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN'
              >
              >'http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd'>
              >
              >
              ><weblogic-ejb-jar>
              >
              >    <weblogic-enterprise-bean>
              >
              >        <ejb-name>WebResponseJMSBean</ejb-name>
              >
              >        <message-driven-descriptor>
              >
              >            <destination-jndi-name>com.ditech.jms.CowResponseQueue</destination-jndi-name>
              >            <provider-url>t3://localhost:7003</provider-url>
              >            <connection-factory-jndi-name>com.ptp.jms.AppOnlineConnectionFactory</connection-factory-jndi-name>
              >        </message-driven-descriptor>
              >
              >        <jndi-name>ejb/WebResponseJMSBean</jndi-name>
              >
              >    </weblogic-enterprise-bean>
              >
              ></weblogic-ejb-jar>
              >
              >
              >Can anyone give me any suggestions?
              >
              >Thanks in advance,
              >-Ben
              >
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

  • Different execute queues with different thread priorities

    We are running WebLogic 6.1, SP2 on Solaris 2.8 and I have a question related to the
    use of Execute queues
    I'm aware that the administration console servlets, and the rest of requests given
    to the server run in separate execution queues each with their own pool of threads.
    There is an <executequeue> element in the config.xml that allows you to change the
    parameters of the default execute queue that most requests are handled in.
    My question is is it possible to create new execute queues, each with a given number
    of threads running at a different priority. Then one could assign a particular WAR
    deployment to a queue and hence control the priority that certain requests run at
    governed by the deployment that received the initial request.
    Essentially the problem that I'm trying to address is that I have a JAR with MDBs
    in it. I also have JARs with Entity and Session EJBs and WARs. They are all using
    the same pool of threads to execute. I want to be able to throttle the MDBs as they
    receive messages so they don't take over the machine and interfere with interactive
    use. Now I can limit the number of MDBs in the MDB pool, but then if the machine
    is not being used by users, then the machine resources are wasted only allowing one
    MDB to be active at a time when there are a lot of messages in the queue.
    What I want to be able to do is to have as many MDBs run as I can, up to a certain
    limit, say 15 for example, but not to pull from the same thread pool/execute queue
    as the requests for URLs in the WAR. Also I want the MDB threads to run at a much
    lower priority and always give preference to interactive requests.
    So interactive threads will always win and grab the processors if interactive use
    is high, but if it's not, the MDBs can run instead.
    Regs,
    Paul

    Hi,
    I had a chat with BEA support about my issue. You can create multiple ExecuteQueues
    and assign them to servlet definitions in WARs in the web.xml, and with an option
    to the EJBC compiler, you can assign a particular class of EJB to an ExecuteQeueue.
    For details see http://e-docs.bea.com/wls/docs61/perform/AppTuning.html#1106284
    Presumably it's the thread of the initial request that counts, i.e. if a WAR calls
    an EJB, then it's the thread in the execute queue of the WAR that will be used right
    the way through the request, not that of the EJB being called, assuming they are
    both deployed in the same WebLogic instance. If they were in different instances,
    you would obviously have a thread from the WAR queue on one instance, and a thread
    from the EJB queue on another instance.
    If a plain Java command-line client connected directly to an EJB, then it would be
    the thread from the ExecuteQueue of the EJB that would get used.
    I've been told that MDBs always run in the default queue, so it seems that the way
    for me to do what I want is just to create an ExecuteQueue, set the priority of the
    threads in this queue to be higher than that of the default queue, and assign this
    queue to my WARs. I can leave my EJBs running in the default queue.
    Regs,
    Paul
    "Dimitri I. Rakitine" <[email protected]> wrote:
    Don't know about 6.1 (One can find out very easily what the possible config
    parameters
    are by deploting
    http://dima.dhs.org/misc/listMBeans.jsp and
    http://dima.dhs.org/misc/showMBean.jsp
    abd looking at the XXXConfig mbeans), but in 7.0 there are quite a few
    things which
    can be tuned in the executequeue config (and priority is one of them. also
    interesting
    is that it is possible to configure it to increase number of execute threads
    when queue
    length exceeds some specified threshold) :
    QueueLength
    Returns the maximum length of this queue.
    ThreadPriority
    Returns the priority of the threads associated with this queue.
    ThreadCount
    Returns the number of threads assigned to this queue.
    QueueLengthThresholdPercent
    Returns the threshold percent for length of this queue, set in QueueLength.
    ThreadsIncrease
    Returns the number of threads to grow when a queue is within QueueLengthThresholdPercent
    of the set QueueLength.
    ThreadsMaximum
    Returns the maximum number of threads in the pool.
    ThreadsMinimum
    Returns the minimum number of threads in the pool.
    Dimitri

  • How can I tell how long a request has been sitting on an execute queue?

    Is it possible to determine (in WL 8.1 and/or 10.3) how long an HTTP request has been sitting on the execute queue before being assigned to a servlet?
    Under heavy load, I'm finding that the caller times out by the time the servlet tries to write the response because the request has been waiting on the execute queue for too long. To prevent doing all the work to process the request, I want to be able to see how long the request has been waiting to determine whether it's worth processing the request.
    Currently I use the getExecuteThreadTotalCount() method in ExecuteQueueRuntimeMBean and assume that if the count is high, the request has probably been waiting for a while, but getting the actual time on the queue would be much better.
    Thanks.

    Further investigation and a bunch of speed tests later, I'm even more puzzled. Between 7 pm and 9pm this evening, download speed has been consistently at 112kb, except for the 1 in 10 occasions where it hits 1.5mb, for 30 or 40 seconds, before dropping back to 112kb.
    Does anyone have any ideas what is going on?
    thanks in advance
    Ben

  • Problem while assigning Servlet to Execute queue

    Hi,
    We implement a IMS S-CSCF on BEA container 2.2.
    A call for us may be several times reentrant. Meaning that for one call we have to handle at least three different dialogs but in major use cases, it will be 6 or 7 for our next deployment.
    We are currently facing to bottlenecks problems and BEA support advised me to try to check if assigning servelt to execute queue could improve the preformances.
    I just wanted to make a try with one of our servlet but I have an exception java.lang.NoClassDefFoundError: org/jaxen/JaxenException.
    Here is what I did:
    In web.xml I have:
    <web-app>
    <distributable/>
    <servlet>
    <servlet-name>register</servlet-name>
    <servlet-class>com.netcentrex.scscf.registrar.RegistrarServlet</servlet-class>
    <init-param>
    <param-name>wl-dispatch-policy</param-name>
    <param-value>REGISTRARQueue</param-value>
    </init-param>
    <load-on-startup/>
    </servlet>
    <listener>
    <listener-class>com.bea.wcp.sip.engine.server.ContextEventHook</listener-class>
    </listener>
    </web-app>
    In sip.xml I have:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sip-app
    PUBLIC "-//Java Community Process//DTD SIP Application 1.0//EN"
    "http://www.jcp.org/dtd/sip-app_1_0.dtd">
    <sip-app>
    <display-name>SIP Servlet based Registrar</display-name>
    <distributable/>
    <context-param>
    <param-name>usc.configFile</param-name>
    <param-value>/etc/neotip/usc.ini</param-value>
    </context-param>
    <context-param>
    <param-name>icscf.configFile</param-name>
    <param-value>/etc/neotip/icscf.ini</param-value>
    </context-param>
    <context-param>
    <param-name>usc.dnsSrvFile</param-name>
    <param-value>/etc/neotip/uscDnsSrv.cache</param-value>
    </context-param>
    <listener>
         <listener-class>com.netcentrex.scscf.session.SessionServlet</listener-class>
    </listener>
    <servlet>
    <servlet-name>register</servlet-name>
    <servlet-class>com.netcentrex.scscf.registrar.RegistrarServlet</servlet-class>
    <load-on-startup/>
    </servlet>
    <servlet>
         <servlet-name>session</servlet-name>
         <servlet-class>com.netcentrex.scscf.session.SessionServlet</servlet-class>
         <load-on-startup/>
    </servlet>
    <servlet>
         <servlet-name>route</servlet-name>
         <servlet-class>com.netcentrex.scscf.fork.RouteServlet</servlet-class>
         <load-on-startup/>
    </servlet>
    <servlet>
         <servlet-name>icscf</servlet-name>
         <servlet-class>com.netcentrex.scscf.embeddedI.IEmbeddedServlet</servlet-class>
         <load-on-startup/>
    </servlet>
    <servlet-mapping>
    <servlet-name>register</servlet-name>
    <pattern>
    <equal>
         <var>request.method</var>
         <value>REGISTER</value>
    </equal>
    </pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>session</servlet-name>
    <pattern>
         <and>
              <not>
              <equal>
                        <var>request.method</var>
                        <value>REGISTER</value>
              </equal>
              </not>
              <not>
         <exists>
                   <var>request.uri.param.uscroute</var>
              </exists>
              </not>
              <not>
         <exists>
                   <var>request.uri.param.icscfroute</var>
              </exists>
              </not>
         </and>
    </pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>route</servlet-name>
    <pattern>
         <and>
              <not>
              <equal>
                        <var>request.method</var>
                        <value>REGISTER</value>
              </equal>
              </not>
              <exists>
              <var>request.uri.param.uscroute</var>
         </exists>
         </and>
    </pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>icscf</servlet-name>
    <pattern>
         <and>
              <not>
              <equal>
                        <var>request.method</var>
                        <value>REGISTER</value>
              </equal>
              </not>
              <exists>
         <var>request.uri.param.icscfroute</var>
         </exists>
         </and>
    </pattern>
    </servlet-mapping>
    <session-config>
         <session-timeout>30</session-timeout>
    </session-config>
    </sip-app>
    In msi-config.xml, we have:
    <Server Cluster="BEA_ENGINE_TIER_CLUST" EnabledForDomainLog="false"
    ListenAddress="192.168.150.26" ListenPort="8001" Name="engine1"
    NativeIOEnabled="true" NetworkAccessPoints="sipchannel"
    ServerVersion="8.1.5.0" StdoutDebugEnabled="true"
    StdoutEnabled="true" StdoutSeverityLevel="64">
    <NetworkAccessPoint ListenAddress="192.168.150.34"
    ListenPort="5060" Name="sipchannel" Protocol="sip"
    PublicAddress="192.168.150.34" SourcePorts="41000-42000"/>
    <SSL Enabled="false" IdentityAndTrustLocations="KeyStores" Name="engine1"/>
    <Log FileCount="10" FileMinSize="60000" Name="engine1" NumberOfFilesLimited="true"/>
    <ExecuteQueue Name="sip.transport.Default" QueueLength="2048" ThreadCount="25"/>
    <ExecuteQueue Name="REGISTRARQueue" QueueLength="2048" ThreadCount="25"/>
    <ExecuteQueue Name="sip.transport.Default" QueueLength="2048" ThreadCount="25"/>
    <ExecuteQueue Name="weblogic.kernel.Default"/>
    <ExecuteQueue Name="sip.timer.Default" QueueLength="2048" ThreadCount="25"/>
    <ExecuteQueue Name="sip.tracing.local" QueueLength="1024"
    ThreadCount="1" ThreadsMaximum="1" ThreadsMinimum="1"/>
    <ExecuteQueue Name="sip.tracing.domain" QueueLength="1024"
    ThreadCount="1" ThreadsMaximum="1" ThreadsMinimum="1"/>
    </Server>
    Then when I launch a SIP REGISTRATION operation I get the following trace:
    2007-05-30 17:37:03,649 ERROR RegistrarServlet [ExecuteThread: '23' for queue: 'sip.transport.Default'] : Error while processing request: REGISTER sip:netcentrexbench.net SIP/2.0
    P-Charging-Vector: icid-value=AyretyU0dm+1970294253=0465138796
    P-Access-Network-Info: ADSL;dsl-location="netcentrexbench.net;1.2.3.4"
    CSeq: 2 REGISTER
    Call-ID: [email protected]
    Supported: path
    Via: SIP/2.0/UDP 192.168.254.56:5063;branch=z9hG4bK-19606-1-2
    From: dench0 <sip:[email protected]>;tag=1
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
    To: dench0 <sip:[email protected]>
    Authorization: Digest username="dench0",realm="netcentrexbench.net",cnonce="6b8b4567",nc=00000001,qop=auth,uri="sip:192.168.150.34:5060",nonce="NQei3RIBAAA=le+kkCcrZcahXxQ7M6r7dw==",response="b824a93822b267ddfaa07f4039d99d95",algorithm=MD5
    Content-Length: 0
    Contact: sip:[email protected]:5063
    User-Agent: LYNX_BENCH
    Path: <sip:[email protected]:5063;lr>
    Require: path
    Expires: 36000
    Max-Forwards: 70
    java.lang.NoClassDefFoundError: org/jaxen/JaxenException
    at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
    My first doubt is that I think I should get "ERROR RegistrarServlet [ExecuteThread: '23' for queue: 'REGISTRARQueue'] " instead of "ERROR RegistrarServlet [ExecuteThread: '23' for queue: 'sip.transport.Default'] "
    First question: did I miss something or did something wrong in the configuration?
    Second question: is it really possible to assign a single servlet (from an application containing many other servlets) to a dediacted execute queue?
    Third question: any help is welcome :-)
    Thanks in advance,
    Lionel,

    At teh end I found the basic :-) problem on my exception but anyway , the used execute queue for REGISTER is always sip.transport.default
    Help on this point is welcome!
    Thanks

  • Problem in assigning the execute queue to EJB.

    I have a enterprise application in that a have many web application.I want to assign
    the low priority threads to one web application e.g. "A". The "A" is using one
    ejb to execute the some task.
    I am making a execute queue with name let "TestQueue"
    and assigning it to my servlet thru these entries in
    weblogic-ejb-jar :-
    <weblogic-enterprise-bean>
    <ejb-name>InferenceEngine</ejb-name>
    <reference-descriptor>
    <resource-description>
    <res-ref-name>jdbc/MyDB</res-ref-name>
    <jndi-name>jdbc/MyDB</jndi-name>
    </resource-description>
    </reference-descriptor>
    <jndi-name>ejb/InferenceEngine</jndi-name>
    <dispatch-policy>TestQueue</dispatch-policy>
    </weblogic-enterprise-bean>
    Here is my code of config.xml file for execute queue.
    <?xml version="1.0" encoding="UTF-8"?>
    <Domain ConfigurationVersion="8.1.0.0" Name="ACM_1">
    <Server ListenAddress="" ListenPort="8003" Name="ACM"
    NativeIOEnabled="true" ReliableDeliveryPolicy="RMDefaultPolicy" ServerVersion="8.1.1.0">
    <SSL Enabled="false" HostnameVerificationIgnored="false"
    IdentityAndTrustLocations="KeyStores" Name="ACM"/>
    <ExecuteQueue Name="TestQueue" ThreadPriority="1"/>
    </Server>
    I tried the ejbc command line argument -dispatchPolicy TestQueue also. But it
    is also not sending request to my TestQueue.

    One thing to note is the execute queue is chosen when the request enters
    the server. So if a webapp is assigned to Queue-1 and an ejb to
    Queue-2, and the webapp calls the ejb, the request will remain on queue-1.
    -- Rob
    Sunil Kumar Mehta wrote:
    I have a enterprise application in that a have many web application.I want to assign
    the low priority threads to one web application e.g. "A". The "A" is using one
    ejb to execute the some task.
    I am making a execute queue with name let "TestQueue"
    and assigning it to my servlet thru these entries in
    weblogic-ejb-jar :-
    <weblogic-enterprise-bean>
    <ejb-name>InferenceEngine</ejb-name>
    <reference-descriptor>
    <resource-description>
    <res-ref-name>jdbc/MyDB</res-ref-name>
    <jndi-name>jdbc/MyDB</jndi-name>
    </resource-description>
    </reference-descriptor>
    <jndi-name>ejb/InferenceEngine</jndi-name>
    <dispatch-policy>TestQueue</dispatch-policy>
    </weblogic-enterprise-bean>
    Here is my code of config.xml file for execute queue.
    <?xml version="1.0" encoding="UTF-8"?>
    <Domain ConfigurationVersion="8.1.0.0" Name="ACM_1">
    <Server ListenAddress="" ListenPort="8003" Name="ACM"
    NativeIOEnabled="true" ReliableDeliveryPolicy="RMDefaultPolicy" ServerVersion="8.1.1.0">
    <SSL Enabled="false" HostnameVerificationIgnored="false"
    IdentityAndTrustLocations="KeyStores" Name="ACM"/>
    <ExecuteQueue Name="TestQueue" ThreadPriority="1"/>
    </Server>
    I tried the ejbc command line argument -dispatchPolicy TestQueue also. But it
    is also not sending request to my TestQueue.

  • Identifying Execute Queue Threads as Socket Readers

    Hi All,
    Preface: I am trying to identify at any given instance the percentage of
    socket reader threads that are in use - this will help me to identify when
    all threads are in use and unable to service user requests. Thus my goal is
    to identify threads that are socket readers and whether they are active or
    idle.
    Through JMX I can obtain an instance of each
    weblogic.management.runtime.ExecuteThread, which lists the same information
    that you see in the console if you drill down to the thread level, for
    example:
    mydomain> Servers> myserver> Active Execute Queues> default> Execute Threads
    That information includes:
    - thread number
    - total requests
    - last request
    - current request
    - transaction
    - user
    - is the thread idle?
    Now my question is from this information can you identify which of these
    threads are being used as socket readers?
    Here are some excerpts from my JMX calls:
    Name: ExecuteThread: '0' for queue: 'default'
    Execute Queue Runtime Name: default
    Current Request: null
    Last Request: Http Request: /bookstore/en/authors/showauthors.jsp
    User: null
    Is Idle?: true
    Name: ExecuteThread: '15' for queue: 'default'
    Execute Queue Runtime Name:default
    Current Request: null
    Last Request: Scheduled Trigger
    User: null
    Is Idle?: true
    Name: ExecuteThread: '26' for queue: 'default'
    Execute Queue Runtime Name:default
    Current Request: null
    Last Request: ListenRequest for a new connection on: 'Socket
    addr=127.0.0.1,port=2061,localport=7001]'
    User: null
    Is Idle?: true
    Name: ExecuteThread: '59' for queue: 'default'
    Execute Queue Runtime Name:default
    Current Request: Socket Reader Request
    Last Request:
    weblogic.transaction.internal.ServerCoordinatorDescriptor$2@138786
    User: null
    Is Idle?: false
    It would appear that the "ListenRequest" last request would identify a
    socket reader, only I have 60 threads in my default execute queue with 70%
    dedicated to socket readers and the number of threads that say their last
    request was "ListenRequest ..." is only 5.. Furthermore there is only one
    "Socket Reader Request" identified thread.
    Are threads identified as socket readers permanently or constantly reused
    for whatever purpose is required (with a cap of use based off of the socket
    reader perspective)?
    Thanks in advance for your help!
    Steve

    Hi Achhi,
    Socket Reader Threads are the Threads which are responsible for reading the incoming request data. We can divide the Socket reader threads in two categories:
    Pure Java Socket Reqders: The pure-Java socket reader implementation, where the socket reader threads continually poll all opened sockets to determine whether they contain data to be read, even if the sockets have no data to read. (From Performance Point This is Not Good that the Sockets will be in Opened Mode even if there is no Data to read)
    Native Socket Readers: (These are the Dafault Socket Readers) The native IP socket reader provided by the host machine's operating system, where the socket reader threads target only active sockets that contain data to be read. Native socket readers never poll sockets because they are immediately notified when a socket needs to be serviced. For Better Performance You should always prefer using Native Socket Readers.
    To Enable Native Socket Readers You can Login to AdminConsole--->Servers ---><SERVER_NAME>--->configuration (Tab)--->Tuning (SubTab)---> "Enable Native IO" (This checkbox must be checked)
    Still If you want to use the Java Socket Readers .... still you can improve the performance of socket communication by configuring the proper number of socket reader threads for each server instance. For best performance, the number of socket reader threads in WebLogic Server should equal the potential maximum number of opened sockets.
    Thanks
    Jay SenSharma
    http://weblogic-wonders.com/weblogic (WebLogic Wonders Are here)

  • Execute queue thread count set back?

    I have a script which automatically sets up execute queues (and their thread counts) for either an admin server or two managed servers in a cluster (depending on whether it's a standalone deployment). Upon building a domain, the script connects to a temporary server and sets everything up, at this point it appears all the queues and thread counts are set correctly. However once the build has completed and the generated config.xml is checked, three queues don't have any thread counts associated with them at all; these queues are:
    ThreadQueue (Count)
    wli.internal.ProcessInstanceInfo (15)
    wli.internal.ProcessTracking (15)
    wli.process.event.thread.pool (15)
    The other queues have all their thread counts set correctly. Does anybody know how these queues are used and if this will have an impact on the above problem?

    No worries about this post, the reason has been solved.
    Reason
    The default thread count for execute queues in development mode is 15 threads, therefore if a queue is specified with this value it won't be set in the config.xml (when an execute queue doesn't have a ThreadCount attribute, the default is used instead). The trouble is that when the server is started we enter production mode where the default thread count is 25 threads instead.

  • JMS and advanced Queues - how to dequeue?

    Hi,
    I've recently built a MDB that listens to an Oracle Queue (9.0.4) via JMS . Everything works fine, the only thing is that the rows that have been enqueued are not deleted (dequeued) from the queue table once the MDB has picked them up.
    This only causes a problem when the database re-starts as the MDB picks up all the messages again. And also is a problem as the table will keep growing with all the messages.
    Can you tell me what I should do to dequeue the messages? Should this be a trigger of some sort or is there something I can do from within the bean to dequeue the message once it has been consumed? Or is there another way of handling this?
    Appreciate your help.
    Cheers.

    Hello,
    Great! I need that solution :)
    Can you point out how you connected the MDB to the AQ? What software or adapter did you use?
    I have the vice versa problem.
    The MDB always deletes the message in the queue table, but a rollback never works.
    Did you enable transactions by the following settings in ejb-jar.xml:
    <container-transaction >
    <method >
    <ejb-name>MyMdb</ejb-name>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    I use BEA to deploy the MDB and Dips xa-compliant StartupClass package to register the AQ Connection Factory to in the JNDI tree.
    Regards
    Thomas

  • Specifying multiple JSP's in Execute Queue

    Hi
    Bea's documentation says that you can specify the execute queue for a
    perticular JSP as follows:
    <servlet>
    <servlet-name>MainServlet</servlet-name>
    <jsp-file>/myapplication/critical.jsp</jsp-file>
    <init-param>
    <param-name>wl-dispatch-policy</param-name>
    <param-value>CriticalAppQueue</param-value>
    </init-param>
    </servlet>
    Am wondering if there is a way to specify the execute queue for a
    whole set of JSP's. Was trying wildcards in the jsp-file tag but
    havent yet had success. I would like to tell weblogic to use the queue
    I specify for all jsp's in a certain directory and I dont want to have
    to create <servlet> tags for each one since there are many!.
    If anyone has solved this or has any suggestions, please let me know.
    Thanks

    Did you try  in SM58( in the menu edit / Execute LUW's ?  There send you to screen " Execute Calls Not Yet Executed"  where you can select some parameters as excution date,  destination  user name.....  and other options with check boxes.
    I have used it and is good

  • How to find the Current threads idle in each execute queue

    Hi,
    Currently I am able to get the idle threads in the default queue.
    I would like to find out if it is possible to find out the no of threads
    that are idle in each of the execute queues in the wls server.
    Thanks
    Senthil

    Senthil Kumar wrote:
    Hi,
    Currently I am able to get the idle threads in the default queue.
    I would like to find out if it is possible to find out the no of threads
    that are idle in each of the execute queues in the wls server.
    Thanks
    Senthil
    Senthil, the easiest way from the command-line is by using a
    ExecuteQueueRutime MBean. You could use the simple syntax below or use
    the more specific domain oject name. You could also omit the -property
    option and get a list of every attribute for the bean.
    %java weblogic.Admin -url t3://127.0.0.1:7001 -username system -password
    weblogic -get -pretty -type ExecuteQueueRuntime -property
    ExecuteThreadCurrentIdleCount
    HTH
    ~Ryan

  • MDB and JMS on different servers

    Hi,
    My MDB is deployed on a different domain from the JMS server. Both are on weblogic.
    While deploying weblogic, I m getting an error: Unable to create a connection.
    Can anyone give pointers?
    I have ensured the following:
    1. The JMS server starts before the MDB server
    2. The following data is mentioned in weblogic-ejb-jar.xml:
    jndi name of the remote queue
    provider url--- t3://hostName:port
    jndi name of the remote connection factory
    is there anyting else that i m missing ?
    thanx and regards
    Shivraman Giri

    Hi,
    Thanx for responding.
    I will keep in mind these points when I use a foreign JMS provider. T
    Right now I m getting problem when the JMS provider is remote but native ie. MDB and JMS are both on Weblogic. This obviates the need to mention Initial Context. Only the provider URL is to be specified.
    Can you suggest a reason as to why i my EJB container (first weblogic ) is unable to connect to JMS provider (another weblogic)
    regards
    S.G

Maybe you are looking for

  • Simplel complex report query

    hi guru's i had prepared two complex reports seperately having the same Selection-screen , internal tables and declerations...now i have to combine both the reports into one single report....based upon <b>one field (i.e, filed PROCESS_TYPE)</b> of Se

  • USB doesn't recognized by System Profiler

    Hello, I'm a MacOSX newbie and I'm trying to discover an error. I've got a problem with USB Controller device(i think the problem is in EFI partition) because when I insert different USB flash disks, no one appears in System Profiler. I'm using MacOS

  • What is the imap calendar? - Never saw it before...

    I've used iCal any synced it with my iPhone for years now and the only calendars that where ever on either were ones I created. However, there's now something called imap (seems to have arrived around the time of iPhone OS4), which my phone and iCal

  • What are all the possible joins can be made in infosets?

    Hi all, Can anyone let me know what are all the possible joins that can be made in an infosets. can anyone explain me with an example. thanxs haritha

  • Can weblogic run serializer classes created by wscompile tool

    Hi, I am trying to deploy a webservice on weblogic. This webservice implements a given wsdl. I have created type mapping classes from 'wscompile' tool and not by 'autotype' provided by weblogic as i want my code to follow JAX-RPC standards and it sho