*** This class provides Binary Compatibility only, not Source Compatibility ***

Class Server

java.lang.Object
com.sas.services.connection.Server
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
TCPIPServer

@SASScope("ALL") @BinaryCompatibilityOnly public abstract class Server extends Object implements Cloneable, Serializable
A base class for describing IOM servers.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Authenticate against the host on which the server is running.
    static final String
    Authenticate against a SAS Metadata Server.
    static final String
    No authentication required.
    static final String
    Prompt for a credential that will be authenticated against the host on which the server is running.
    static final String
    The class Id of the SAS ABM Server (current major version).
    static final String
    The class ID of the SAS ABM Server (version 1.0).
    static final String
    The class ID of the SAS Object Spawner (current major version).
    static final String
    The class ID of the SAS Object Spawner (version 1.0).
    static final String
    The class ID of the SAS Object Spawner (version 1.1).
    static final String
    The class ID of the Pooled SAS toplevel class (current major version).
    static final String
    The class ID of the Pooled SAS toplevel class (version 1.0).
    static final String
    The class ID of the SAS toplevel class (current major version).
    static final String
    The class ID of the SAS toplevel class (version 1.0).
    static final String
    The class ID of the SAS toplevel class (version 1.1).
    static final String
    The class ID of the SAS toplevel class (version 1.2).
    static final String
    The class ID of the SASGMS toplevel class (current major version).
    static final String
    The class ID of the SASGMS toplevel class (version 1.0).
    static final String
    The class ID of the SASMDX toplevel class (current major version).
    static final String
    The class ID of the SASMDX toplevel class (version 1.0).
    static final String
    The class ID of the SASMQX toplevel class (current major version).
    static final String
    The class ID of the SASMQX toplevel class (version 1.0).
    static final String
    The class ID of the SASOMI toplevel class (current major version).
    static final String
    The class ID of the SASOMI toplevel class (version 1.0).
    static final String
    The class ID of the SASOMI toplevel class (version 1.1).
    static final String
    The class ID of the SASOMI toplevel class (version 2.0).
    static final String
    The class ID of the SASSTP toplevel class (current major version).
    static final String
    The class ID of the SASSTP toplevel class (version 1.0).
    static final String
    The class ID of the SAS Table Server (current major version).
    static final String
    The class ID of the SAS Table Server (version 1.0).
    static final String
    A class ID that does not designate any class.
    static final String
    A string used to identify the SAS Object Spawner in old metadata.
    static final String
    Authentication using Kerberos.
    static final String
    The default value for securityPackageList.
    static final String
    Authenticate using a security package supported by both the client and server.
    static final String
    Authenticate using NTLM.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Server(String classID)
    Construct an object describing an IOM server.
  • Method Summary

    Modifier and Type
    Method
    Description
    Object
     
    boolean
    equals(Object that)
     
    static Server
    Convert a URI into a Server.
    String
    Get the authentication service to use when connecting to this server.
    String
    Get the class ID.
    String
    Get the authentication domain.
    int
    Get the maximum number of clients.
    String
    Get the normalized class ID.
    String
    Get the normalized security package to use when connecting to this server.
    String
    Get the normalized list of security packages to use when connecting to this server.
    String
    getOption(String name)
    Get the value of the named option.
    int
    Get the maximum number of reactivations.
    String
    Get the security package to use when connecting to this server.
    String
    Get the list of security packages to use when connecting to this server.
    String
    Get the ServerComponent URI for this server.
    int
    Get the number of minutes before an idle connection is destroyed.
    String
    Get the service principal name to use when connecting to this server.
    int
     
    static String
    normalizeSecurityPackage(String securityPackage)
    Normalize a security package name.
    static String
    normalizeSecurityPackageList(String securityPackageList)
    Normalize a security package list.
    String
    removeOption(String name)
    Remove a name option and its value.
    void
    setAuthService(String authService)
    Set the authentication service to use when connecting to this server.
    void
    setClassID(String classID)
    Set the class ID.
    void
    setDomain(String domain)
    Set the authentication domain.
    void
    setMaxClients(int maxClients)
    Set the maximum number of clients.
    String
    setOption(String name, String value)
    Set the value of the named option.
    void
    setReactivationLimit(int reactivationLimit)
    Set the maximum number of reactivations.
    void
    setSecurityPackage(String securityPackage)
    Set the security package to use when connecting to this server.
    void
    setSecurityPackageList(String securityPackageList)
    Set the list of security packages to use when connecting to this server.
    void
    setServerComponentURI(String serverComponentURI)
    Set the ServerComponent URI for this server.
    void
    setShutdownAfterMinutes(int shutdownAfterMinutes)
    Set the number of minutes before an idle connection is destroyed.
    void
    setSPN(String spn)
    Set the service principal name to use when connecting to this server.
    String
     

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • CLSID_SAS_1_0

      public static final String CLSID_SAS_1_0
      The class ID of the SAS toplevel class (version 1.0).
      See Also:
    • CLSID_SAS_1_1

      public static final String CLSID_SAS_1_1
      The class ID of the SAS toplevel class (version 1.1).
      See Also:
    • CLSID_SAS_1_2

      public static final String CLSID_SAS_1_2
      The class ID of the SAS toplevel class (version 1.2).
      See Also:
    • CLSID_SAS

      public static final String CLSID_SAS
      The class ID of the SAS toplevel class (current major version).
      See Also:
    • CLSID_POOLED_SAS_1_0

      public static final String CLSID_POOLED_SAS_1_0
      The class ID of the Pooled SAS toplevel class (version 1.0).
      See Also:
    • CLSID_POOLED_SAS

      public static final String CLSID_POOLED_SAS
      The class ID of the Pooled SAS toplevel class (current major version).
      See Also:
    • CLSID_SASGMS_1_0

      public static final String CLSID_SASGMS_1_0
      The class ID of the SASGMS toplevel class (version 1.0).
      See Also:
    • CLSID_SASGMS

      public static final String CLSID_SASGMS
      The class ID of the SASGMS toplevel class (current major version).
      See Also:
    • CLSID_SASMDX_1_0

      public static final String CLSID_SASMDX_1_0
      The class ID of the SASMDX toplevel class (version 1.0).
      See Also:
    • CLSID_SASMDX

      public static final String CLSID_SASMDX
      The class ID of the SASMDX toplevel class (current major version).
      See Also:
    • CLSID_SASMQX_1_0

      public static final String CLSID_SASMQX_1_0
      The class ID of the SASMQX toplevel class (version 1.0).
      See Also:
    • CLSID_SASMQX

      public static final String CLSID_SASMQX
      The class ID of the SASMQX toplevel class (current major version).
      See Also:
    • CLSID_SASOMI_1_0

      public static final String CLSID_SASOMI_1_0
      The class ID of the SASOMI toplevel class (version 1.0).
      See Also:
    • CLSID_SASOMI_1_1

      public static final String CLSID_SASOMI_1_1
      The class ID of the SASOMI toplevel class (version 1.1).
      See Also:
    • CLSID_SASOMI_2_0

      public static final String CLSID_SASOMI_2_0
      The class ID of the SASOMI toplevel class (version 2.0).
      See Also:
    • CLSID_SASOMI

      public static final String CLSID_SASOMI
      The class ID of the SASOMI toplevel class (current major version).
      See Also:
    • CLSID_SASSTP_1_0

      public static final String CLSID_SASSTP_1_0
      The class ID of the SASSTP toplevel class (version 1.0).
      See Also:
    • CLSID_SASSTP

      public static final String CLSID_SASSTP
      The class ID of the SASSTP toplevel class (current major version).
      See Also:
    • CLSID_OBJSPAWN_1_0

      public static final String CLSID_OBJSPAWN_1_0
      The class ID of the SAS Object Spawner (version 1.0).
      See Also:
    • CLSID_OBJSPAWN_1_1

      public static final String CLSID_OBJSPAWN_1_1
      The class ID of the SAS Object Spawner (version 1.1).
      See Also:
    • CLSID_OBJSPAWN

      public static final String CLSID_OBJSPAWN
      The class ID of the SAS Object Spawner (current major version).
      See Also:
    • CLSID_SASTableServer_1_0

      public static final String CLSID_SASTableServer_1_0
      The class ID of the SAS Table Server (version 1.0).
      See Also:
    • CLSID_SASTableServer

      public static final String CLSID_SASTableServer
      The class ID of the SAS Table Server (current major version).
      See Also:
    • CLSID_ABM_1_0

      public static final String CLSID_ABM_1_0
      The class ID of the SAS ABM Server (version 1.0).
      See Also:
    • CLSID_ABM

      public static final String CLSID_ABM
      The class Id of the SAS ABM Server (current major version).
      See Also:
    • CLSID_UNDESIGNATED

      public static final String CLSID_UNDESIGNATED
      A class ID that does not designate any class.
      See Also:
    • OBJSPAWN_ID

      public static final String OBJSPAWN_ID
      A string used to identify the SAS Object Spawner in old metadata. This value cannot be used to connect an adminstrative client to the SAS Object Spawner operator port.
      See Also:
    • AUTH_SERVICE_HOST

      public static final String AUTH_SERVICE_HOST
      Authenticate against the host on which the server is running. Host authentication can include user name/password and security packages such as Kerberos and NTLM.
      See Also:
    • AUTH_SERVICE_METADATA

      public static final String AUTH_SERVICE_METADATA
      Authenticate against a SAS Metadata Server. Typically a specialized connection factory will generate a credential for the connecting user and send it to the target server. The target server will, in turn, forward the generated credential to the SAS Metadata Server for authentication.
      See Also:
    • AUTH_SERVICE_PROMPT

      public static final String AUTH_SERVICE_PROMPT
      Prompt for a credential that will be authenticated against the host on which the server is running. The credential must be a user name and password. Typically, a specialized connection factory is responsible for initiating the prompt through a callback registered by the application.
      See Also:
    • AUTH_SERVICE_NONE

      public static final String AUTH_SERVICE_NONE
      No authentication required. The connection factory will not send a credential to the server for authentication.
      See Also:
    • SECURITY_PACKAGE_KERBEROS

      public static final String SECURITY_PACKAGE_KERBEROS
      Authentication using Kerberos.
      See Also:
    • SECURITY_PACKAGE_NTLM

      public static final String SECURITY_PACKAGE_NTLM
      Authenticate using NTLM.
      See Also:
    • SECURITY_PACKAGE_NEGOTIATE

      public static final String SECURITY_PACKAGE_NEGOTIATE
      Authenticate using a security package supported by both the client and server.
      See Also:
    • SECURITY_PACKAGE_LIST_DEFAULT

      public static final String SECURITY_PACKAGE_LIST_DEFAULT
      The default value for securityPackageList.
      See Also:
  • Constructor Details

    • Server

      public Server(String classID)
      Construct an object describing an IOM server.
      Parameters:
      classID - the class ID
      See Also:
  • Method Details

    • setClassID

      public void setClassID(String classID)
      Set the class ID. The class ID identifies the type of IOM object that the server is configured to instantiate. The fields of this class named CLSID_* provide several possible values for this attribute, but there may be other valid values in newer server versions. If the server is not configured to instantiate IOM objects of this type, then connections attempts to the server will fail.
      Parameters:
      classID - the class ID
      Throws:
      IllegalArgumentException - if this attribute is set to null
      See Also:
    • getClassID

      public String getClassID()
      Get the class ID.
      Returns:
      the class ID
      See Also:
    • getNormalizedClassID

      public String getNormalizedClassID()
      Get the normalized class ID. A normalized class ID is all lowercase.
      Returns:
      the normalized class ID
      See Also:
    • setMaxClients

      public void setMaxClients(int maxClients)
      Set the maximum number of clients. This attribute is ignored by the connection factory unless the server is participating in a connection pool. For connection pools, this attribute determines the maximum number of connections a factory may have to the server at any given time. The default value is 10.
      Parameters:
      maxClients - the maximum number of clients
      Throws:
      IllegalArgumentException - if this attribute is set to a value less than 1
    • getMaxClients

      public int getMaxClients()
      Get the maximum number of clients.
      Returns:
      the maximum number of clients
      See Also:
    • setReactivationLimit

      public void setReactivationLimit(int reactivationLimit)
      Set the maximum number of reactivations. This attribute is ignored by the connection factory unless the server is participating in a connection pool. For connection pools, this attribute determines the number of times a connection to this server will be refreshed and reused by the factory to satisfy connection requests. Once the limit is reached, the factory will destroy the connection and reconnect if necessary.

      In theory, refreshing a connection should cause the server to release all resources associated with the connection and return to its initial state. However, if there are bugs in the server that allow resource use to accumulate over several connection reuses, then the server may eventually run out of that resource. This attribute allows the factory to periodically restart servers and force all resources to be released.

      If the value is 0, then connections will be refreshed and reused indefinitely (subject to limitations set by other attributes). The default value is 0.

      Parameters:
      reactivationLimit - the maximum number of reactivations
      Throws:
      IllegalArgumentException - if this attribute is set to a value less than 0
    • getReactivationLimit

      public int getReactivationLimit()
      Get the maximum number of reactivations.
      Returns:
      the maximum number of reactivations
      See Also:
    • setShutdownAfterMinutes

      public void setShutdownAfterMinutes(int shutdownAfterMinutes)
      Set the number of minutes before an idle connection is destroyed. This attribute is ignored by the connection factory unless the server is participating in a connection pool. For connection pools, this attribute determines how long an unallocated connection will be kept alive by the factory. This attribute takes precedence over the minSize and minAvail attributes in that a puddle with a non-negative value for this attribute is allowed to shutdown all connections after the required period of idleness even if it also has strictly positive values for minSize or minAvail.

      -1 means idle connections will be kept alive until connection factory shutdown. 0 means a connection returned to the factory will be destroyed immediately unless another user is waiting for it. The default value is -1.

      Parameters:
      shutdownAfterMinutes - the number of minute before an idle connection is destroyed
      Throws:
      IllegalArgumentException - if this attribute is set to a value less than -1
    • getShutdownAfterMinutes

      public int getShutdownAfterMinutes()
      Get the number of minutes before an idle connection is destroyed.
      Returns:
      the number of minute before an idle connection is destroyed
      See Also:
    • setDomain

      public void setDomain(String domain)
      Set the authentication domain. The domain is a label that the factory uses to group servers and credentials. When connecting through a factory, the factory user must present a credential object with a domain that matches the domain of at least one server managed by the factory.

      Empty string and null are considered to be equivalent domains. The default value is empty string.

      Parameters:
      domain - the authentication domain
    • getDomain

      public String getDomain()
      Get the authentication domain.
      Returns:
      the authentication domain
      See Also:
    • setServerComponentURI

      public void setServerComponentURI(String serverComponentURI)
      Set the ServerComponent URI for this server. This value will be non-null only if the configuration for this server was loaded from a SAS Metadata Server.
      Parameters:
      serverComponentURI - the ServerComponent URI for this server.
    • getServerComponentURI

      public String getServerComponentURI()
      Get the ServerComponent URI for this server. This value will be non-null only if the configuration for this server was loaded from a SAS Metadata Server.
      Returns:
      the ServerComponent URI for this server.
    • getAuthService

      public String getAuthService()
      Get the authentication service to use when connecting to this server. The default value is AUTH_SERVICE_NONE unless a subclass provides a different default.
      Returns:
      the authentication service to use when connecting to this server
      See Also:
    • setAuthService

      public void setAuthService(String authService)
      Set the authentication service to use when connecting to this server. The default value is AUTH_SERVICE_NONE unless a subclass provides a different default.
      Parameters:
      authService - the authentication service to use when connecting to this server.
      See Also:
    • getSecurityPackage

      public String getSecurityPackage()
      Get the security package to use when connecting to this server. The value for this attribute is significant only if the value for authService is set to AUTH_SERVICE_HOST. The default value is null which indicates that user name/password authentication will be used.
      Returns:
      the security package to use when connecting to this server.
      See Also:
    • getNormalizedSecurityPackage

      public String getNormalizedSecurityPackage()
      Get the normalized security package to use when connecting to this server. The normalized value is the result of calling normalizeSecurityPackage() with the original value. The value for this attribute is significant only if the value for authService is set to AUTH_SERVICE_HOST. The default value is null which indicates that user name/password authentication will be used.
      Returns:
      the security package to use when connecting to this server.
      See Also:
    • setSecurityPackage

      public void setSecurityPackage(String securityPackage)
      Set the security package to use when connecting to this server. The value for this attribute is significant only if the value for authService is set to AUTH_SERVICE_HOST. The default value is null which indicates that user name/password authentication will be used.
      Parameters:
      securityPackage - the security package to use when connecting to this server.
      See Also:
    • getSecurityPackageList

      public String getSecurityPackageList()
      Get the list of security packages to use when connecting to this server. The value for this attribute is significant only if the value for authService is set to AUTH_SERVICE_HOST and the value for securityPackage is SECURITY_PACKAGE_NEGOTIATE. The default value is Kerberos,NTLM.
      Returns:
      the list of security packages to use when connecting to this server.
      See Also:
    • getNormalizedSecurityPackageList

      public String getNormalizedSecurityPackageList()
      Get the normalized list of security packages to use when connecting to this server. The normalized value is the result of calling normalizeSecurityPackageList() with the original value. The value for this attribute is significant only if the value for authService is set to AUTH_SERVICE_HOST and the value for securityPackage is SECURITY_PACKAGE_NEGOTIATE. The default value is Kerberos,NTLM.
      Returns:
      the list of security packages to use when connecting to this server.
      See Also:
    • setSecurityPackageList

      public void setSecurityPackageList(String securityPackageList)
      Set the list of security packages to use when connecting to this server. The value for this attribute is significant only if the value for authService is set to AUTH_SERVICE_HOST and the value for securityPackage is SECURITY_PACKAGE_NEGOTIATE. The default value is Kerberos,NTLM.
      Parameters:
      securityPackageList - the list of security packages to use when connecting to this server.
      See Also:
    • getSPN

      public String getSPN()
      Get the service principal name to use when connecting to this server. The value for this attribute is significant only if the value for authService is set to AUTH_SERVICE_HOST and the value for securityPackage is set to SECURITY_PACKAGE_NEGOTIATE or SECURITY_PACKAGE_KERBEROS
      Returns:
      the service principal name to use when connecting to this server.
    • setSPN

      public void setSPN(String spn)
      Set the service principal name to use when connecting to this server. The value for this attribute is significant only if the value for authService is set to AUTH_SERVICE_HOST and the value for securityPackage is set to SECURITY_PACKAGE_NEGOTIATE or SECURITY_PACKAGE_KERBEROS
      Parameters:
      spn - the service principal name to use when connecting to this server.
    • getOption

      public String getOption(String name)
      Get the value of the named option.
      Parameters:
      name - the option name
      Returns:
      the value of the named option
    • setOption

      public String setOption(String name, String value)
      Set the value of the named option.
      Parameters:
      name - the option name
      value - the option value
      Returns:
      the previous option value
    • removeOption

      public String removeOption(String name)
      Remove a name option and its value.
      Parameters:
      name - the option name
      Returns:
      the previous value
    • fromURI

      public static Server fromURI(SASURI uri)
      Convert a URI into a Server.
      Parameters:
      uri - the URI to convert
    • equals

      public boolean equals(Object that)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • clone

      public Object clone()
      Overrides:
      clone in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • normalizeSecurityPackage

      public static String normalizeSecurityPackage(String securityPackage)
      Normalize a security package name. Specifically, if the specified name is equal to a known security pacakge name in a case-insensitive comparison, then the known security package is returned. Otherwise, the specified name is returned unchanged.
      Parameters:
      securityPackage - the security package name to normalize
      Returns:
      the normalized security package name
    • normalizeSecurityPackageList

      public static String normalizeSecurityPackageList(String securityPackageList)
      Normalize a security package list. Specifically, whitespace around commas is removed, and each security package name in the list is normalized separately using normalizeSecurityPackage().
      Parameters:
      securityPackageList - the security package list to normalized
      Returns:
      the normalized security package list