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.

Similar Messages

  • 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]

  • 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.

  • BOE XI 3.0 multiple non-clustered CMS

    Is it possible to have more than one CMS on a server that are not clustered?

    Well an easier way to accomplish this may be to install a free program like vmserver and set up 2 different OS's although this is not recommended if you are going to hit the server hard (like production). In that case you really should have 2 different servers.
    But for a test system to play around with it would make more sense and be easier to manage.
    If you create a new SIA/CMS then you will also need all the reporting servers/etc and have to avoid port conflicts on the server. You should be able to do this too although I don't think our product is documented/tested this way.
    Another optioon in 3.0 is the new delegated administrator function where you can build a specific access level in the CMC to provide small groups the ability to administer their own objects (folders, universes, reports, users, etc) I think I'd try this way 1st
    Regards,
    Tim

  • 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.

  • 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
              >
              >
              

  • Clustered Servers

    I just installed a cluster setup and I'm now trying to test out a web app
    that works fine
    on a single appserver.
    When attempting to access my a servlet within my webapp I get the following
    error:
    ***weblogic.management.NoAccessRuntimeException: user myclient does not have
    ***access permission on weblogic.admin.mbean.BeaServer1
    My webapp is deployed to a 2 server cluster. When I run it on a
    non-clustered server, it works fine.
    What am I missing??

    Hi,
    how did you create the cluster nodes ?
    Are the SerializedSystemIni.dat file and the initial fileRealm.properties file
    identical ?
    Regards,
    Christian Buchegger
    Developer Relations Engineer
    BEA Support
    Kenneth Chin schrieb:
    I have the user 'myclient' defined on all 3 servers.
    I just created a new ACL, but when trying to add a Permission, I get the
    error
    User "system" does not have Permission "modify" based on ACL
    "weblogic.admin.acl".
    "Christian Buchegger" <[email protected]> wrote in message
    news:[email protected]..
    Hi,
    what I am wondering first when reading the error message is: is the user
    myclient defined on any
    machine in the cluster ? Does this user have the correct permissions onany
    system ?
    If the user is defined, you might try to give him the correct permissionstru an
    acl like:
    acl=weblogic.admin.mbean.(servername) permission=access group=everyone
    Regards,
    Christian Buchegger
    Developer Relations Engineer
    BEA Support
    Kenneth Chin schrieb:
    I just installed a cluster setup and I'm now trying to test out a web
    app
    that works fine
    on a single appserver.
    When attempting to access my a servlet within my webapp I get thefollowing
    error:
    ***weblogic.management.NoAccessRuntimeException: user myclient does nothave
    ***access permission on weblogic.admin.mbean.BeaServer1
    My webapp is deployed to a 2 server cluster. When I run it on a
    non-clustered server, it works fine.
    What am I missing??

  • 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]...
              >
              

  • 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

  • Running PSConfig on multiple servers at the same time

    Hi - we are updating an 8 server farm with a CU and in order to reduce downtime I am wondering whether it is supported/risky to run PSConfig on multiple SharePoint servers at the same time
    I plan to run the first one by itself - then after that set 7 off at the same time
    In the past I have always run them serially just to be cautious but there is pressure to reduce downtime so I want to know if there is any risk in running them simultaneously
    Thanks!
    J

    In general its not a good idea.  Running PSConfig will try to establish a lock on the configuration database.  Doing that from two servers at the same time may cause the update to fail.
    Paul Stork SharePoint Server MVP
    Principal Architect: Blue Chip Consulting Group
    Blog: http://dontpapanic.com/blog
    Twitter: Follow @pstork
    Please remember to mark your question as "answered" if this solves your problem.

  • Can I use Admin Console to Start Clustered Servers ?

              I have just started to look at clustering and am in the process of running through
              the cluster example tutorial. I have used the domain config wizard to create
              a manged server with a cluster and another server to act as the http proxy. As
              I prefer to use the admin console for all tasks I wondered if there is any way
              to start the managed servers from the console. The reason I ask is that I cannot
              find a way to start another server from the console apart from the admin server.
              On a seperate note can anyone tell me whether the multicast IP address is something
              that I should be concerned with as a developer. The reason I ask is that I know
              it is used for clustered servers to communicate, but how can it do that if the
              IP address is a physical box that does not have BEA installed.
              Thanks
              Justin
              

    Yes, you can start all managed servers from the console ... Look under the
              cluser that you create and click on the control tab ... you should be able
              to start all the managed servers that will be apart of the cluster there.
              Weblogic uses a service on the local machine called node manager which will
              start and stop the services on each managed server.
              Its good for developers to know something about multicasting as far as what
              it does, how it works but most system administrators all well versed with
              the inner workings of it. You have to have weblogic installed in order for
              that particular box to become apart of the cluster, and you can run multiple
              managed servers on one physical box but be careful with resource intensive
              apps.
              "Justin Flanagan" <[email protected]> wrote in message
              news:[email protected]...
              >
              > I have just started to look at clustering and am in the process of running
              through
              > the cluster example tutorial. I have used the domain config wizard to
              create
              > a manged server with a cluster and another server to act as the http
              proxy. As
              > I prefer to use the admin console for all tasks I wondered if there is any
              way
              > to start the managed servers from the console. The reason I ask is that I
              cannot
              > find a way to start another server from the console apart from the admin
              server.
              >
              > On a seperate note can anyone tell me whether the multicast IP address is
              something
              > that I should be concerned with as a developer. The reason I ask is that
              I know
              > it is used for clustered servers to communicate, but how can it do that if
              the
              > IP address is a physical box that does not have BEA installed.
              >
              > Thanks
              >
              > Justin
              Outgoing mail is certified Virus Free.
              Checked by AVG anti-virus system (http://www.grisoft.com).
              Version: 6.0.638 / Virus Database: 409 - Release Date: 3/21/2004
              

  • Transactional Replication: Non-Clustered Indexes not copying.

    Hello,
    I set up replication on our servers at work to streamline some procedures we run daily/weekly on them.
    This copies around 15 articles from two databases on the "Master" server to another server used for execution purposes. For the most part it was a pretty straight forward task and it seemed to work nicely; but I realised after some investigation that the
    non-clustered indexes weren't copying over to the child server.
    I set the non-clustered indexes property in the properties of the publishing articles to "True" and generated a new snapshot, this seemed to work, but I've come into work this morning to find the property has reset to "False" and I have no indexes on the
    table again. Why is this happening and is there any way I can resolve the matter so the indexes are copied over concurrently?
    Thanks in advance for your advice.
    JB

    I actually solved this.
    You can use a post-replication SQL script to create the indexes. Whatever articles you're publishing open up the indexes drop down list of the article in object explorer, right-click on an index and hover over Script Index as, then Create-to, then click
    New Query Window editor.
    Up will pop up a new query window with the resulting index. Work your way through all the indexes on all the articles of the publication, copy and pasting just the create index line and below of each script, pull them all together into one query window.
    Once you're done find a safe folder somewhere on your harddrive and save the SQL query as an .sql file with a sensible name.
    Right click on the publication and goto properties. Click on the "Snapshot" tab, in there; there should be a section saying "Run additional scripts". Choose the browse button next to "After applying the Snapshot; execute this script:"
    Navigate to your script file and choose it. Once done click ok and it'll prompt you that something has changed and if you'd like to generate a new snapshot, make sure you do or it won't work.
    That's it, you'll find once the publication has bulk copied over the the subscriptions successfully there are non clustered indexes on the tables. Pretty simple!

  • 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
              

  • 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

  • OSM v7.2 - More that 1 instance in a non clustered environment

    I am just wondering...
    1) Can i install OSM separately on 2 servers while using the same database instance in a non-clustered manner?
    This is for circumstances where I need a dedicated server resource for bulk provisioning for example.
    2) If I am not using AIA in my implementation, how does COM calls a SOM cartridge and how does SOM reply COM on the completed status?
    Is it via some default provided webservice, or do i need to find a way to implement it myself.
    Thanks :)

    Hi,
    1. Though technically it is feasible to use two OSM instances with same database, it is not suggested as it may lead to locking issues and not sure how you are planning to acheive bulk provisioning by this way
    2. The calling of SOM cartridge by COM and status updates of SOM to COM has to be implemented by yourself if you are not using AIA. You can make use of default webservices proivded by OSM
    Regards,
    JP

