Deploy MDBs in Different WL Instances Subscribed to Same Topic

          Let's say I have MDBs X, Y, and Z, each needing to be deployed to a different Weblogic
          server. All need to subscribe to the same Topic. How is this done? Specifically,
          how is the Topic configured and how are the MBDs deployed?
          Thanks,
          Jim Goodwin
          

For your reading enjoyment, I'm posting some of my
          internal notes on durable subscriber MDB's. This consolidates
          newsgroup information in one place.
          Jim Goodwin wrote:
          > "Jim Goodwin" <[email protected]> wrote:
          >
          >>Let's say I have MDBs X, Y, and Z, each needing to be deployed to a different
          >>Weblogic
          >>server. All need to subscribe to the same Topic. How is this done? Specifically,
          >>how is the Topic configured and how are the MBDs deployed?
          >>
          >>Thanks,
          >>
          >>Jim Goodwin
          >
          >
          > Bah! Nevermind. I found the information I was looking for in other threads.
          A durable topic subscriber MDB uses its name to generate its client-id.
          Since JMS enforces uniqueness on this client-id, this means that if a durable
          subscriber MDB is deployed to multiple servers only one server will be able
          to connect. Some applications want a different behavior where
          each MDB pool on each server gets its own durable subscription.
          The MDB durable subscription id, which must be unique on its topic, comes from:
          1) <jms-client-id>MyClientID</jms-client-id>
          (the weblogic dtd)
          2) if (1) is not set then the client-id
          comes from the ejb name.
          The durable subscription is uniquely identified within a cluster by a
          combination of "connection-id" and "subscription-id". Only one active
          connection may use a particular "connection-id" within a WebLogic cluster.
          The connection id comes from:
          1) The "ClientId" attribute configured on the WebLogic connection factory.
          This defaults to null. Note that if the ClientId is set on a connection
          factory, only one connection created by the factory
          may be active at a time.
          2) If (1) is not set, then, as with the subscriber-id,
          the connection-id is derived from jms-client-id descriptor attribute:
          <jms-client-id>MyClientID</jms-client-id>
          (the weblogic dtd)
          3) If (1) and (2) are not set, then, as with the subscriber-id,
          the connection-id is derived from the ejb name.
          Work-around:
          A) Create a custom connection-factory for each server:
          1) configure "JNDIName" to the same value across all servers
          ("myMDBCF" in this example)
          2) configure "ClientId" to a unique value per server
          3) enable "UserTransactionsEnabled"
          4) enable "XAConnectionFactoryEnabled"
          5) set "AcknowledgePolicy" to "ACKNOWLEDGE_PREVIOUS"
          6) target the CF at a single WebLogic server
          (Number 5 is required for non-transactional topic MDBs)
          B) In the MDB's weblogic-ejb-jar.xml descriptor, set the MDB's connection
          factory to the JNDI name of the custom connection factories configured in
          (A). Optionally, also specify the subscriber-id via the jms-client-id
          attribute.
          <weblogic-ejb-jar>
          <weblogic-enterprise-bean>
          <ejb-name>exampleBean</ejb-name>
          <message-driven-descriptor>
          <connection-factory-jndi-name>myMDBCF</connection-factory-jndi-name>
          <jms-client-id>myClientID</jms-client-id>
          </message-driven-descriptor>
          </weblogic-enterprise-bean>
          </weblogic-ejb-jar>
          C) Target the application at the same servers that have the custom connection
          factories targeted at them.
          Notes/Limitations:
          1) If the MDB is moved from one server to another, the MDB's corresponding
          connection-factory must be moved with it.
          2) This work-around will not work if the destination is not in the same
          cluster as the MDB. (The MDB can not use the local connection factory, which
          contains the connection-id, as connection factories do not work unless they
          are in the same cluster as the destination.)
          3) This work-around will not work for non-WebLogic JMS topics.
          

