3 Replies Latest reply: Jan 8, 2013 1:21 PM by wannabe21 RSS

    TNS-12533: TNS:illegal ADDRESS parameters

    wannabe21
      I'm trying to get my application to connect to the database at work and need some help with my tnsnames definition. I have one tns entry that can successfully connect to our two node RAC, and I have one tns entry that can successfully connect to either or our two standalone databases. The standalone databases are backup databases to use should the RAC fail to connect for any reason. But I want a single tns entry that will try to connect to both RAC nodes before giving up and then trying the stand alone, and I get TNS-12533 error.

      If it matters, I'm connecting to a 10.2.0.4 Enterprise edition database on Windows 2003 server R2 32-bit.

      Here are the two entries that work...

      TNSCLUSTER =
      (DESCRIPTION =
      (ADDRESS_LIST =
      (LOAD_BALANCE = on)
      (FAILOVER = on)
      (ADDRESS = (PROTOCOL = TCP)(HOST = DBRAC1-vip)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = DBRAC2-vip)(PORT = 1521))
      )
      (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MYDB)
      (FAILOVER_MODE =
      (TYPE = SELECT)
      (METHOD = BASIC)
      (RETRIES = 2)
      (DELAY = 1)
      )
      )
      )

      TNSSTANDALONE =
      (DESCRIPTION =
      (ADDRESS_LIST =
      (LOAD_BALANCE = on)
      (FAILOVER = on)
      (ADDRESS = (PROTOCOL = TCP)(HOST = DB3)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = DB4)(PORT = 1521))
      )
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MYDB)
      (FAILOVER_MODE =
      (TYPE = SELECT)
      (METHOD = BASIC)
      (RETRIES = 2)
      (DELAY = 1)
      )
      )
      )

      Since the SERVER parameters are different (SHARED vs DEDICATED), I tried combining into tns entry with DESCRIPTION_LIST but it isn't working...

      TNSALL =
      (DESCRIPTION_LIST =
      (DESCRIPTION =
      (ADDRESS_LIST =
      (LOAD_BALANCE = on)
      (FAILOVER = on)
      (ADDRESS = (PROTOCOL = TCP)(HOST = DBRAC1-vip(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = DBRAC2-vip)(PORT = 1521))
      )
      (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MYDB)
      (FAILOVER_MODE =
      (TYPE = SELECT)
      (METHOD = BASIC)
      (RETRIES = 2)
      (DELAY = 1)
      )
      )
      )
      (DESCRIPTION =
      (ADDRESS_LIST =
      (LOAD_BALANCE = on)
      (FAILOVER = on)
      (ADDRESS = (PROTOCOL = TCP)(HOST = DB3)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = DB4)(PORT = 1521))
      )
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MYDB)
      (FAILOVER_MODE =
      (TYPE = SELECT)
      (METHOD = BASIC)
      (RETRIES = 2)
      (DELAY = 1)
      )
      )
      )
      )
        • 1. Re: TNS-12533: TNS:illegal ADDRESS parameters
          sb92075
          wannabe21 wrote:

          Since the SERVER parameters are different (SHARED vs DEDICATED), I tried combining into tns entry with DESCRIPTION_LIST but it isn't working...

          TNSALL =
          (DESCRIPTION_LIST =
          (DESCRIPTION =
          (ADDRESS_LIST =
          (LOAD_BALANCE = on)
          (FAILOVER = on)
          (ADDRESS = (PROTOCOL = TCP)(HOST = DBRAC1-vip(PORT = 1521))
          line above appears to be missing closing parenthesis after "DBRAC1-vip"; like below
          (ADDRESS = (PROTOCOL = TCP)(HOST = DBRAC1-vip)(PORT = 1521))
          • 2. Re: TNS-12533: TNS:illegal ADDRESS parameters
            GReboute
            Hi,
            As Oracle documentation points for multiple descriptions :
            net_service_name=
            (DESCRIPTION_LIST=
            (DESCRIPTION=
            (ADDRESS=(protocol_address_information))
            (ADDRESS=(protocol_address_information))
            (ADDRESS=(protocol_address_information))
            (CONNECT_DATA=
            (SERVICE_NAME=service_name)))
            (DESCRIPTION=
            (ADDRESS=(protocol_address_information))
            (ADDRESS=(protocol_address_information))
            (ADDRESS=(protocol_address_information))
            (CONNECT_DATA=
            (SERVICE_NAME=service_name))))
            • 3. Re: TNS-12533: TNS:illegal ADDRESS parameters
              wannabe21
              Nailed it. You know what? That was actually my first suspicion and so I counted the level of parentheses. But I missed it when I first typed it, missed it when I looked at it, and missed it again when I counted it. Once I even thought I should paste it into a code editor that would check for balanced parentheses, but told myself "nah". Thank you for having a keener eye than me :)