1 Reply Latest reply on Aug 27, 2020 5:35 PM by Todd Little-Oracle

    Is Tuxedo 12.1.3 node dependent and how tuxedo application works if oracle database node fails

    3996274

      Our legacy c++ application is deployed in Tuxedo 12.1.3(32 bit). Our database is Oracle19C. Operating system is Oracle Linux 7.7. We use distributed XA application to connect from Tuxedo layer to database layer.

      Tuxedo is configured in high availability mode(with option MODEL   MP). There are two instances of Tuxedo deployed to two linux virtual machines with machine 1 as Master and Machine 2 as slave.

      Database service is deployed to a single oracle instance. Database service is accessible via two database nodes(multi-clustered). Picture is given below.

       

      We are facing a problem while we configure database service in tuxedo layer. We are not able to add database service name in the tuxedo configuration file. Instead Tuxedo expects data-base node information to be hard-coded in the tuxedo configuration file. Example is given below. So when a specific database node fails, tuxedo instance(server groups), which is connected to that node becomes non-responsive. In other words, tuxedo is Database node dependent. This is not helping to achieve real RAC failover properties.  But Tuxedo 12.1.3 documentation says that Tuxedo is supporting Oracle RAC properties. Could you please review the same and let us know if this is a known issue.

       

      Our Current Tuxedo Configuration is mentioned below. Here, tuxedo expects sqlnet = node. So node failover is not handled in 12.1.3.

      NB: - We have not taken Tuxedo  advanced performance pack

       

       

      *GROUPS

       

      DEFAULT:

              LMID=<LM ID of the machine 1>

       

      "<GROUP 1>"       LMID="<LM ID of the machine 1>" GRPNO=1

      OPENINFO="Oracle_XA:Oracle_XA+ACC=P/<DB Username>/<DB Password>+Sqlnet=<NODE1>+SesTm=0+LogDir=./Logs+DbgFl=15+OBJECTS=TRUE"

      TMSNAME="TMS_ORA"

              TMSCOUNT=5

       

      "<GROUP 2>"    LMID="<LM ID of the machine 1>"    GRPNO=5

      OPENINFO="Oracle_XA:Oracle_XA+ACC=P/<DB Username>/<DB Password>+Sqlnet=<NODE1>+SesTm=0+LogDir=./Logs+DbgFl=15+OBJECTS=TRUE"

      TMSNAME="TMS_ORA"

              TMSCOUNT=5

       

              LMID=<LM ID of the machine 2>

       

      "<GROUP 1>"       LMID="<LM ID of the machine 2>" GRPNO=1

      OPENINFO="Oracle_XA:Oracle_XA+ACC=P/<DB Username>/<DB Password>+Sqlnet=<NODE2>+SesTm=0+LogDir=./Logs+DbgFl=15+OBJECTS=TRUE"

      TMSNAME="TMS_ORA"

              TMSCOUNT=5

       

      "<GROUP 2>"    LMID="<LM ID of the machine 2>"    GRPNO=5

      OPENINFO="Oracle_XA:Oracle_XA+ACC=P/<DB Username>/<DB Password>+Sqlnet=<NODE2>+SesTm=0+LogDir=./Logs+DbgFl=15+OBJECTS=TRUE"

      TMSNAME="TMS_ORA"

              TMSCOUNT=5

       

      1. tnsnames.ora

       

      We want to use sqlnet= DB_SERVICE_1 in tuxedo configuration. Tuxedo is not supporting it. Instead we are forced to set up sqlnet= NODE1. So if NODE1 fails, server groups attached to NODE1 also fails. This truly doesn’t support Oracle RAC

       

      NODE1 =

      (DESCRIPTION =

         (ADDRESS_LIST =

             (ADDRESS = (PROTOCOL = TCP)(HOST = Virtual IP 1)(PORT = 1521))

             )

             (CONNECT_DATA =

         (SERVICE_NAME = DB_SERVICE_1)

             )

      )

       

      NODE2 =

      (DESCRIPTION =

         (ADDRESS_LIST =

             (ADDRESS = (PROTOCOL = TCP)(HOST = Virtual IP 2)(PORT = 1521))

             )

             (CONNECT_DATA =

         (SERVICE_NAME = DB_SERVICE_1))

             )

      )