Package org.apache.derby.impl.drda
Class AppRequester
- java.lang.Object
-
- org.apache.derby.impl.drda.AppRequester
-
class AppRequester extends java.lang.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 Summary
Fields Modifier and Type Field Description private int
clientType
protected static int
DNC_CLIENT
protected java.lang.String
extnam
private int[]
managerLevels
protected static int
MGR_LEVEL_UNKNOWN
private static int[]
MIN_MGR_LEVELS
protected int
modifyLevel
protected java.lang.String
prdid
protected int
releaseLevel
protected java.lang.String
spvnam
protected java.lang.String
srvclsnm
protected java.lang.String
srvnam
protected java.lang.String
srvrlslv
protected static int
UNKNOWN_CLIENT
protected int
versionLevel
-
Constructor Summary
Constructors Constructor Description AppRequester()
AppRequester constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
equals(AppRequester a)
Check if the application requester is the same as this oneprotected int
getClientType()
Get the type of the client.protected int
getManagerLevel(int manager)
get the Application requester manager levelprotected int
getTimestampLength()
The timestamp length may be truncated for old versions of Derby.protected boolean
greaterThanOrEqualTo(int vLevel, int rLevel, int mLevel)
Check if provided JCC version level is greaterThanOrEqualTo current levelprotected boolean
isXARequester()
Is this an AppRequester that supports XA return true if XAMGR >= 7, false otherwiseprivate boolean
notEquals(java.lang.Object a, java.lang.Object b)
Check whether two objects are not equal when 1 of the objects could be nullprotected void
setClientVersion(java.lang.String productId)
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.protected int
supportedMessageParamLength()
Get the maximum length supported for an exception's message parameter string.protected boolean
supportsBooleanValues()
protected boolean
supportsEXTDTAAbort()
Tells whether the client sends a trailing Derby-specific status byte when transferring EXTDTA objects.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.protected boolean
supportsQryclsimpForLmtblkprc()
Check if the client expects QRYCLSIMP to be supported when the protocol is LMTBLKPRC.protected boolean
supportsSecMecUSRSSBPWD()
Returns true if Derby's client driver supports SECMEC_USRSSBPWD DRDA security mechanism.protected boolean
supportsSessionDataCaching()
protected boolean
supportsTimestampNanoseconds()
protected boolean
supportsUDTs()
protected boolean
supportsUtf8Ccsid()
Returns whether our AppRequester's UNICODEMGR supports UTF8 (CCSID 1208)
-
-
-
Field Detail
-
MGR_LEVEL_UNKNOWN
protected static final int MGR_LEVEL_UNKNOWN
- See Also:
- Constant Field Values
-
UNKNOWN_CLIENT
protected static final int UNKNOWN_CLIENT
- See Also:
- Constant Field Values
-
DNC_CLIENT
protected static final int DNC_CLIENT
- See Also:
- Constant Field Values
-
MIN_MGR_LEVELS
private static final int[] MIN_MGR_LEVELS
-
extnam
protected java.lang.String extnam
-
srvnam
protected java.lang.String srvnam
-
srvrlslv
protected java.lang.String srvrlslv
-
srvclsnm
protected java.lang.String srvclsnm
-
spvnam
protected java.lang.String spvnam
-
prdid
protected java.lang.String prdid
-
managerLevels
private int[] managerLevels
-
clientType
private int clientType
-
versionLevel
protected int versionLevel
-
releaseLevel
protected int releaseLevel
-
modifyLevel
protected int modifyLevel
-
-
Method Detail
-
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(java.lang.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 levelrLevel
- Release levelmLevel
- 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 managermanagerLevel
- 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(java.lang.Object a, java.lang.Object b)
Check whether two objects are not equal when 1 of the objects could be null- Parameters:
a
- first objectb
- 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.
-
-