Similar Messages

  • Different weblogic instances listening to a topic

              Hi,
              I have a scenario like this---.
              I have 2 weblogic servers running on two different m/c s .They are NOT in a cluster.They
              have their own JMS Servers running.There are some queues and one topic on each
              machine.There is a router which routes incoming messages to these servers and
              responses back.Each wl server has the same application running(The application
              that processes the messages) and is totally unware of the existense of the other
              server.
              I want that for some particular message delivered to a topic on one m/c the
              other m/c should also receive that particular message.
              e.g. a message that certain system configuration parameters are updated and all
              servers should synchronize their cached system parameters with the database.
              Is it possible to meet this requirement either by configuration or programatically.The
              application has MDBs listening to the messages.
              I am using WL server 6.1
              Thanx ,
              sunil
              

    You can do this yourself by writing a forwarder that opens up connections to
              both servers receiving on one and forwarding to the other. You can also
              use the messaging bridge. However, if A is forwarding to B and B is
              forwarding to A it is cyclic. You need to discriminate the forwarded
              messages so your forwarder does not forward messages back to the original
              server.
              Of course you could upgrade to 7.0, use a cluster and a distributed topic.
              All the forwarding is taken care of, you don't have to worry about cycles,
              and the forwarded messages maintain their original message ids.
              _sjz.
              "Sunil Naik" <[email protected]> wrote in message
              news:[email protected]...
              >
              > Hi,
              > I have a scenario like this---.
              > I have 2 weblogic servers running on two different m/c s .They are NOT in
              a cluster.They
              > have their own JMS Servers running.There are some queues and one topic on
              each
              > machine.There is a router which routes incoming messages to these servers
              and
              > responses back.Each wl server has the same application running(The
              application
              > that processes the messages) and is totally unware of the existense of the
              other
              > server.
              > I want that for some particular message delivered to a topic on one m/c
              the
              > other m/c should also receive that particular message.
              > e.g. a message that certain system configuration parameters are updated
              and all
              > servers should synchronize their cached system parameters with the
              database.
              > Is it possible to meet this requirement either by configuration or
              programatically.The
              > application has MDBs listening to the messages.
              >
              > I am using WL server 6.1
              >
              > Thanx ,
              > sunil
              

  • DB adapter with different  db instance

    Hi,
    I need to configure different db instance into the same data base adapter.
    I've one instance for publisher schema and another one for subscriber schema .
    In the adapter.ini there are parameters only for OAI (publisher schema)
    db_bridge_schema1_host=vvvvv
    db_bridge_schema1_port=1521
    db_bridge_schema1_instance=ora92
    It's possible set a db_bridge_schema_instance for the spoke writer (subscriber schema)?
    Thanks.
    Regards.

    Hi,
    I don't think you could configured single DB adaptert for wo schemas .
    But you can always copy the main adapter and rename it(have two seperate adapters), one adapter for subscriber event and another for the Publisher event.
    Regards,
    Larry

  • Accessing a variable from different application instance in fmis

    Hello everyone i like to know how to declare a global variable in FMS, so that i can access it from different application instance of a same application.
    Thank.

    Hi,
    In such a use case you can use persistent shared object to keep track of all connected users and the instances they are connected to. then when a user connects in application.xml you can check whether that user name and password is valid for a instance. This doc should help you get this achieved http://help.adobe.com/en_US/FlashMediaServer/3.5_Deving/WS5b3ccc516d4fbf351e63e3d11a0773d3 7a-7fff.html
    Thanks,
    Abhishek

  • Is it possible to deploy 2 SCOM 2012 R2 reporting in a SQL server which already has SCOM reporting of a different management group but with 2 different reporting instance.

    Hi Experts,
    I have a typical situation in the LAB environment. Hope some one helps. I have Installed a SCOM 2012 R2 with SQL 2012 SP1 in a single server (Management group 1). I have installed another management group on another server using this SQL server for its database
    so i have everything going fine.
    The first management group has its reporting installed in the SQL server. For the second i created a new named instance for that. But i cannot run the SCOM setup in the SQL server (Also holding the Management group 1 MS) as 1 st reporting is already there.
    When i run the setup it is asking me to repair it. I don't get the install option so i can install the reporting for management group 2 in the named instance.
    Default instance is being used by the 1st management group.
    Can any one figure a possibility for installing 2 SCOM reporting services for different management groups in a same SQL 2012 server please.
    Gautam.75801

    Hi Yan Li,
    Thank you for the reply. So as you are aware If i need to instal reporting, i need to run the SCOM 2012 R2 setup in the SQL server and select reporting and select the
    instance and then mention the management server there right. I am not getting that option there it is asking me to remove or repair the existing installation as there is already a SCOM entire setup including reporting there. As it is a lab there is no problem
    in testing. I have 2 reporting instances. Any suggestions for me on how to overcome this issue and deploy the second reporting in the new named instance ?
    Below is the screenshot of the error what i am talking about when i run SCOM 2012 R2 setup to install reporting in the SQL server
    When i click on add feature reporting is greyed out (As already 1st management groups reporting is installed)
    When i click on remove or repair it
    uninstalls the existing one. But i want both SCOM 2012 r2 reporting to be there(For both Management group). Is it possible ? If yes What is the trick to run the setup ?
    Gautam.75801

  • Deploy multiple instances of the same stateless session EJB

    I have a stateless session bean.
    The methods on the bean operate against DB tables.
    Q: Can I deploy multiple instances of the same stateless session bean, but specify a different JNDI/datasource name in the deployment descriptor?
    The method calls are all enclosed within a single invocation, just that I need to hit different databases (all with the same schema), and Id like to be able to lookup the EJB via a different JNDI name, and have the exact same functionality, just against different deployed datasources.
    Does the spec allow/support this?
    If not, any suggestions as to how to achieve this sort of functionality?
    Im using JBoss 3.2.1 on Solaris, so Im not sure whether or not this is a JBoss "issue" or a limitation of the EJB Spec (or me being just plain wrong and trying to do something the "wrong way")
    Nick

    I have a stateless session bean.
    The methods on the bean operate against DB tables.
    Q: Can I deploy multiple instances of the same
    stateless session bean, but specify a different
    JNDI/datasource name in the deployment descriptor?
    The method calls are all enclosed within a single
    invocation, just that I need to hit different
    databases (all with the same schema), and Id like to
    be able to lookup the EJB via a different JNDI name,
    and have the exact same functionality, just against
    different deployed datasources.
    Does the spec allow/support this?
    If not, any suggestions as to how to achieve this sort
    of functionality?
    Im using JBoss 3.2.1 on Solaris, so Im not sure
    whether or not this is a JBoss "issue" or a limitation
    of the EJB Spec (or me being just plain wrong and
    trying to do something the "wrong way")
    NickI haven't done it but judging from the deployment descriptors yes.
    For example if I have two bounded datasources java:/Database1 and java:/Database2
    Lets say I have a session bean called MySession, then in your ejb-jar.xml you would have (notice that the desc, display, and ejb-name are the only differences)
    <session>
    <description>MySessionAlpha</description>
    <display-name>MySessionAlpha</display-name>
    <ejb-name>MySessionAlpha</ejb-name>
    <home>com.mycorp.MySessionRemoteHome</home>
    <remote>com.mycorp.MySessionRemote</remote>
    <local-home>com.mycorp.MySessionLocalHome</local-home>
    <local>com.mycorp.MySessionLocal</local>
    <ejb-class>com.mycorp.MySessionFacadeBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    <session>
    <description>MySessionBeta</description>
    <display-name>MySessionBeta</display-name>
    <ejb-name>MySessionBeta</ejb-name>
    <home>com.mycorp.MySessionRemoteHome</home>
    <remote>com.mycorp.MySessionRemote</remote>
    <local-home>com.mycorp.MySessionLocalHome</local-home>
    <local>com.mycorp.MySessionLocal</local>
    <ejb-class>com.mycorp.MySessionFacadeBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    <resource-ref>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </session>
    But now in the jboss.xml, we will have the following elements. What you may notice is that are bound to different remote and local jndi names. But the resource bindings are very different. The res-ref-name stays the same, but the jndi-name are different. I think this will work for you.
    <session>
    <ejb-name>MySessionAlpha</ejb-name> <jndi-name>ejb/com/mycorp/MySessionAlphaRemoteHome</jndi-name> <local-jndi-name>ejb/com/mycorp/MySessionAlphaLocalHome</local-jndi-name>
    <resource-ref>
    <res-ref-name>jdbc/datasource</res-ref-name>
    <jndi-name>java:/Database1</jndi-name>
    </resource-ref>
    </session>
    <session>
    <ejb-name>MySessionBeta</ejb-name> <jndi-name>ejb/com/mycorp/MySessionBetaRemoteHome</jndi-name> <local-jndi-name>ejb/com/mycorp/MySessionBetaLocalHome</local-jndi-name>
    <resource-ref>
    <res-ref-name>jdbc/datasource</res-ref-name>
    <jndi-name>java:/Database2</jndi-name>
    </resource-ref>
    </session>

  • URGENT : Error Deploying MDB in 9ias 9.0.3

    Hi
    I am using OJMS and am trying to deploy SLSB and MDB with durable subscriptions to a topic. I have configured the queue table and topic properly. While trying auto deploy of OC4J i am getting the following error...
    Auto-deploying MCAppBEAN.jar (No complete previous deployment found)... Error compiling C:\Oracle9iAS\AppSvr\j2ee\home\appli
    ations\MCApplication/MCAppBEAN.jar: Syntax error in source
    Oracle9iAS (9.0.3.0.0) Containers for J2EE initialized
    It says there is error in the source but which source? It does not log any error message into any file ( or is there any file which I dont know about? ).
    When i tried to deploy the application manually ( admin.jar ) it gave me the following exception...
    com.evermind.compiler.CompilationException: Syntax error in source
    at com.evermind.compiler.FileLinkedCompilation.loadObjects(FileLinkedCompilation.java:196)
    at com.evermind.compiler.FileLinkedCompilation.run(FileLinkedCompilation.java:145)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.evermind.compiler.FileLinkedCompiler.compile(FileLinkedCompiler.java:53)
    at com.evermind.server.ejb.compilation.Compilation.compileClasses(Compilation.java:463)
    at com.evermind.server.ejb.compilation.Compilation.compile(Compilation.java:323)
    at com.evermind.server.administration.ServerApplicationInstallation.finish(ServerApplicationInstallation.java:556)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:119)
    at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
    at java.lang.Thread.run(Unknown Source)
    Could any body help me with this... Is there some place where I can configure to see the error messages? Has anybody faced this error earlier?
    Thanks in Advance...

    I have discovered a strange thing. I created a new OC4J instance which I called it: Intelap
    When I deploy to the recently created instance Intelap, jdeveloper success. But when I set OC4J_home in the optional instance field, I got the previous error.
    Sergio

  • Multiple BC4J apps deployed in single 9iAS OC4J instance

    Deploying my BC4J/UIX applications in a single Oracle 9iAS 9.0.2 OC4J instance, causes some of my applications not to find their BC4J configurations. After restarting the OC4J instance some applications start to find the configurations, while some lose the ability arbitrarily. When I deploy each of them in a different OC4J instance, then everything works fine.
    The problem appears also at my client's site. My client has all the latest patches applied to the 9iAS server and they can't afford upgrading to 10g or running every application in separate OC4J instance.
    The BC4J/UIX applications are developed with JDev 9.0.3.4. and the BC4J and UIX libraries of the application server are updated to the versions of JDev 9.0.3.4. My development Oracle9iAS runs on Windows 2000 and my client has it on Sun Solaris.
    The error trace I get from applications that can't find the configuration looks like this:
    oracle.jbo.JboException: JBO-26034: Cannot find Configuration with name :LoginAM
         at oracle.jbo.uicli.mom.JUMetaObjectManager.getSessionDef(JUMetaObjectManager.java:401)
         at oracle.jbo.uicli.mom.JUMetaObjectManager.createPool(JUMetaObjectManager.java:509)
         at oracle.jbo.http.HttpContainer.findSessionCookie(HttpContainer.java:636)
         at oracle.cabo.data.jbo.servlet.RootAppModuleRegistryImpl.getSessionCookie(Unknown Source)
         at oracle.cabo.data.jbo.servlet.RootAppModuleRegistryImpl.useRootAppModule(Unknown Source)
         at oracle.cabo.data.jbo.servlet.RootAppModuleRegistryImpl.useRootAppModule(Unknown Source)
         at oracle.cabo.data.jbo.servlet.RootAppModuleRegistryImpl.useAll(Unknown Source)
         at oracle.cabo.data.jbo.xml.parse.JboParserExtensionImpl$JboPageDescription.renderStarted(Unknown Source)
         at oracle.cabo.servlet.ui.UINodePageRenderer.renderPage(Unknown Source)
         at oracle.cabo.servlet.AbstractPageBroker.renderPage(Unknown Source)
         at oracle.cabo.servlet.PageBrokerHandler.handleRequest(Unknown Source)
         at oracle.cabo.servlet.UIXServlet.doGet(Unknown Source)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:244)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:59)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:523)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:735)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.AJPRequestHandler.run(AJPRequestHandler.java:151)
         at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].util.ThreadPoolThread.run(ThreadPoolThread.java:64)
    Best Regards!
    Mihkel Nõges

    Is deploying multiple BC4J applications in single OC4J instance supported?

  • Looking up EJBs at different OC4J instances

    Hi there,
    I´m facing a little weird problem for looking up EJBs deployed at remote OC4J instancias. That is, my application runs at an OC4J instance at host A while some external components, needed by my application, run at an OC4J instance at host B.
    Host A runs OC4J version 10.1.3.2 while host B runs OC4J version 10.1.3.3. When I try to lookup some EJB I get the following exception:
    Caused by: java.io.InvalidClassException: oracle.oc4j.sql.spi.ManagedConnectionFactoryImpl; local class incompatible: stream classdesc serialVersionUID = -7010736017799296921, local class serialVersionUID = 5036353448034635021
    It seems that the serialVersionUID field was not overriden in the class ManagedConnectionFactoryImpl, so each OC4J version has a ManagedConnectionFactoryImpl class with a distinct serial version.
    Well, how do I turn around this? Is this a limitation of OC4J that I should cope with (not being able to exchange data through components deployed at different OC4J versions)?
    Regards,
    Loreno

    There are some days since this thread was created. Does the miss of an answer means that it is no possible to exchange data through EJBs deployed at different OC4J instancies, with different versions?

  • How deploy MDB example to SAP J2EE 6.20

    Hi,
    I need to <b>deploy a message driven bean to SAPJ2ee6.20</b>, , and for that first i tried to deploy MDB example(.ear file) from SAPj2ee Installation.
    But at deployment phase, it generate exception.
    How can i do this with succes?
    Thanks a lot,

    Hi Bogdan,
    please, do <i>not</i> post the same question three times into different categories - beneath, all three categories have been wrong, this is a deployment question not concerning EP or Java directly nor 6.40 preview, so you should have posted it to "WAS general".
    <i>No</i>, please do <i>not</i> post it a fourth time... People will read it, and if there shouldn't be an answer...
    It is frustrating for people who want to help to read "it generates an exception" - yeah, <i>which one</i>?!
    Thanks for considering these hints in the future
    Detlev

  • I subscribed to iTunes Match and would like to sync my music on multiples devices that have different Apple IDs within the same iCloud family.

    I subscribed to iTunes Match and would like to sync my music on multiples devices that have different Apple IDs within the same iCloud family.
    Can someone indicate the way to proceed?
    Thanks.

    Hi,
    You can't use family sharing or multiple Apple IDs with iTunes match.
    ITunes match is only attached to Apple id that you used to subscribe.
    Jim

  • Can you run multiple APEX listeners for different instances on the same server

    Please confirm that we can run multiple APEX listeners for different instances on the same server?  Is it an xml setup configuration or do we need to do more??
    Thank You,
    Tony Miller
    SmartDog Services
    Austin, TX

    Yes.. Just exactly what I was looking for...
    Thanks Jari!!
    Thank You,
    Tony Miller
    SmartDog Services
    Austin, TX

  • Deploying MDB in a cluster...

    Have any one been successful at deploying a Message Driven Bean in a
              cluster. The problem I am running in to is that on the second machine the
              MDB tries to deploy but does not find the name of the queue in the JNDI
              space. This is due to the fact that the JNDI replication has not occured
              when the second server is starting up. Later, when the JNDI replication has
              occured, the queue name DOES appear in the JNDI tree, but it's too late for
              the MDB which failed to deploy.
              Has any one gotten around this problem? Surely, there must be someone out
              there who is also trying to deploy MDB in a cluster.
              Thanks.
              -AP_
              

    Have any one been successful at deploying a Message Driven Bean in a
              cluster. The problem I am running in to is that on the second machine the
              MDB tries to deploy but does not find the name of the queue in the JNDI
              space. This is due to the fact that the JNDI replication has not occured
              when the second server is starting up. Later, when the JNDI replication has
              occured, the queue name DOES appear in the JNDI tree, but it's too late for
              the MDB which failed to deploy.
              Has any one gotten around this problem? Surely, there must be someone out
              there who is also trying to deploy MDB in a cluster.
              Thanks.
              -AP_
              

  • Viewing the deployed application in different browser

    How to view the deployed content in different browsers rather than the default one ?
    And how to run the Weblogic Server without running the jDeveloper. and how to view the deployed content from WLS in the browser?

    Hi,
    How to view the deployed content in different browsers rather than the default one ?
    You can change the browser to use in the preferences (Tools -- Preferences - Browser and Proxy settings)
    And how to run the Weblogic Server without running the jDeveloper.
    2 Options:
    ==========
    a) download a stand alone Weblogic Server from OTN
    b) Find the JDeveloper System directory in the user directory of your laptop. Search for startWebLogic.cmd and start it from the console
    and how to view the deployed content from WLS in the browser?
    Request it from a URL
    host:port/java_ee_path/faces/view
    Frank

  • Connecting to two different database instances from a swing application.

    Hi All,
    I am developing a swing application which needs to interact with two different database instances of two different weblogic servers.
    More eloborately,
    I have some data in DB_Instance1 running on[b] Weblogic_Server1 and I need to insert the same data into DB_instance2 running on Weblogic_server2. Is it possible. Could some explain me how to do that..
    Thanks in advance...
    Sreekanth.

    Hi Rick,
    Try logging onto both Server first. You'll have to use either 2 separate ODBC DSN's or 2 separate OLE DB connections. Set them both for Trusted Authentication, you'll have to configure that on the Server also.Then try your query.
    If that doesn't work then you'll have to create a Stored Procedure or View that can link the 2 Server side.
    Thank you
    Don

Maybe you are looking for