2 non-clustered weblogic servers, 1 MQ queue. Messaging bridge fairness

Hey all,
          More of a general question. Has anyone ever had 2 non-clustered
          servers, each with a messaging bridge, pulling from one queue? If so, how is
          the fairness of the machines pulling.
          Assuming same machines / same configurations for the weblogic servers,
          should it be
          approximately fair?
          Just want to verify that if the pulling machine sees more messages after
          pulling it's batch,
          it doesn't keep the channel locked or antyhing, before we pursue this
          option.
          Thanks much,
          Greg
          

Hi Greg,
          The consumer fairness is up to the JMS provider, which sees the bridge
          as a regular consumer no different from any other client consumer.
          If the queue being pulled from is a WebLogic 6.0 or greater queue then
          fairness will be observed. (I'm not sure about earlier versions.) Of
          course, this "fairness" is proportional to the rates at which the
          consumers consume.
          There is no such guarantee for other providers. And in fact, we (BEA)
          have noticed that some of the other well-known JMS vendors do
          not exhibit fairness.
          Tom, BEA
          Greg Kaestle wrote:
          > Hey all,
          >
          > More of a general question. Has anyone ever had 2 non-clustered
          > servers, each with a messaging bridge, pulling from one queue? If so, how is
          > the fairness of the machines pulling.
          > Assuming same machines / same configurations for the weblogic servers,
          > should it be
          > approximately fair?
          >
          > Just want to verify that if the pulling machine sees more messages after
          > pulling it's batch,
          > it doesn't keep the channel locked or antyhing, before we pursue this
          > option.
          >
          > Thanks much,
          > Greg
          >
          >
          

Similar Messages

  • How to connect one IIS server to multiple non clustered WebLogic servers

    I have the following installed on Win2K Servers:
    IIS 6
    BEA Weblogic 6.1 running some webservices
    BEA Weblogic 8.1 running an application
    -Both Weblogic servers are running on the same machine (different ports obviously), IIS is on a different machine on the same network.
    I have the website currently configured so that jsp files and several servlets are forwarded to the 8.1 server. So: http://mysite.com/hello.jsp or http://mysite.com/myServlet will properly forward to the 8.1 instance.
    What I want to do (and have been unable to do so thus far) is to setup IIS such that http://mysite.com/myServices will forward to the 6.1 instance.
    I’ve tried to setup the 6.1 iisforward and isapi dll files in a separate folder with their own ini file but I get an Overlapped I/O operation is in progress whenever the 6.1 iisforward.dll file is loaded. (Application Protection is set to High)
    Any suggestions?
    Thanks.

    I have the following installed on Win2K Servers:
    IIS 6
    BEA Weblogic 6.1 running some webservices
    BEA Weblogic 8.1 running an application
    -Both Weblogic servers are running on the same machine (different ports obviously), IIS is on a different machine on the same network.
    I have the website currently configured so that jsp files and several servlets are forwarded to the 8.1 server. So: http://mysite.com/hello.jsp or http://mysite.com/myServlet will properly forward to the 8.1 instance.
    What I want to do (and have been unable to do so thus far) is to setup IIS such that http://mysite.com/myServices will forward to the 6.1 instance.
    I’ve tried to setup the 6.1 iisforward and isapi dll files in a separate folder with their own ini file but I get an Overlapped I/O operation is in progress whenever the 6.1 iisforward.dll file is loaded. (Application Protection is set to High)
    Any suggestions?
    Thanks.

  • Apache HTTP proxying for load balancing only to a group of non-clustered WL servers

              Hi,
              We're running WL Server 6.1 SP 2 on Solaris 2.8.
              For the Apache HTTP proxy plugin, if you use the WebLogicCluster http.conf option,
              do the WL servers you want to load balance across have to be part of a WebLogic
              cluster (if you are prepared to do without failover, as I know it would need to be
              a proper WL cluster to replicate session info for failover). Can you load balance
              across a group of non-clustered WL servers, and maintain the user session to the
              one WL server so that it doesn't switch between servers on alternate requests for
              the same user session, or must the servers be configured as a WebLogic cluster?
              Paul
              We find that if you have a collection of WL servers that are not configured as a
              cluster, that it will load balance alternate requests to each server, but it will
              not pin a user to a single machine according to their session so for 2 servers, 2
              differetn sessions get created, one on each machine.
              Is this because it doesn't normally do this, but sends the user alternately to a
              primary then secondary which works in a cluster because the session is replicated.
              I thought the secondary was only used when the primary failed.
              

    We're running WL Server 6.1 SP 2 on Solaris 2.8.          >
              > For the Apache HTTP proxy plugin, if you use the WebLogicCluster http.conf
              option,
              > do the WL servers you want to load balance across have to be part of a
              WebLogic
              > cluster (if you are prepared to do without failover, as I know it would
              need to be
              > a proper WL cluster to replicate session info for failover). Can you load
              balance
              > across a group of non-clustered WL servers, and maintain the user session
              to the
              > one WL server so that it doesn't switch between servers on alternate
              requests for
              > the same user session, or must the servers be configured as a WebLogic
              cluster?
              You don't have to use the clustering option. To get failover, you'll have to
              use the JDBC persistence option of WL.
              > We find that if you have a collection of WL servers that are not
              configured as a
              > cluster, that it will load balance alternate requests to each server, but
              it will
              > not pin a user to a single machine according to their session so for 2
              servers, 2
              > differetn sessions get created, one on each machine.
              >
              > Is this because it doesn't normally do this, but sends the user
              alternately to a
              > primary then secondary which works in a cluster because the session is
              replicated.
              > I thought the secondary was only used when the primary failed.
              The primary/secondary stuff requires clustering. If Apache continues to
              "load balance" after the first request, you need to either use JDBC session
              persistence or use a different load balancer (like mod_jk for Apache or a
              h/w load balancer with support for sticky).
              Peace,
              Cameron Purdy
              Tangosol, Inc.
              http://www.tangosol.com/coherence.jsp
              Tangosol Coherence: Clustered Replicated Cache for Weblogic
              "Paul Hammond" <[email protected]> wrote in message
              news:[email protected]...
              >
              

  • Load balancing, failover and fallback in Non-Clustered WebLogic environment

    hi,
    Has anyone implemented WebLogic 10.3.3 (or 10.3.4) in a Non-Clustered environment, but also got load balancing, failover and fallback work?
    We were successful in getting failover working using t3://server1:7001,server2:7002 provider URL, but not load balancing or fallback.
    The fallback is working when it was connecting to server2 and if we kill server2, then it switches to server1, but not when server2 is still running while server1 comes back.
    All we need to find a way to enforce fallback to primary site, even if secondary which the client connected is still up and running and primary site comes back.
    Any help appreciated.
    Thanks.
    Best regards,
    Bala

    hi,
    Has anyone implemented WebLogic 10.3.3 (or 10.3.4) in a Non-Clustered environment, but also got load balancing, failover and fallback work?
    We were successful in getting failover working using t3://server1:7001,server2:7002 provider URL, but not load balancing or fallback.
    The fallback is working when it was connecting to server2 and if we kill server2, then it switches to server1, but not when server2 is still running while server1 comes back.
    All we need to find a way to enforce fallback to primary site, even if secondary which the client connected is still up and running and primary site comes back.
    Any help appreciated.
    Thanks.
    Best regards,
    Bala

  • Can a single JNDI tree be shared by multiple, non-clustered servers?

    We have a situation involving multiple, but non-clustered, WebLogic servers,
    say Server 1 and Server 2. A client needs to access an EJB which happens to
    be located only on Server 2. We would prefer that the client not need to
    know the exact location of the EJB, but use the naming service hosted by a
    designated server (Server 1) to locate the EJB.
    At a minimum, this would require that both servers bind their respective
    EJB's into a common, shared JNDI naming tree hosted by Server 1.
    Is this possible?
    John Armstrong
    WebLink Wireless, Inc.
    [email protected]

    hi,
    I have not tried this, althoug with the webogic rmi and weblogic jndi
    implementation I would guess this is straightforward.
    Binding remote objects in WL JNDI binds the stubs only, not the object
    itself. The worst case scenario here would be for you to implement proxies
    and bind them in JNDI, although I would guess that binding the home object
    should give you the required functionality.
    Just try it, rebind the home object on a different server than the one the
    bean is deployed on and test. My guess is that it will work.
    (I repeat : I have not tested this my self, this is just a suggestion)
    Regards,
    Anders M.
    John N. Armstrong <[email protected]> skrev i
    meldingsnyheter:3a93faba$[email protected]..
    We have a situation involving multiple, but non-clustered, WebLogicservers,
    say Server 1 and Server 2. A client needs to access an EJB which happensto
    be located only on Server 2. We would prefer that the client not need to
    know the exact location of the EJB, but use the naming service hosted by a
    designated server (Server 1) to locate the EJB.
    At a minimum, this would require that both servers bind their respective
    EJB's into a common, shared JNDI naming tree hosted by Server 1.
    Is this possible?
    John Armstrong
    WebLink Wireless, Inc.
    [email protected]

  • Problem in clustered weblogic 9.1 servers duplicating quartz jobs

    We have a web application expected to run quartz job to insert one row in database, but it inserted 2 rows in database. The quartz job is kicked off by a servlet that is loaded when weblogic server is started.
    I understand the qaurtz job should be clustered with jdbcjobstore, too.
    My question is:
    if clustered weblogic server is considered as one running instance and the quartz job is kicked by a java servlet that is preloaded when weblogic server started, how could a job shceduled at a specific time (example, 3am daily) will be run twice? i.e. two clustered welogic server each run the job once. Does that mean our weblogic server clustering is not configured right?
    The two clustered weblogic servers are on separate Unix machine and synchronized in time.
    Any idea for the problem? Just weblogic cluster side, not quartz side.
    thanks

    The "jsp:directive.include" tag is only valid in an well-formed XML file that specifies all the relevant namespaces. The "jsp:include" tag is used in a JSP file. I'll bet the beginning of your file shows that you don't have a valid and well-formed XML file.
    If you found that "jsp:include" worked, then that confirms you have an ordinary JSP file here. Why are you trying to use the XML form? The result of "jsp:include" in a JSP file will be exactly the same as the analogous tag in an XML file.

  • ASSERTION FAILED of replica-related stub in a non-clustered SLSB

    Wl 6.1 sp2
    Solaris 2.8
    We have 50 SLSBs running on non-clustered WL servers. Yet we are seeing
    the following ASSERTION FAILED error, which from the stacktrace seems to
    hint the ejb stub is doing something cluster-related... I have attached
    ejb-jar.xml of the offending bean; someone please verify we are not
    building cluster-capable stubs, and if we are building the right stub,
    please explain why the exception is happening. Thanks!
    ******** STACKTRACE
    weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Assertion
    violated ]
    at weblogic.utils.Debug.assert(Debug.java:74)
    at weblogic.rmi.cluster.BasicReplicaList.reset(BasicReplicaList.java:175)
    at
    weblogic.rmi.cluster.PrimarySecondaryReplicaHandler.setPiggybackResponse(Pri
    marySecondaryReplicaHandler.java:94)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.setPiggybackResponse(ReplicaAware
    RemoteRef.java:294)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
    :265)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
    :229)
    at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
    at $Proxy14.getStatus(Unknown Source)
    at
    com.go2.dtc.service.AccountStatus.accountIsOnline(AccountStatus.java:57)
    ******* EJB-JAR.XML
    <?xml version="1.0"?>
    <!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>
    <session>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <home>com.go2.ejb.services.accountservice.AccountServiceHome</home>
    <remote>com.go2.ejb.services.accountservice.AccountService</remote>
    <ejb-class>com.go2.ejb.services.accountservice.AccountServiceBean</ejb-class
    >
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>getStatus</method-name>
    <method-params>
    <method-param>java.lang.String</method-param>
    </method-params>
    </method>
    <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>changeSearchListingStatus</method-name>
    <method-params>
    <method-param>int</method-param>
    <method-param>java.lang.String</method-param>
    </method-params>
    </method>
    <trans-attribute>RequiresNew</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    <?xml version="1.0"?>
    <!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>
    <session>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <home>com.go2.ejb.services.accountservice.AccountServiceHome</home>
    <remote>com.go2.ejb.services.accountservice.AccountService</remote>
    <ejb-class>com.go2.ejb.services.accountservice.AccountServiceBean</ejb-class
    >
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>getStatus</method-name>
    <method-params>
    <method-param>java.lang.String</method-param>
    </method-params>
    </method>
    <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>changeSearchListingStatus</method-name>
    <method-params>
    <method-param>int</method-param>
    <method-param>java.lang.String</method-param>
    </method-params>
    </method>
    <trans-attribute>RequiresNew</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>

    Hi Rajesh,
    This error was reported on our QA system error log, and only occurred a
    couple of times in a very specific time frame. I will ask QA again if it
    has happened since the first report.
    However, even if this bug is minor and not production-worthy, what I am more
    concerned about is the fact that the stacktrace seem to indicate the bug is
    cluster-related, when we set our SLSBs to be non-clustered. Can someone
    please confirm, given the ejb-jar.xml and weblogic-ejb-jar.xml I've posted
    below, that I have properly configured and deployed our beans to be
    non-clustered? I don't want to introduce cluster overhead (and cluster
    bugs) when we don't need to!
    Gene
    "Rajesh Mirchandani" <[email protected]> wrote in message
    news:[email protected]...
    The reason I asked you if it is readily reproducable is because I had seenthis
    issue (support case) in WLS 6.1(no sp). The problem there was that itcould not
    be reproduced again and so I did not analyze it further.
    Is this happening under load ?
    Gene Chuang wrote:
    Hi Rob,
    AccountStatus is calling AccountService, which is a SLSB. I have
    attached
    its ejb-jar.xml in my original post, and here's the corresponding
    weblogic-ejb-jar.xml:
    !DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic6.0.0
    EJB//EN' 'http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd'>
    <!-- Generated XML! -->
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <stateless-session-descriptor>
    <pool>
    <max-beans-in-free-pool>100</max-beans-in-free-pool>
    </pool>
    <stateless-clustering>
    <stateless-bean-is-clusterable>False</stateless-bean-is-clusterable>
    >>
    >>
    <stateless-bean-methods-are-idempotent>False</stateless-bean-methods-are-ide
    mpotent>
    </stateless-clustering>
    </stateless-session-descriptor>
    <transaction-descriptor>
    <trans-timeout-seconds>300</trans-timeout-seconds>
    </transaction-descriptor>
    <jndi-name>accountservice.AccountServiceHome</jndi-name>
    </weblogic-enterprise-bean>
    <transaction-isolation>
    <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>*</method-name>
    </method>
    </transaction-isolation>
    </weblogic-ejb-jar>
    "Rob Woollen" <[email protected]> wrote in message
    news:[email protected]...
    It looks like AccountStatus is calling a stateful session bean that
    uses
    in-memory replication. (The PrimarySecondary stub is only used forin-memory
    replicated sfsb.)
    Do you have any sfsb?
    -- Rob
    Gene Chuang wrote:
    Wl 6.1 sp2
    Solaris 2.8
    We have 50 SLSBs running on non-clustered WL servers. Yet we are
    seeing
    the following ASSERTION FAILED error, which from the stacktrace
    seems to
    hint the ejb stub is doing something cluster-related... I haveattached
    ejb-jar.xml of the offending bean; someone please verify we are not
    building cluster-capable stubs, and if we are building the rightstub,
    please explain why the exception is happening. Thanks!
    ******** STACKTRACE
    weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[Assertion
    violated ]
    at weblogic.utils.Debug.assert(Debug.java:74)
    atweblogic.rmi.cluster.BasicReplicaList.reset(BasicReplicaList.java:175)
    at
    weblogic.rmi.cluster.PrimarySecondaryReplicaHandler.setPiggybackResponse(Pri
    marySecondaryReplicaHandler.java:94)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.setPiggybackResponse(ReplicaAware
    RemoteRef.java:294)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
    :265)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java
    :229)
    at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
    at $Proxy14.getStatus(Unknown Source)
    at
    com.go2.dtc.service.AccountStatus.accountIsOnline(AccountStatus.java:57)
    >>>>
    ******* EJB-JAR.XML
    <?xml version="1.0"?>
    <!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>
    <session>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <home>com.go2.ejb.services.accountservice.AccountServiceHome</home>
    ><remote>com.go2.ejb.services.accountservice.AccountService</remote>
    <ejb-class>com.go2.ejb.services.accountservice.AccountServiceBean</ejb-class
    >>>>>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>getStatus</method-name>
    <method-params>
    <method-param>java.lang.String</method-param>
    </method-params>
    </method>
    <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>changeSearchListingStatus</method-name>
    <method-params>
    <method-param>int</method-param>
    <method-param>java.lang.String</method-param>
    </method-params>
    </method>
    <trans-attribute>RequiresNew</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    <?xml version="1.0"?>
    <!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>
    <session>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <home>com.go2.ejb.services.accountservice.AccountServiceHome</home>
    ><remote>com.go2.ejb.services.accountservice.AccountService</remote>
    <ejb-class>com.go2.ejb.services.accountservice.AccountServiceBean</ejb-class
    >>>>>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>getStatus</method-name>
    <method-params>
    <method-param>java.lang.String</method-param>
    </method-params>
    </method>
    <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
    <container-transaction>
    <method>
    <ejb-name>accountservice.AccountServiceHome</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>changeSearchListingStatus</method-name>
    <method-params>
    <method-param>int</method-param>
    <method-param>java.lang.String</method-param>
    </method-params>
    </method>
    <trans-attribute>RequiresNew</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>--
    Rajesh Mirchandani
    Developer Relations Engineer
    BEA Support

  • Weblogic 81 Messaging Bridge Logs

    Hi All,
    Do you know how can I change the weblogic logs only for the Messaging Bridge from Info level to Error level - I dont want to change the weblogic server log level to Error. Messaging Bridge is logging a lot of info at Info level which I dont want. I tried to use - changing Debug to Error but no luck.
    -Dweblogic.Debug.DebugMessagingBridgeStartup=true
    -Dweblogic.Debug.DebugMessagingBridgeRuntime=true
    Thanks much,
    - Anand

    I've heard that 9x and later logging has ways to configure log message suppression for a specific log message number or perhaps even specify a log level for a specific log message handler like bridge logging, but I don't know if there's something similar to 8.1. Here are a couple 9+ links:
    http://www.gexperts.com/blog/archives/2008/06/entry_356.html
    http://download.oracle.com/docs/cd/E12840_01/wls/docs103/logging/filtering.html
    Tom

  • Remote JMS Queue in Non-Clustered Environment

              We have two hosts, both running WLS 8.1, that are not clustered. We would like
              to create a queue on the first and be able to read it from the second. Is this
              possible? How does one go about setting this up?
              

              Paul wrote:
              > We have two hosts, both running WLS 8.1, that are not clustered. We would like
              > to create a queue on the first and be able to read it from the second. Is this
              > possible? How does one go about setting this up?
              Hi Paul,
              This a common use case. Even user transactions
              can include operations from both servers.
              The remote server just looks a regular
              client as far as the JMS server is concerned.
              I recommend using MDBs - which can be be configured with a URL
              and connection factory, messaging bridges, and/or foreign destination
              wrappers. In addition, you can use the JMS resource reference
              pooling feature to pool the "foreign" JMS server's resources.
              For information you can start here:
              http://edocs.bea.com/wls/docs81/jms/intro.html#jms_features
              and here:
              http://dev2dev.bea.com/technologies/jms/index.jsp
              Important: As documented, for various reasons, some not
              having to do with JMS, you will need to ensure the following are
              true to enable "non-clustered" communication:
              - all domains should be named uniquely
              - all wl servers must be named uniquely
              - all jms servers must be named uniquely
              - all jms stores must be named uniquely
              Tom
              

  • Transaction span two WLS managed servers (non-clustering)

    (Weblogic 6.1 - non-clustering version)
    I have two managed servers configured on a single machine on different
    ports, and I am not using clustering weblogic. Assuming I have EJB A
    deployed on managed server 1, and EJB B deployed on managed server 2.
    I want to have EJB A to invoke EJB B. In EJB A, I guess I will
    probably create the InitialContext with the URL of managed server 2,
    then do the JNDI look up and call EJB B.
    My questions are:
    - Can weblogic handle transaction that spans two managed servers
    (non-clustering setting)?
    - Does weblogic use XA to handle transaction between managed servers?
    - Do I need to do any JTA code in order to achieve that (instead of
    just letting the EJB container to handle the transaction for me)?
    Thanks in advance!
    B.L.

    Hi,
    "benson" <[email protected]> wrote in message
    news:[email protected]..
    (Weblogic 6.1 - non-clustering version)
    I have two managed servers configured on a single machine on different
    ports, and I am not using clustering weblogic. Assuming I have EJB A
    deployed on managed server 1, and EJB B deployed on managed server 2.
    I want to have EJB A to invoke EJB B. In EJB A, I guess I will
    probably create the InitialContext with the URL of managed server 2,
    then do the JNDI look up and call EJB B.
    My questions are:
    - Can weblogic handle transaction that spans two managed servers
    (non-clustering setting)?Yes, it can.
    - Does weblogic use XA to handle transaction between managed servers?Yes, it does. Make sure you use TX DataSources. If the servers are connected
    to different databases, TX DataSources should be based on connection pools
    used XA drivers.
    - Do I need to do any JTA code in order to achieve that (instead of
    just letting the EJB container to handle the transaction for me)?No, you don't. WebLogic will take care about handling
    distributed TXs.
    Regards,
    Slava Imeshev

  • Weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Cannot export non clusterable object with jndiName ]

    Hi,
    I am trying to deploy an EJB module have 4-5 EJB's on weblogic 8.1 through JBuilder.
    I am getting following error during deployment.
    Exception:weblogic.management.ApplicationException: prepare failed for Sample.jar
         Module: Sample.jar     Error: Exception preparing module: EJBModule(Sample.jar,status=NEW)
    Unable to deploy EJB: SampleBean from Sample.jar:
    weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Cannot export non
    clusterable object with jndiName ]
         at weblogic.utils.Debug.assertion(Debug.java:57)
         at weblogic.rmi.extensions.server.ServerHelper.exportObject(ServerHelper.java:272)
         at weblogic.ejb20.internal.BaseEJBHome.setup(BaseEJBHome.java:95)
         at weblogic.ejb20.internal.StatelessEJBHome.setup(StatelessEJBHome.java:67)
         at weblogic.ejb20.deployer.ClientDrivenBeanInfoImpl.prepare(ClientDrivenBeanInfoImpl.java:979)
         at weblogic.ejb20.deployer.EJBDeployer.setupBeanInfos(EJBDeployer.java:983)
         at weblogic.ejb20.deployer.EJBDeployer.prepare(EJBDeployer.java:1283)
         at weblogic.ejb20.deployer.EJBModule.prepare(EJBModule.java:477)
         at weblogic.j2ee.J2EEApplicationContainer.prepareModule(J2EEApplicationContainer.java:2962)
         at weblogic.j2ee.J2EEApplicationContainer.prepareModules(J2EEApplicationContainer.java:1534)
         at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1188)
         at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1031)
         at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.prepareContainer(SlaveDeployer.java:2602)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2552)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
         at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
         at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    Any clue?, what its talking about?
    Thanks
    Naresh

    Hi,
    I am trying to deploy an EJB module have 4-5 EJB's on weblogic 8.1 through JBuilder.
    I am getting following error during deployment.
    Exception:weblogic.management.ApplicationException: prepare failed for Sample.jar
         Module: Sample.jar     Error: Exception preparing module: EJBModule(Sample.jar,status=NEW)
    Unable to deploy EJB: SampleBean from Sample.jar:
    weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Cannot export non
    clusterable object with jndiName ]
         at weblogic.utils.Debug.assertion(Debug.java:57)
         at weblogic.rmi.extensions.server.ServerHelper.exportObject(ServerHelper.java:272)
         at weblogic.ejb20.internal.BaseEJBHome.setup(BaseEJBHome.java:95)
         at weblogic.ejb20.internal.StatelessEJBHome.setup(StatelessEJBHome.java:67)
         at weblogic.ejb20.deployer.ClientDrivenBeanInfoImpl.prepare(ClientDrivenBeanInfoImpl.java:979)
         at weblogic.ejb20.deployer.EJBDeployer.setupBeanInfos(EJBDeployer.java:983)
         at weblogic.ejb20.deployer.EJBDeployer.prepare(EJBDeployer.java:1283)
         at weblogic.ejb20.deployer.EJBModule.prepare(EJBModule.java:477)
         at weblogic.j2ee.J2EEApplicationContainer.prepareModule(J2EEApplicationContainer.java:2962)
         at weblogic.j2ee.J2EEApplicationContainer.prepareModules(J2EEApplicationContainer.java:1534)
         at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1188)
         at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1031)
         at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.prepareContainer(SlaveDeployer.java:2602)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2552)
         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
         at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
         at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
         at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    Any clue?, what its talking about?
    Thanks
    Naresh

  • Running BizTalk on multiple non-clustered servers. Potential serious issue

    Hi,
    I have just discovered what has potential to be a fairly large issue in our current BizTalk Architecture. We are running BizTalk Server 2006 R2 on 2 different servers, running Windows Server 2003 R2. These servers are NOT clustered. Instead, BizTalk is installed
    to both, configured on 1 and then on the 2nd, they have joined the existing BizTalk environment. We have 1 host with 2 host-instances for say an Orchestration Host. (So 1 Orchestration Host and then 1 Orchestration Host Instance on each server), we also have
    a host instance for Receive and Send on each server.
    This is a problem that I have identified on an application currently in UAT:
    We have a routine called 'Recovery Mode'. It doesn't matter what Recovery Mode is but what does matter is that only a single instance can go into recovery mode at the same time. 
    Consider this:
    bool inRecovery;
    while (isBroken) {
    if (!inRecovery){
    inRecovery = true;
    // Recover
    inRecovery = false;
    else {
    // Wait, recheck until not in recovery, or fixed.
    Imagine an instance on server 1 needs to go into recovery, it first checks the inRecovery flag, gets returned false so goes into recovery, let's say this takes 5 minutes to complete. During this time, an instance on server 2 needs to go into recovery, checks
    the flag, but the flag on server 2 has not been set to true.... Now I have 2 instances in Recovery...
    My questions are:
    1. Can I cluster 2 non-clustered servers? I'd need to upgrade from Windows Server 2003 R2 Standard to Enterprise is that possible? If so, Can I simply upgrade and cluster the servers or would I need to format the disks?
    2. If no to number 1, where would you store the 'inRecovery' flag'? I can't store in a DB as there will be slight cross over where instance 2 might return false in my example just as instance 1 is writing unless I can lock it on write or something.
    Some advice would be greatly appreciated.
    Thanks
    Rod

    To answer your specific question:
    1. Yes, but you would need to upgrade to at least Enterprise.  Windows Server 2003 R2 Standard does not support clustering.  IIRC, the upgrade from Standard to Enterprise is pretty easy, perhaps just a SKU change.
    2. If you absolutely cannot upgrade Windows Server, then you'd have to store the state externally, such as SQL Server.  There shouldn't be any concurrency issues if you do the check in the right sequence.  Basically, begin a transaction, attempt
    to UPDATE, return weather the UPDATE was successful, meaning that call grabbed the lock.  If you check then update, yes, there is a miniscule chance both will return the same value but only one near-sumultaneous UPDATE will succeed.

  • Error with running Singleton Service in a non-clustered mode

    Hello,
    I'm getting this error when try to deploy an app with defined Singleton Service in a WebLogic 10.3.5:
    <Error> <Deployer> <localdomain> <AdminServer><[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default(self-tuning)'> <<WLS Kernel>> <><7785ef355ffde3d6:-4c7bfbbc:138dd48f82b:-8000-0000000000000002><1343742871514> <BEA-149231> <Unable to set the activation state to true for the application 'MyApp'.
    weblogic.management.DeploymentException:
    at weblogic.application.internal.flow.SingletonServicesFlow.activate(SingletonServicesFlow.java:67)
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:636)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
    at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:205)
    at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:58)
    at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
    at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
    at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
    at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:52)
    at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
    at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:31)
    at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
    at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:170)
    at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:124)
    at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:181)
    at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:97)
    at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused By: java.lang.IllegalArgumentException: Cannot add Singleton Service MySingletonService as SingletonServicesManager not started. Check if MigrationBasis for cluster is configured.
    at weblogic.cluster.singleton.SingletonServicesManager.addConfiguredService(SingletonServicesManager.java:280)
    at weblogic.cluster.singleton.SingletonServicesManager.addConfiguredService(SingletonServicesManager.java:297)
    at weblogic.application.internal.flow.SingletonServicesFlow.activate(SingletonServicesFlow.java:65)
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:637)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:54)
    at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:205)
    at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:58)
    at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
    at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
    at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
    at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:52)
    at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
    at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:31)
    at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
    at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:170)
    at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:124)
    at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:181)
    at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:97)
    at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    It gets run only after deleting singleton-service entry from weblogic-application.xml:
    <singleton-service>
         <class-name>my.app.SingletonClass</class-name>
         <name>MySingletonService</name>
    </singleton-service>
    Is it possible to run it in a non-clustered server without deleting Singleton entry from weblogic-application.xml?
    Thanks

    Did this help you ??
    Not sure if it's related as here the issue is with clustered/non clustred and versioning!! the application which the bug talks about.

  • How a clustered weblogic environment handles orders balanced-wise??

    Hi,
    In a 2 managed clustered weblogic environment with OSM 7.0.3 and an external load balancer to balance the incoming traffic it is noticed from the managed servers that whichever server is scanning for orders and that is understood by the server's logs:
    ####<Oct 16, 2012 2:54:33 PM EEST> <Info> <oms> <> <osm_ms01> <Timer-9> <oms-internal> <> <fab6ae59fd53672b:704b5627:13a64686216:-8000-0000000000000010> <1350388473505> <BEA-000000> <cluster.ClusteredHandlerFactory: Querying for high activity orders across the cluster>
    is the server that will serve a new order.
    Is there a way to achieve a perfect load balance? In a test case of 200 orders all orders where processes by one node and it is the one that scans for new orders.
    We configured the external load balancer to split the traffic..But nothing!! Is there an internal mechanism that gathers all orders that are send to multiple servers and executes them in the server that is currently scanning for orders ???
    Is there in any manual or Oracle Support Document/note on how is decided in a multiple-clustered environment which server will execute orders???
    Thx in advance!

    Hi Alexandros,
    Here's some general information on load balancing:
    1. With OSM order affinity, the managed server instance that receives the order (precisely, creates the OSM order) has sole ownership of the order. Other than specific circumstances, the ownership is not transferred, and thus processing of that order stays with that instance till completion.
    2. The OSM web service (createOrder API) has no load balancing mechanism internally if HTTP is used as the transport. So if you only send orders to one managed server, that instance will create and thus own all these orders. In contrast, if you use JMS as the transport, it is load-balanced by the JMS distributed destination (provided you are not sending instead to member queues of the distribution destination).
    Now, assuming you are using HTTP, you need to ensure that the Load Balancer is really round-robining on the 2 managed servers among HTTP messages of order submissions. Monitor your TCP pipes to verify.
    A problem we've seen, is if you are using SoapUI with pre-emptive authentication disabled, the SOAP request without pre-emptive authentication will be rejected, causing a re-send. Because of LB, all orders ended up in one managed server, as the reject-then-accept SOAP message sequence becomes cyclic with odd-even round-robin. So, enable pre-emptive authentication to avoid that.
    Btw, is your cartridge handling high-activity orders? If not, I have a suspicion that your pasted log message may be a red-herring.
    Cheers,
    Daniel Ho
    OSM Product Management

  • Clustered JMS Servers

              I'm having problems with binding the JNDI tree for the other than the first server
              started in the cluster.
              The error looks like this.
              <2001-aug-22 14:31:41 GMT+02:00> <Error> <Cluster> <Conflict start: You tried
              to bind an object under the name EngineRegTopic in the jndi tree. The object you
              have bound weblogic.jms.common.DestinationImpl from 172.18.61.17 is non clusterable
              and you have tried to bind more than once from two or more servers. Such objects
              can only deployed from one server.>
              How come?
              / Martin
              

    I am afraid JMS is not clusterable in WL6.0. Maybe you could try 6.1.
              "Martin" <[email protected]> ¼¶¼g©ó¶l¥ó
              news:3b83ad87$[email protected]..
              >
              > I'm having problems with binding the JNDI tree for the other than the
              first server
              > started in the cluster.
              > The error looks like this.
              > <2001-aug-22 14:31:41 GMT+02:00> <Error> <Cluster> <Conflict start: You
              tried
              > to bind an object under the name EngineRegTopic in the jndi tree. The
              object you
              > have bound weblogic.jms.common.DestinationImpl from 172.18.61.17 is non
              clusterable
              > and you have tried to bind more than once from two or more servers. Such
              objects
              > can only deployed from one server.>
              > How come?
              > / Martin
              

Maybe you are looking for