5 Replies Latest reply: Jun 28, 2012 1:57 PM by Todd Little-Oracle RSS

    Switch or move users from one node to another.

    927871
      Hi All,

      We have two node server using Tuxedo 9.1 with MP model.

      My question how I can move users from one node to another on running system without impacting their work.

      Here is some relevent ubbconfig details.

      /////

      # MULTI DOMAIN template
      *RESOURCES
      IPCKEY 0xabe7
      DOMAINID MARS
      MASTER MARS_A,MARS_B
      MAXACCESSERS 6000
      MAXSERVERS 500
      MAXSERVICES 6000
      MODEL MP
      OPTIONS LAN,MIGRATE
      SCANUNIT 10
      SANITYSCAN 12
      LDBAL Y
      DBBLWAIT 2
      BBLQUERY 30
      BLOCKTIME 12
      NOTIFY DIPIN
      SECURITY USER_AUTH
      SEC_PRINCIPAL_NAME "HTTP/bcrbdkglscss003.gls.dk.eur.crb.apmoller.net@CRB.APMOLLER.NET"

      *MACHINES

      scrbmrsdkgls025 LMID=MARS_A
      MAXWSCLIENTS=1500
      CMPLIMIT="50000,MAXLONG"
      APPDIR="/opt/apps/mars/mars/bin"
      TUXCONFIG="/opt/apps/mars/mars/config/TUXCONFIG"
      ENVFILE="/opt/apps/mars/USI/usienv"
      TUXDIR="/opt/tuxedo/tuxedo9.1.usi"
      ULOGPFX="/opt/apps/mars/mars/logs/ULOG"

      scrbmrsdkbry025 LMID=MARS_B
      MAXWSCLIENTS=1500
      CMPLIMIT="50000,MAXLONG"
      APPDIR="/opt/apps/mars/mars/bin"
      TUXCONFIG="/opt/apps/mars/mars/config/TUXCONFIG"
      ENVFILE="/opt/apps/mars/USI/usienv"
      TUXDIR="/opt/tuxedo/tuxedo9.1.usi"
      ULOGPFX="/opt/apps/mars/mars/logs/ULOG"

      *NETWORK

      MARS_A
      NADDR="//scrbmrsdkgls025:16003"
      NLSADDR="//scrbmrsdkgls025:16002"

      MARS_B
      NADDR="//scrbmrsdkbry025:16003"
      NLSADDR="//scrbmrsdkbry025:16002"

      *SERVERS
      DEFAULT: RESTART=Y REPLYQ=Y GRACE=0 MAXGEN=100

      ################# NODE A TUXEDO SERVERS ################
      WSL
      SRVGRP=ADM1
      SRVID=100
      MAXGEN=10
      REPLYQ=N
      CLOPT="-A -- -n //scrbmrsdkgls025:16000 -p 10000 -T 30 -x 25 -m 5 -M 60 -c 2048"


      ################# NODE B TUXEDO SERVERS ################
      WSL
      SRVGRP=ADM2
      SRVID=200
      MAXGEN=10
      CLOPT="-A -- -n //scrbmrsdkbry025:16000 -p 10000 -T 30 -x 25 -m 5 -M 60 -c 2048"

      /////

      Regards,
      Pras
        • 1. Re: Switch or move users from one node to another.
          Todd Little-Oracle
          Hi Pras,

          Well it looks as though your clients are using the Tuxedo workstation protocol to connect to your servers. If so, then much of how you move clients to another node is dependent on how your client handles communication failures. Ideally if the client is written correctly, it will detect a failure of the link between the client and the WSL/WSH and then attempt to reconnect by issuing a tpterm() followed by a tpinit(). Assuming your clients have WSNADDR set correctly to include multiple WSL addresses, then executing tpinit() in your workstation client will cause Tuxedo to try connecting to WSLs until it is able to make a connection.

          Assuming the above is true, then to move clients to another machine, you simply shutdown the WSL servers on the machine you want to take the clients off of.

          Regards,
          Todd Little
          Oracle Tuxedo Chief Architect
          • 2. Re: Switch or move users from one node to another.
            927871
            Hi Todd,
            Thanks for the reply.

            But if I shutdown the WSL it will impact their current work. They will disconnect and when they will try to connect they will get another node where WSL is live.

            My target is they should not be impacted even they should not get any alert or disconnection.

            regards,
            Pras
            • 3. Re: Switch or move users from one node to another.
              Todd Little-Oracle
              Hi Pras,

              Unfortunately I don't believe there is any way to accomplish what you are trying to do, at least without a fair amount of work on the client side. The WSL/WSH maintains state information that isn't replicated, thus trying to transparently switch the connection to another WSL/WSH is virtually impossible. The closest you can come to is to build a layer in your application that detects a connection failure, re-establishes the connection, and then retries the request. The difficulty with this is that it requires your application to have idempotent services as there isn't really a good way to know whether a service completed successfully or not in the presence of a connection failure. I wish I had a better answer for you.

              Regards,
              Todd Little
              Oracle Tuxedo Chief Architect
              • 4. Re: Switch or move users from one node to another.
                946417
                Hi Todd,

                I'm trying to migrate a C++ native client to a WS client sort of the one you described in your first reply. Previusly, the client was always connected to TUXEDO environment, but now I have to check if the link status with WSL/WSH server befone trying to start any transaction or try to call (asinchronously) any service. I mean, sometimes WSL/WSH would crash I cannot try to refresh link status (reconnect) after a TPESYSTEM exception when calling a TUXEDO service. I cannot either disconnect+connect in every call.

                Is there any way to check this link status in an easy way?

                I have been thinking around adding event subscription, but maybe i am trying to use a hammer to crack a nut.

                Many thanks in advance.

                Carlos.
                • 5. Re: Switch or move users from one node to another.
                  Todd Little-Oracle
                  Hi Carlos,

                  Why do you need to check the link status before making a call? If you get an error making the call, you should be able to perform a tpterm() followed by a new tpinit() and continue where you left off. If you were in the middle of a number of steps bracketed by a transaction, you would want to replay the previously executed steps after reconnecting and starting a new transaction. Does that make sense?

                  Also, the WSL/WSH should never crash. If you have instances of either of them crashing, you should raise a support case as it shouldn't be possible to cause either of those processes to crash.

                  Regards,
                  Todd Little
                  Oracle Tuxedo Chief Architect

                  Edited by: Todd Little on Jun 28, 2012 1:56 PM