Maybe you are looking for

  • I am receiving an error message every time I try to update my iPod software. Is there something I should be looking for? Thanx, Dennis Morris

    am receiving an error message every time I try to update my iPod software. Is there something I should be looking for? Thanx, Dennis Morris

  • HR ABAP Posiition Holder Org Unit value going dump

    Hi Experts, I am working now HR ABAP. My issue is,  I am using standard Program RHXPEP01. This Program is nothing but. Profile Match up Position/Holder. Once i execute this program and enter the  value of Org. Unit Value is 60010128. Then after 15min

  • SMOD logic help!

    Hi We are using the following logic to enhance 2lis_02_itm with different fields from diff tables. We could able to see the enahnced field data in RSA3 , but after making any change in ME22n its not pulling those changes. can anybody advice where is

  • BEx Analyzer error

    When trying to open the BEx analyzer, I get the following error: SAP_CMINIT3 : rc=20 > Connect to SAP gateway failed. I can access the Bex analyzer using the RRMX transaction. Waiting for your answer Thank you Ramona Leabu

  • Apex 4.2 with WP7 ( Windows Phone 7 ) Bug ?

    Hi, since my upgrade to APEX 4.2 ( comming from 4.1.1.) I am unable to login any application with my windows phone 7/internet explorer. I'm also unable to login any development workspace from the same phone. On a desktop I don't have these problems.