Class AppRequester

java.lang.Object
org.apache.derby.impl.drda.AppRequester

class AppRequester extends Object
AppRequester stores information about the application requester. It is used so that multiple sessions can share information when they are started from the same version of the application requester.
  • Field Details

    • MGR_LEVEL_UNKNOWN

      protected static final int MGR_LEVEL_UNKNOWN
      See Also:
    • UNKNOWN_CLIENT

      protected static final int UNKNOWN_CLIENT
      See Also:
    • DNC_CLIENT

      protected static final int DNC_CLIENT
      See Also:
    • MIN_MGR_LEVELS

      private static final int[] MIN_MGR_LEVELS
    • extnam

      protected String extnam
    • srvnam

      protected String srvnam
    • srvrlslv

      protected String srvrlslv
    • srvclsnm

      protected String srvclsnm
    • spvnam

      protected String spvnam
    • prdid

      protected String prdid
    • managerLevels

      private int[] managerLevels
    • clientType

      private int clientType
    • versionLevel

      protected int versionLevel
    • releaseLevel

      protected int releaseLevel
    • modifyLevel

      protected int modifyLevel
  • Constructor Details

    • AppRequester

      AppRequester()
      AppRequester constructor
  • Method Details

    • getManagerLevel

      protected int getManagerLevel(int manager)
      get the Application requester manager level
      Parameters:
      manager - codepoint for manager we are looking for
      Returns:
      manager level for that manager
    • setClientVersion

      protected void setClientVersion(String productId)
    • supportsSecMecUSRSSBPWD

      protected boolean supportsSecMecUSRSSBPWD()
      Returns true if Derby's client driver supports SECMEC_USRSSBPWD DRDA security mechanism.
    • supportsQryclsimpForLmtblkprc

      protected final boolean supportsQryclsimpForLmtblkprc()
      Check if the client expects QRYCLSIMP to be supported when the protocol is LMTBLKPRC.
      Returns:
      true if QRYCLSIMP is supported for LMTBLKPRC
    • greaterThanOrEqualTo

      protected boolean greaterThanOrEqualTo(int vLevel, int rLevel, int mLevel)
      Check if provided JCC version level is greaterThanOrEqualTo current level
      Parameters:
      vLevel - Version level
      rLevel - Release level
      mLevel - Modification level
    • setManagerLevel

      protected void setManagerLevel(int manager, int managerLevel)
      set Application requester manager level if the manager level is less than the minimum manager level, set the manager level to zero (saying we can't handle this level), this will be returned to the application requester and he can decide whether or not to proceed For CCSIDMGR, if the target server supports the CCSID manager but not the CCSID requested, the value returned is FFFF For now, we won't support the CCSIDMGR since JCC doesn't request it.
      Parameters:
      manager - codepoint of the manager
      managerLevel - level for that manager
    • equals

      protected boolean equals(AppRequester a)
      Check if the application requester is the same as this one
      Parameters:
      a - application requester to compare to
      Returns:
      true if same false otherwise
    • notEquals

      private boolean notEquals(Object a, Object b)
      Check whether two objects are not equal when 1 of the objects could be null
      Parameters:
      a - first object
      b - second object
      Returns:
      true if not equals false otherwise
    • supportedMessageParamLength

      protected int supportedMessageParamLength()
      Get the maximum length supported for an exception's message parameter string.
    • getClientType

      protected int getClientType()
      Get the type of the client.
    • isXARequester

      protected boolean isXARequester()
      Is this an AppRequester that supports XA return true if XAMGR >= 7, false otherwise
    • supportsEXTDTAAbort

      protected boolean supportsEXTDTAAbort()
      Tells whether the client sends a trailing Derby-specific status byte when transferring EXTDTA objects.
      Returns:
      true if the status byte is sent, false if not
    • supportsUtf8Ccsid

      protected boolean supportsUtf8Ccsid()
      Returns whether our AppRequester's UNICODEMGR supports UTF8 (CCSID 1208)
      Returns:
      true if the AppRequester supports CCSID 1208, false if not
    • supportsSessionDataCaching

      protected boolean supportsSessionDataCaching()
    • supportsUDTs

      protected boolean supportsUDTs()
    • supportsTimestampNanoseconds

      protected boolean supportsTimestampNanoseconds()
    • supportsBooleanValues

      protected boolean supportsBooleanValues()
    • supportsLongerLDStrings

      protected boolean supportsLongerLDStrings()
      Return true if the client contains the fix for DERBY-5236, which allows DDMWriter.writeLDString() to write strings that need up to 64K-1 bytes when represented in UTF-8. Otherwise, writeLDString() should use the old maximum length, which is 32700 bytes.
    • getTimestampLength

      protected int getTimestampLength()
      The timestamp length may be truncated for old versions of Derby. See DERBY-2602.