Writing to JMS-queue of another container

Hi,
is it possible to enqueue/dequeue messages to a jms-queue in another OC4J on the same application server?
I can specify the connection factory of OC4J-1 in a java bean, which lives in OC4J-2 but, the bean does not recognize this connection factory. If i specify a connection factory of OC4J-2 everything is fine...
Are there some flags to specify the container?

You can add host/port attributes to the connection factory definition in OC4J-2 -- make them point to the JMS server in OC4J-1.
Note that the queue will need to be declared (with exactly the same name attribute value) on both OC4J-1 and OC4J-2.
-Jeff

Similar Messages

  • WLST: how to move messages from a JMS queue to another queue

    Hi all,
    I'm looking for an example for moving messages from a JMS queue to another JMS queue using WLST.
    Do you have an example about that or a piece of code as starting point ?
    Thanks in advance
    ferp

    http://www.javamonamour.org/2011/09/wlst-move-jms-messages.html

  • Process not writing to JMS queue with non-xa data source

    I have a process reading from a JMS-AQ with non XA, but it does not seem to be performing a commit and writing to the queue. If I use XA all the way ut works, but I don't get the desired error handling which I have built. Anything obvious I am missing? 11.1.1.5 SOA

    Hi,
    Under Weblogic JDBC Datasources select the datasource and then select Transaction tab there you can find Use XA datasource interface.
    and In DB adapter ... go to Configuration Tab ---Outbound Connection Pool--- Unhide the pool group -Select JNDI name ( e.g eis/DB/local ) ---enter the JDBC datasource created earlier in weblogic JDBC datasource against xADataSourceName..
    Now Click on Transaction tab & select Transaction Support: as XA Transaction .
    Regards,
    Abhinav Gupta

  • Post XML event to a JMS queue on another server

    Hi All,
    How do post an XML event to a JMS queue that is registered on another server
    from the studio?.
    This functionality supposed to be available in WLI 2.0 as an enhancement
    from WLPI 1.2.1.
    Any ideas?
    - Jagdish

    Jagdish
    Sorry, I am on vacation and trying to have some time to myself. If the
    Topic or Queue is on another server in a cluster then you use the JNDI name,
    however, if it not available via JNDI then you need to write some code to
    connect to the remote machine and do it that way.
    Tony
    "Jagdish" <[email protected]> wrote in message
    news:[email protected]..
    Hi Tony,
    Can one of you guys reply to this please?
    - Jagdish
    "Jagdish" <[email protected]> wrote in message
    news:3b6ac305$[email protected]..
    Hi All,
    How do post an XML event to a JMS queue that is registered on anotherserver
    from the studio?.
    This functionality supposed to be available in WLI 2.0 as an enhancement
    from WLPI 1.2.1.
    Any ideas?
    - Jagdish

  • Error writing to JMS queue

    I am trying to write to a JMS queue using the following cod:
    Hashtable rmiEnvironment = new Hashtable();
    rmiEnvironment.put(Context.INITIAL_CONTEXT_FACTORY,"com.evermind.server.rmi.RMIInitialContextFactory");
    rmiEnvironment.put(Context.SECURITY_PRINCIPAL, "admin"); // username
    rmiEnvironment.put(Context.SECURITY_CREDENTIALS, "welcome"); // pwd
    rmiEnvironment.put(Context.PROVIDER_URL,"ormi://10.10.50.50:9127/APP");
    Context ctx = new InitialContext(rmiEnvironment);
    QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory)ctx.lookup("jms/APP_QueueConnectionFactory");
    The last line throws this exception:
    javax.naming.NamingException: Lookup error: java.io.EOFException: Disconnected; nested exception is:
         java.io.EOFException: Disconnected [Root exception is java.io.EOFException: Disconnected]
         at com.evermind.server.rmi.RMIContext.lookup(RMIContext.java:176)
         at javax.naming.InitialContext.lookup(InitialContext.java:347)
         at tests.TestJms.main(TestJms.java:35)
    Caused by: java.io.EOFException: Disconnected
         at com.evermind.server.rmi.RMIConnection.connect(RMIConnection.java:2507)
         at com.evermind.server.rmi.RMIConnection.connect(RMIConnection.java:2355)
         at com.evermind.server.rmi.RMIConnection.lookup(RMIConnection.java:1782)
         at com.evermind.server.rmi.RMIServer.lookup(RMIServer.java:686)
         at com.evermind.server.rmi.RMIContext.lookup(RMIContext.java:157)
         ... 2 more
    On the server side (OC4J standalone), in jms.log the following is printed:
    javax.jms.JMSException: [PROTOCOL ERROR] JMSRequestHandler[5:testsrv:46202]: "JMS protocol" error, expected "-559,038,735", got "-485,684,723".
    at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1909)
    at com.evermind.server.jms.JMSRequestHandler.readCheck(JMSRequestHandler.java:272)
    at com.evermind.server.jms.JMSRequestHandler.protocol(JMSRequestHandler.java:282)
    at com.evermind.server.jms.JMSRequestHandler.run(JMSRequestHandler.java:124)
    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
    at java.lang.Thread.run(Thread.java:534)

    For the record, if you want to run that sample code:
    http://www.oracle.com/technology/sample_code/tech/java/jms/index.html
    edit the classpath section of build.xml (provided with sample) as follows:
    <!--Set the classpath-->
    <path id="classpath">
         <pathelement location="${OC4J_HOME}/j2ee/home/lib/jms.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/lib/jndi.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/oc4jclient.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/lib/javax77.jar"/>
         <pathelement location="${OC4J_HOME}/lib/dms.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/lib/bcel.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/oc4j-api.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/oc4j.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/lib/oc4j-internal.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/oc4jclient.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/rmic.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/lib/adminclient.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/lib/connector.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/lib/jmxri.jar"/>
         <pathelement location="${OC4J_HOME}/j2ee/home/lib/jta.jar"/>
         <pathelement location="${OC4J_HOME}/opmn/lib/optic.jar"/>
    </path>
    (class packaging has changed since this sample was written. Note that the above is really a superset of classes you would need for that simple example).

  • JMS Queue monitoring

    Hi everyone,
    is there any way to monitor a jms queue with its contained messages ? i'm talking about a tool like the jmx console in jboss - the JMS Adapter and JMS Notification in the Visual Admin only provide some properties.
    Any suggestions ?

    Hi,
    In short what you want (sending email in case message has stayed too long time in the queue), is NOT possible directly. That's not a standard feature by the JMS spec.   
    What is possible is the is so-called dead messages, once the acknowledgment fails the predefined number of times then the messages will be redirected to a special queue. From there the messages can be exported by telnet.
    Check SAP note 777930 for more info. Btw, it might be a good idea to get familiar with that note, otherwise if the external server let's say always throws an exception while processing the message, it will be moved to this special queue and unless someone issues the appropriate telnet commands, nobody will understand about this.
    However if you disable this  feature, that will mean that the message will be delivered endlessly, causing CPU load. Not nice if you have doubts in your external listeners.                                                                               
    Now about the queue monitoring :
    You could create manually a periodic task (EJB timers in J2EE 1.4 which is covered in the prerelease of the next server version, or if you are using Netweaver 04s or 04s than perhaps java.util.Timer) that will periodically open a JMS browser, check the  messages in the queue, if they have stayed too long time (>100 seconds for example ?) or if the queue is too big (>100 messages) you can send manually the email alert that something has went wrong. By usage of the JAVA API that should be simple
    Another thing you can do is that inside your external listeners and the onMessage method, you could check manually the number of times the message is redelivered, if it is above some threshold (i.e . if it is 3, that means the SAP server has delivered the message 3 times , since the listener have rejected it 2 times already),then you can send the email via the standard java API. The delivery count can be retrieved by using the standard optional property JMSXDeliveryCount from the message.                                                      
    HTH
    Peter

  • JMS Queue up or down

              HI,
              As part of the application I am developing, I need to write a message on a JMS
              Queue of
              another application (called Acq).
              Is their anyway of knowing programmatically whether the other application's (Acq)
              JMS Server is up or down.
              Thanks for the help
              ---Radhe
              

    Hi Radhe,
              Search for "server health monitoring" in the docs.
              Or simply register a standard JMS connection onException
              and also a weblogic extension JMS session onException listener
              to listen for failures once the client succeeds
              in connecting. (poll/connection/onException repeat)
              Or use a store-and-forward design, where a local
              queue that is always there has an application MDB
              or a Messaging Brdige that forwards to the remote destination.
              This allows the produce to continue even if the remote side is down.
              Tom
              Radhe wrote:
              > HI,
              >
              > As part of the application I am developing, I need to write a message on a JMS
              > Queue of
              > another application (called Acq).
              >
              > Is their anyway of knowing programmatically whether the other application's (Acq)
              > JMS Server is up or down.
              >
              > Thanks for the help
              > ---Radhe
              

  • Using a  foreign WLS JMS queue (no bridge)

              Hi,
              We have a configuration from which we communicate from WLS 7 to a foreign MQ via
              JMS. This works well and we have loaded the foreign MQ jms objects into WLS JNDI
              using a statup class (as the whitepaper available describes) and we look them
              up successfully.
              However, we now have a siutation where we briefly need to switch our application
              to point to a WLS JMS queue on another remote WLS server. Is there an easy way
              to load foreign (maybe remote would be a better word in this case) WLS JMS QCF's
              and destinations into my local WLS JNDI so that I can treat them the same way
              as my MQ objects?
              I can't seem to find any information on how to do this as all information seems
              to point towards the messaging bridge (we can't use this as the bridge changes
              the message JMSMessageID and screws our correlation mechanism up).
              I know we could just look the foreign objects up by using the JNDI environment
              of the remote WLS machine but this would mean changing code and this I can't to
              do (as all our code uses the local default WLS JNDI).
              Any ideas would be gratefully received.
              Cheers,
              Jay.
              

    WLS JMS and MQ JMS handle their JNDI objects a little differently, so I can
              see how this can be confusing. An MQ JMS "ConnectionFactory" or
              "Destination" object is like a little configuration file that tells you
              where the queue manager or queue is, so you can serialize it and look it up
              later and use it to find the queue manager.
              A WLS JMS ConnectionFactory or Destination object is a reference to an
              object on a running server. So, you connect to the server and look them up,
              and then you can use it for messaging. You don't have to store these objects
              in a separate place, like MQ makes you do. But it means that the WLS JNDI
              objects have to be looked up from a running server, and if the server
              restarts, you have to look them up again.
              Doing what you're asking is definitely trickier in 7.0. One thing you could
              do is, again using a servlet or an EJB, connect to the remote JMS cluster
              and look up the objects at the time you want to make the switch. (If the
              remote cluster is down, you'll have to retry from time to time.) If the
              remote cluster is down, you won't be able to look up those objects, but then
              again, if it were down you wouldn't be able to send messages there anyway.
              Using 8.1 would be less complicated, but this method should also work.
              greg
              "Jay Green" <[email protected]> wrote in message
              news:[email protected]...
              >
              > Thanks Greg. When I was searching the BEA website I read about the
              facility in
              > 8.1. Unfortunatley, as you point out, it doesn't help me much with WLS
              7.0.
              >
              > My first thought was to copy my exisiting MQ startup class but I couldn't
              work
              > out how to do this for the remote WLS jms objects as the standard jms
              classes
              > (for QCF etc) don't have methods that allow me to define the foreign WLS
              jms
              > host IP address etc. I checked the WLS 7 API and the jms package didn't
              seem
              > to offer anything to help me do this (as IBM do for MQ). Any ideas?
              >
              > Apologies if I'm being a bit slow here!
              >
              > "Greg Brail" <[email protected]> wrote:
              > >WLS 8.1 includes a feature called "Foreign JMS Providers" that lets you
              > >configure (using the console or config.xml) a link between a JMS JNDI
              > >object
              > >in your WLS servers' tree, and a JNDI object in another provider -- which
              > >could be WLS JMS, or a foreign vendor.
              > >
              > >Using this feature, your application could just look up the local JNDI
              > >objects in the local WLS tree, and then the server in turn performs the
              > >lookup from the actual JNDI provider using the parameters you put in
              > >the
              > >console (or config.xml). So, when you make a change in the console, new
              > >JNDI
              > >lookups will go to the new place.
              > >
              > >Unfortunately, this doesn't help you with 7.0. You could always
              > >programmitically update the local JNDI tree the way you're doing in your
              > >startup class, but instead do it from a servlet or an EJB.
              > >
              > > greg
              > >
              > >"Jay Green" <[email protected]> wrote in message
              > >news:[email protected]...
              > >>
              > >> Hi,
              > >>
              > >> We have a configuration from which we communicate from WLS 7 to a
              foreign
              > >MQ via
              > >> JMS. This works well and we have loaded the foreign MQ jms objects
              > >into
              > >WLS JNDI
              > >> using a statup class (as the whitepaper available describes) and we
              > >look
              > >them
              > >> up successfully.
              > >>
              > >> However, we now have a siutation where we briefly need to switch our
              > >application
              > >> to point to a WLS JMS queue on another remote WLS server. Is there
              > >an easy
              > >way
              > >> to load foreign (maybe remote would be a better word in this case)
              > >WLS JMS
              > >QCF's
              > >> and destinations into my local WLS JNDI so that I can treat them the
              > >same
              > >way
              > >> as my MQ objects?
              > >> I can't seem to find any information on how to do this as all
              information
              > >seems
              > >> to point towards the messaging bridge (we can't use this as the bridge
              > >changes
              > >> the message JMSMessageID and screws our correlation mechanism up).
              > >>
              > >> I know we could just look the foreign objects up by using the JNDI
              > >environment
              > >> of the remote WLS machine but this would mean changing code and this
              > >I
              > >can't to
              > >> do (as all our code uses the local default WLS JNDI).
              > >>
              > >> Any ideas would be gratefully received.
              > >>
              > >> Cheers,
              > >>
              > >> Jay.
              > >
              > >
              >
              

  • Create jms queue xml data server

    Hi,
    What's the difference between jms queue and jms queue xml data servers and how to create jms queue xml data server.
    Thanks.

    Hello,
    JMS messages can principally be processed by Oracle Data Integrator in two formats:
    - JMS Messages: containers for rows of data, handled through JMS Queue/JMS Topic Technologies. With JMS Queue/JMS Topic technologies, each JMS destination is defined similarly to a flat file datastore. Each message in the destination is a record in the datastore.
    - XML Messages: containers for XML files, handled through JMS XML Queue/JMS XML Topic Technologies. With JMS XML Queue/JMS XML Topic technologies, each messages payload contains a complete XML data structure. This structure is mapped into a relational schema (XML Schema) which appears as a model. This use the Oracle DI Driver for XML (see the driver documentation in Oracle DI documentation).
    Find below a step by step creation process for such a destination:
    1. Data Server
    To create a JMS XML Queue data server, you declare a simple JNDI connection. The only JMS XML specific information is added to the URL. This information defines the XML file format.
    The JNDI URL should be : <JMS_RESOURCE>?d=<DTD_FILE>&f=<XML_FILE>&s=<SCHEMA>&JMS_DESTINATION=<JMS_DESTINATION_NAME>
    - JMS_RESOURCE: JNDI resource corresponding to your JMS queue that will contain the XML payload. You would specify this URL if you were managing normal JMS messages.
    - DTD_FILE: path to a DTD file that describes the XML structure. Mandatory if the parameter XML_FILE is omitted.
    - XML_FILE: path to the XML file with a structure similar to the expected XML messages. Mandatory if the DTD_FILE parameter is omitted.
    - SCHEMA: schema name that will contain the XML structure. This value must match the one set for the physical schema attached to this data server. This parameter is mandatory.
    - JMS_DESTINATION_NAME: name of the JMS queue or topic. This parameter is mandatory.
    2. Schema
    Creation is straightforward: In the Schema (Schema) and Schema (Work Schema), enter the name of the <SCHEMA> defined in the data server JNDI URL.
    3. Model
    Use standard reverse-engineering. As the Oracle DI Driver for XML is used the XML structure will be reversed as a relational structure.
    Regards,
    - FX

  • MDB,MDB container or JMS adapter stops processing messages from JMS queue

    Hi guys,
    we have created a component using Enterprise Java Beans, let's say a product catalog, deployed it on a Glassfish v2 instance, and connected it to a legacy system using JMS and Sun MQ v4.1 as messaging system. The catalog component thus starts one MDB that listens on a JMS queue, let's say a queue named catalog_business_events_in, and waits for incoming messages, i.e. in our case update events. The problem is, that in general this approach works well, but sometimes the MDBs/JMS adapter stops for some reason fetching and processing messages from the JMS queue. We don't know why - no exceptions, etc.. Seems to be a Glassfish EJB container, JMS adapter or Sun MQ configuration issue. It seems to be that our component is not the problem.
    The messages are compressed/uncompressed by Sun MQ automatically. We actually have 2 Sun MQ instances in clustered mode running to have some kind of failover - no HA cluster, yet. Sun MQ instances are accessed from Glassfish instances running in different Glassfish clusters - so we have a dedicated Sun MQ cluster not a Sun MQ instance per Glassfish instance. Each Glassfish instance is configured such that it knows both Sun MQ instances to allow automatic failover.
    Has someone an idea, why the MDBs/ MDB container/ JMS adapter - stops processing messages? We are kind of puzzled as it happens more often now and apparently when traffic is (very) low not high!
    Thanks for your help.
    Cheers,
    Martin
    Edited by: east1979 on Jan 13, 2009 8:06 AM

    Hi Manoj,
    I have a very similar if not identical issue,
    Error while running realtime jobs that read from JMS tables via JMS MQ adapter:
    15/11/12 09:10:08  JMS GET OPERATION ERROR : TIMEOUT.UNABLE TO RECEIVE RESPONSE FROM THE INVOKED DATA SERVICES SERVICE.ADAPTER OPERA
    TION TO CONTINUE.
    15/11/12 09:10:15  Communication Error. See real time job log for details.
    Dump available:
    https://sapmats.wdf.sap.corp/download/download.cgi?id=5C0KZAHA3RSXBJW3ABLMUUT2P5UUKWO2TM3EJDM5W2HGDZUDID
    Version of DS:14.0.3.273
    Any comments?
    Thansk and kind Regards,
    Kenneth

  • Sending message to a JMS queue and making DB update through a single container managed transaction

    Can we use container managed transactions to send message to JMS queue and make DB updates in a sigle transaction. If yes then do we need 2pC license. I am using weblogic 6.0 SP2 and my database driver do not supports XA

    If your JMS provider is XA compliant, you can.
    If you are using WebLogic 6.0 JMS, it supports 2PC.
    The JDBC resource that does not support XA can participate in the global transaction
    creating a TXDataSource and setting "enable two-phase commit"=true in the Configuration
    panel.
    About the JMSConnectionFactory, on the console, in WebLogic 6.0, in the "Transaction"
    tab folder, set "User Transactions Enabled"=true.
    In your code, use non-transacted sessions.
    For 2pc protocol, you need a license or you'll get an exception.
    Sergi
    Manoj Bansal <[email protected]> wrote:
    Can we use container managed transactions to send message to JMS queue and
    make DB updates in a sigle transaction. If yes then do we need 2pC license.
    I am using weblogic 6.0 SP2 and my database driver do not supports XA

  • Writing to a JMS queue from Tux-service?

    Greetings,
    is there any way to write to a JMS-queue from a Tuxedo/atmi service without
    using WebLogic Server (because of WTC needing it)?
    Lara

    Lara,
    One way to write to a JMS-queue from a Tux service would be by using JNI functions.
    Inside your server's tpsvrinit function you can create a JVM (using JVM_CreateJavaVM
    function) and instantiate a couple of Java objects. You may then call Java methods
    on these objects from your Tux services. At the server's tpsvrdone function you
    must then destroy the Java objects and the JVM.
    Regards,
    Lazaros
    "Lara Faiazza" <[email protected]> wrote:
    Greetings,
    is there any way to write to a JMS-queue from a Tuxedo/atmi service without
    using WebLogic Server (because of WTC needing it)?
    Lara

  • Copying JMS Queues

    I am writing Weblogic Integration(WLI) applications. When I deploy these apps I have to create some JMS queues in the server or I get warning messages in the Weblogic console. I have several Weblogic 10.3 servers that I need to deploy these WLI apps too.
    I'm wondering if there is a way that I can copy the contents of the xml files that define the JMS queues from one server to another server? What files would need to be copied? I'm trying to find an easier way to create the JMS queues. Creating the queues in the console can get time consuming if you have alot of queues to create.
    Any help is greatly appreciated!.....
    John

    Hi John,
    There are multiple methods for automating WebLogic configuration, and WebLogic JMS (just like all other WebLogic subsystems), can be configured using almost any of them. Here are some:
    -- On-line or off-line WLST script
    -- Java program that makes JMX config mbean calls
    -- If the JMS dest config is absolutely identical, then you can simply copy the JMS module XML file to the different domains, and then use the console, WLST, or JMX to modify the config.xml in order to reference it. The module's contain destination config, while the config.xml contains subdeployment, store, and JMS server config.
    When working with multiple WebLogic domains, be careful to ensure that all domain names are different and all WebLogic server names are different (even if the WebLogic servers are in different domains). In addition, in certain cases all JMS server names must be different (even if they are in different domains -- applies to SAF feature apps that use cross-domain reply-to if I recall correctly).
    Tom
    PS. See also [ JMS Configuration Best Practices | http://download.oracle.com/docs/cd/E15523_01/web.1111/e13738/best_practice.htm#CACJCGHG ]

  • MDBs in 9.1 continue to consume JMS queues even after being deleted

    <b>We have an MDB application that reads a batch message off of a JMS queue, archives it in a database, parses the batch message into individual messages and writes them onto other JMS queues to be consumed by another application. Everything was running fine in Weblogic 8.1.5. However, due to problems with XA drivers and the MSDTC(predictable SQL server crashes), we decided to upgrade to Weblogic 9.1 to take advantage of the LLR option.</b>
              <b>First, we had an issue where our MDBs were causing the following exception:</b>
              <i>####<May 26, 2006 7:42:12 PM EDT> <Error> <JMX> <ist-clft2> <wltest1> <ExecuteThread: '1' for queue: 'default'> <<WLS Kernel>> <> <> <1148686932991> <BEA-149500> <An exception occurred while registering the MBean null.
              java.lang.IllegalArgumentException: Registered more than one instance with the same objectName : com.bea:ServerRuntime=wltest1,MessageDrivenEJBRuntime=RhapsodyMDB_DMBModule!JMSServer4@DMB_BEAN_QUEUE,Name=RhapsodyMDB_DMBModule!JMSServer4@DMB_BEAN_QUEUE,ApplicationRuntime=DataBrokerEAR1_2,Type=EJBPoolRuntime,EJBComponentRuntime=DataBrokerEJB new:[email protected] existing weblogic.ejb.container.monitoring.EJBPoolRuntimeMBeanImpl@7db003
                   at weblogic.management.jmx.ObjectNameManagerBase.registerObject(ObjectNameManagerBase.java:146)
                   at weblogic.management.mbeanservers.internal.WLSObjectNameManager.lookupObjectName(WLSObjectNameManager.java:133)
                   at weblogic.management.jmx.modelmbean.WLSModelMBeanFactory.registerWLSModelMBean(WLSModelMBeanFactory.java:86)
                   at weblogic.management.mbeanservers.internal.RuntimeMBeanAgent$1.registered(RuntimeMBeanAgent.java:104)
                   at weblogic.management.provider.internal.RegistrationManagerImpl.invokeRegistrationHandlers(RegistrationManagerImpl.java:205)
                   at weblogic.management.provider.internal.RegistrationManagerImpl.register(RegistrationManagerImpl.java:85)
                   at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:320)
                   at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:257)
                   at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:222)
                   at weblogic.ejb.container.monitoring.EJBPoolRuntimeMBeanImpl.<init>(EJBPoolRuntimeMBeanImpl.java:32)
                   at weblogic.ejb.container.monitoring.MessageDrivenEJBRuntimeMBeanImpl.<init>(MessageDrivenEJBRuntimeMBeanImpl.java:49)
                   at weblogic.ejb.container.manager.MessageDrivenManager.initialize(MessageDrivenManager.java:503)
                   at weblogic.ejb.container.manager.MessageDrivenManager.setup(MessageDrivenManager.java:120)
                   at weblogic.ejb.container.manager.MessageDrivenManager.setup(MessageDrivenManager.java:146)
                   at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.createMDManager(MessageDrivenBeanInfoImpl.java:1481)
                   at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.createDDMDManagers(MessageDrivenBeanInfoImpl.java:1378)
                   at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.onDDMembershipChange(MessageDrivenBeanInfoImpl.java:1285)
                   at weblogic.jms.common.CDS$DD2Listener.listChange(CDS.java:454)
                   at weblogic.jms.common.CDSServer$DDHandlerChangeListener.statusChangeNotification(CDSServer.java:167)
                   at weblogic.jms.dd.DDHandler.callListener(DDHandler.java:318)
                   at weblogic.jms.dd.DDHandler.callListeners(DDHandler.java:344)
                   at weblogic.jms.dd.DDHandler.run(DDHandler.java:282)
                   at weblogic.jms.common.SerialScheduler.run(SerialScheduler.java:37)
                   at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
                   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
                   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
              >
              ####<May 26, 2006 7:42:13 PM EDT> <Info> <EJB> <ist-clft2> <wltest1> <ExecuteThread: '1' for queue: 'default'> <<WLS Kernel>> <> <> <1148686933069> <BEA-010060> <The Message-Driven EJB: RhapsodyMDB has connected/reconnected to the JMS destination: weblogic.jms.DMB_BEAN_QUEUE.></i>
              <b>
              Generally this happend after there were cluster communication issues. Multi-cast messages were lost and our MDB reconnects to the JMS queues as indicated by the below log:</b>
              <i>####<May 30, 2006 5:19:06 PM EDT> <Info> <EJB> <AMTC-RAP-STG3> <RAPBEA1S> <[ACTIVE] ExecuteThread: '54' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1149023946040> <BEA-010060> <The Message-Driven EJB: DataBrokerMDB has connected/reconnected to the JMS destination: weblogic.jms.PHINMS_DMB_QUEUE.>
              ####<May 30, 2006 5:19:10 PM EDT> <Info> <Cluster> <AMTC-RAP-STG3> <RAPBEA1S> <[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1149023950228> <BEA-000112> <Removing RAPBEA3S jvmid:720875810499147484S:cmts-rap-bea3:[7005,-1,-1,-1,-1,-1,-1]:DMBstg:RAPBEA3S from cluster view due to timeout.>
              ####<May 30, 2006 5:19:11 PM EDT> <Info> <Cluster> <AMTC-RAP-STG3> <RAPBEA1S> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1149023951009> <BEA-000115> <Lost 2 multicast message(s).>
              ####<May 30, 2006 5:19:11 PM EDT> <Info> <Cluster> <AMTC-RAP-STG3> <RAPBEA1S> <[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1149023951040> <BEA-000111> <Adding RAPBEA3S with ID 720875810499147484S:cmts-rap-bea3:[7005,-1,-1,-1,-1,-1,-1]:DMBstg:RAPBEA3S to cluster: DMBstg_cluster view.></i>
              <b>
              This would cause the queues to eventually have hundreds of consumers and cause the server to fail.
              Basically, it seems as though the MDBs that are supposed to stop continue and attempt to process, while new threads connect to the JMS queues.
              I tried undeploying our application and deleted it from the configuration. However there were consumers still on the respective queues and when I sent messages, I got an error indicating a "Class Not Found exception" due to the fact that the EJB was undeployed and deleted from the configuration, however the MDB component was not and continued to listen for messages. In 8.1.5, as soon as the application was undeployed, there were zero consumers on the JMS queues.
              I have read the posts about a soon to be released fix that would have the MDBs connect only to the queues locally and not go out the the cluster. Would this fix my issue?
              Is there something in the deployment descriptor to configure that will cause it to disconnect and now spawn so many consumers to the JMS queues?
              Why is it that the number of MDB consumers on the JMS queues stayed static in 8.1.5, but they are erratic in 9.1 even after I set our 9.1 server to use the 8.1.5 execute queue policy. Help would be much appreciated.</b>

    I recommend contacting customer support. There's a known problem with MDBs listening to distributed destinations that are local to the same cluster as the MDB, you're problem may be related (the clue is that the stack trace contains jms.dd.DDHandler.callListeners()). The problem is that the MDB connects to all physical queues in a distributed destination rather than just the local queue.
              Tom

  • Issue in Synchronous OSB using Jms Queues in OSB11g

    Hi,
    I am working on building a synchronous OSB using the following steps.
    1)     Creating the Synchronous OSB Proxy Service which routes the message to the business service which in turn places a message in the Queue(inqueue) by populating the JMSCorrelationId and waits for the response message to consume from another queue.
    2)     A Composite(SOA) will consume the message from this Queue
    3)     It will do necessary transformation and Places it in another Queue (Say Response Queue).
    4)     OSB Business service waiting in Step 1 will receive the response from this response Queue.
    I used a sample Wsdl which has both request and response message types.
    I observed that the correlation ID is maintained properly from inqueue to response queue. But the message is not getting picked up by OSB from the response Queue
    Twist: It is working absolutely fine in OSB 10g but it is not working in OSB 11g.
    I tried using Messaging service as well as using the sample WSDL i.e keepiing the soap message in the queue. Both the cases are working absolutely fine OSB 10g but not in OSB 11g.
    Can anyone faced a similar issue or any pointers will be great help in this regard.
    Regards,
    Ashok

    To debug this further can you check if the response Q has any active consumers. ? When you use response by correlation ID business service, OSB actually creates MDB's with message selectors under the hood.
    This is a sample of the ejb-jar.xml of the MDB created for a business service with response by Correlation ID pattern.
    <?xml version='1.0' encoding='UTF-8'?>
    <jav:ejb-jar xmlns:jav="http://java.sun.com/xml/ns/javaee">
    <jav:display-name>BEA ALSB JMS Outbound Sync-Async Endpoint</jav:display-name>
    <jav:enterprise-beans>
    <jav:message-driven>
    <jav:ejb-name>ResponseEJB-6577847719916437493-3893eeb7.1287d30ba4f.-7fe1</jav:ejb-name>
    <jav:ejb-class>com.bea.wli.sb.transports.jms.JmsAsyncResponseMDB</jav:ejb-class>
    <jav:transaction-type>Container</jav:transaction-type>
    <jav:message-destination-type>javax.jms.Queue</jav:message-destination-type>
    <jav:activation-config>
    *<jav:activation-config-property>*
    *<jav:activation-config-property-name>messageSelector</jav:activation-config-property-name>*
    *<jav:activation-config-property-value>JMSCorrelationID LIKE 'ID:424541534594cf52%'</jav:activation-config-property-value>*
    *</jav:activation-config-property>*
    </jav:activation-config>
    <jav:env-entry>
    <jav:env-entry-name>service-ref</jav:env-entry-name>
    <jav:env-entry-type>java.lang.String</jav:env-entry-type>
    <jav:env-entry-value>BusinessService$Test$RequestQ</jav:env-entry-value>
    </jav:env-entry>
    As you can see the message selector is based on JMSCorrelationID LIKE 'ID:424541534594cf52%'. This means the business service will pick only those messages which has its correlation ID starting with ID:424541534594cf52.
    You can see the message selector for your MDB from admin console --> deployments.
    Check and confirm if the correlation ID created in the request also starts with this value and the same is send back from the server. Also try deleting and recreating the business service or rename the business service which will create a new MDB under the hood and check the above.

Maybe you are looking for

  • Can both an intel and a PPC mac use time machine on the same TC?

    I just got a TC and have successfully used time machine with a MBP. I was about to install Leopard on my PPC eMac in order to use time machine on the TC but I wondered if they could both use the TC hard drive as it is currently formatted. As I recall

  • Can we delete a single row in SID table?

    I am having a problem with conversion exit in SID table.  These are the error messages. Value in SID table is TPV; correct value is TPV; SID in SID table is 875 Message no. RSRV200 Diagnosis The following data record either has an incorrect internal

  • How do I show duplicates in iPhoto?

    I have multiple copies of all my photos in iPhoto... I would like to delete all the duplicates. plz help!

  • Need High quality fla to dvd playable file converter

    Hi, I'm making a project in swf which has got audio, video and images. I need to release this project in flash format and DVD format also. Could anyone suggest me any High quality fla to dvd converter ? I just used trial versions of Moyea and few oth

  • Can't see Prefrence Dialog box

    I Cannot see my prefrence Dialog box adobe illustrator.  I click it in the file menu or press cmd k and my tool bar disable but the dialog box does not pop up.  I can't do anything untill I press escape.  Then i get back to the program.  It is clearl