| Modifier and Type | Class and Description |
|---|---|
| private static class |
| Modifier and Type | Field and Description |
|---|---|
| private static int[] | |
| private AppRequester | |
| private static final String | |
| private static final String | |
| private volatile boolean | close
End this thread. |
| private static final int | |
| private int | |
| private int | |
| private Database | |
| private SQLException | |
| private static DecryptionManager | |
| private boolean | deferredReset
Tells if the reset / connect request is a deferred request. |
| private byte | |
| private static final DRDAProtocolExceptionInfo | |
| private static final byte[] | |
| private static final byte[] | |
| private static final byte[] | |
| private Calendar | gmtCalendar
A cached |
| private List | |
| private static final String | |
| private volatile boolean | logConnections
Whether or not to log connections. |
| private static HeaderPrintWriter | |
| private static int | |
| private static final int | |
| private static final int | |
| private static final int | |
| private static final int | |
| private static final int | |
| private byte[] | |
| private byte[] | |
| private static final byte | |
| private static final byte[] | |
| private int | |
| private DRDAString | pkgcnstkn
Current RDB Package Consistency Token. |
| private DRDAString | pkgid
Current RDB Package Identifier. |
| private int | pkgsn
Current RDB Package Section Number. |
| private static byte[] | |
| private Pkgnamcsn | prevPkgnamcsn
The value returned by the previous call to
|
| private DRDAString | rdbcolid
Current RDB Collection Identifier. |
| private DRDAString | rdbnam
Current RDB Package Name. |
| private DDMReader | |
| private int[] | |
| private static final String | |
| private static final int | |
| private boolean | |
| private NetworkServerControlImpl | |
| private Session | |
| private InputStream | |
| private OutputStream | |
| private int | |
| private static String | SQLERRMC_PREFORMATTED_MESSAGE_DELIMITER
|
| private static String | SQLERRMC_TOKEN_DELIMITER
|
| private static final String | |
| private static final String | |
| private volatile long | timeSlice
Time slice for this thread. |
| private List | |
| private static final byte[] | |
| private DDMWriter | |
| private DRDAXAProtocol |
| Access | Constructor and Description |
|---|---|
| pack-priv | DRDAConnThread(Session
Session requesting processing session, NetworkServerControlImpl Server starting thread server, long timeSlice for thread timeSlice, boolean logConnections)Create a new Thread for processing session requests |
| Modifier and Type | Method and Description |
|---|---|
| protected void | |
| private void | |
| private String | Returns: the SQLERRMC string with all fields of the warningthe dt)DataTruncation instance to serializeBuild the SQLERRMC for a |
| private String | Returns: preformated message text with messages separted by SQLERRMC_PREFORMATED_MESSAGE_DELIMITERSQLException for which to build SQLERRMC se)Build preformatted SQLException text for severe exceptions or SQLExceptions that are not Derby exceptions. |
| protected String | |
| private String | Returns: String which is either the message arguments to be passed to SYSIBM.SQLCAMESSAGE or just message text for severe errors.SQLException to build SQLERRMC se)Create error message or message argements to return to client. |
| private String | buildTokenizedSqlerrmc(SQLException
SQLException to print se)Build Tokenized SQLERRMC to just send the tokenized arguments to the client. |
| private boolean | |
| private void | checkLength(int
codepoint we are checking codepoint, int required length reqlen)Check that the length is equal to the required length for this codepoint |
| private void | checkRequired(int
code point for which list of code points is required codePoint)Check whether we have seen all the required code points |
| private void | |
| private void | checkWarning(Connection
connection to check conn, Statement statement to check stmt, ResultSet result set to check rs, long update count to include in SQLCARD updateCount, boolean whether always send SQLCARD regardless of
the existance of warnings alwaysSend, boolean whether to send any warnings or not. sendWarn)Check SQLWarning and write SQLCARD as needed. |
| private void | cleanUpAndCloseResultSet(DRDAStatement
the DRDA statement to clean up stmt, SQLException the exception that was thrown sqle, int start index for the first DSS to clear from
the output buffer writerMark)Cleans up and closes a result set if an exception is thrown when collecting QRYDTA in response to OPNQRY or CNTQRY. |
| protected void | |
| private boolean | |
| private void | |
| private static void | |
| protected void | |
| private static InputStream | |
| private String | Returns: hex string representation of byte arraybuffer to convert buf)convert byte array to a Hex string |
| private void | copyToRequired(int[]
list of required codepoints req)Copy a list of required code points to template for checking |
| private void | doneData(DRDAStatement
DRDA statement stmt, ResultSet Result set rs)Done data Send SQLCARD for the end of the data |
| private void | errorInChain(SQLException
the SQLException raised e)If there's a severe error in the DDM chain, and if the header indicates "terminate chain on error", we stop processing further commands in the chain nor do we send any reply for them. |
| private void | |
| private void | |
| private static Object | findService(final String factoryInterface, final String serviceName)
Must be private so that user code can't call this entry point. |
| private String | Returns: a string on the format YYYY-MM-DD representing the datethe date to format date)Convert a |
| private String | Returns: a string on the format HH:MM:SS representing the timethe time to format time)Convert a |
| private String | Returns: a string on the format YYYY-MM-DD-HH.MM.SS.ffffff[fff]the timestamp to format ts)Convert a |
| private int | |
| pack-priv long | |
| pack-priv long | |
| private int | Returns: security check code, 0 is O.K.Get connection from a database name Username and password is verified by making a connection to the database |
| protected int | |
| protected byte[] | |
| protected Database | |
| protected String | |
| private int | |
| private Calendar | Returns: a calendar in the GMT time zoneGet a |
| protected InputStream | |
| private boolean | Returns: true if connections are being logged; false otherwiseGet whether connections are logged |
| private static ModuleFactory | |
| private Object | Returns: an object with the value of the columnthe result set to fetch the object from rs, int the column index index, int the DRDA type of the object to fetch drdaType)
Get a column value of the specified type from a |
| private Object | Returns: an object with the value of the output parameterthe callable statement to fetch the object from cs, int the parameter index index, int the DRDA type of the object to fetch drdaType)
Get the value of an output parameter of the specified type from a
|
| protected OutputStream | |
| private static byte[] | |
| private int | |
| protected DDMReader | |
| protected NetworkServerControlImpl | |
| protected Session | |
| private int | Returns: the value to send as SQLCODEthe exception or warning to get the SQLCODE for e)Get the SQLCODE to send for an exception or a warning. |
| private long | |
| protected DDMWriter | |
| private void | handleException(Exception e)
Handle Exceptions - write error protocol if appropriate and close session or thread as appropriate |
| pack-priv boolean | |
| private void | |
| private void | initializeDatabase(String
database name to initialize. If
dbnam is non null, add database to the current session dbname)Create a new database and intialize the DRDAConnThread database. |
| private void | |
| private void | invalidClient(String
product id that does not match DNC prdid)Invalid non-derby client tried to connect. |
| protected void | |
| private void | |
| private boolean | Returns: true if sqlException is (or has to be assumed to be) caused by an authentication failure, false otherwise.The exception that is checked to see if
this is really caused by an authentication failure sqlException)There are multiple reasons for not getting a connection, and all these should throw SQLExceptions with SQL state 08004 according to the SQL standard. |
| protected void | markCommunicationsFailure(String
- info about the communications failure arg1, String - info about the communications failure arg2, String - info about the communications failure arg3, String - info about the communications failure arg4)Indicate a communications failure |
| protected void | markCommunicationsFailure(Exception
- Source exception that was thrown e, String - info about the communications failure arg1, String - info about the communications failure arg2, String - info about the communications failure arg3, String - info about the communications failure arg4)Indicate a communications failure. |
| protected void | |
| private void | padInt(char[]
the char array buf, int where in the array to start inserting the value offset, int the desired length of the inserted string length, int the integer value to insert value)Insert an integer into a char array and pad it with leading zeros if
its string representation is shorter than |
| private int | Returns: severity codeParse access RDB Instance variables RDBACCCL - RDB Access Manager Class - required must be SQLAM CRRTKN - Correlation Token - required RDBNAM - Relational database name -required PRDID - Product specific identifier - required TYPDEFNAM - Data Type Definition Name -required TYPDEFOVR - Type definition overrides -required RDBALWUPD - RDB Allow Updates optional PRDDTA - Product Specific Data - optional - ignorable STTDECDEL - Statement Decimal Delimiter - optional STTSTRDEL - Statement String Delimiter - optional TRGDFTRT - Target Default Value Return - optional |
| private int | Returns: security check code - 0 if everything O.K.Parse Access Security If the target server supports the SECMEC requested by the application requester then a single value is returned and it is identical to the SECMEC value in the ACCSEC command. |
| private String | |
| private String | |
| private DRDAStatement | Returns: DRDAstatement being closedParse CLSQRY Instance Variables RDBNAM - relational database name - optional PKGNAMCSN - RDB Package Name, Consistency Token and Section Number - required QRYINSID - Query Instance Identifier - required - level 7 MONITOR - Monitor events - optional. |
| private DRDAStatement | Returns: DRDAStatement we are continuingParse CNTQRY - Continue Query Instance Variables RDBNAM - Relational Database Name - optional PKGNAMCSN - RDB Package Name, Consistency Token, and Section Number - required QRYBLKSZ - Query Block Size - required QRYRELSCR - Query Relative Scrolling Action - optional QRYSCRORN - Query Scroll Orientation - optional - level 7 QRYROWNBR - Query Row Number - optional QRYROWSNS - Query Row Sensitivity - optional - level 7 QRYBLKRST - Query Block Reset - optional - level 7 QRYRTNDTA - Query Returns Data - optional - level 7 QRYROWSET - Query Rowset Size - optional - level 7 QRYRFRTBL - Query Refresh Answer Set Table - optional NBRROW - Number of Fetch or Insert Rows - optional MAXBLKEXT - Maximum number of extra blocks - optional RTNEXTDTA - Return of EXTDTA Option - optional MONITOR - Monitor events - optional. |
| private void | parseCNTQRYobjects(DRDAStatement
DRDA statement we are working on stmt)Parse CNTQRY objects Instance Variables OUTOVR - Output Override Descriptor - optional |
| private Date | |
| private boolean | |
| private boolean | Returns: expect "output sqlda" or notParse DSCSQLSTT - Describe SQL Statement previously prepared Instance Variables TYPSQLDA - sqlda type expected (output or input) RDBNAM - relational database name - optional PKGNAMCSN - RDB Package Name, Consistency Token and Section Number - required MONITOR - Monitor events - optional. |
| private String | Returns: string valueParse an encoded data string from the Application Requester |
| private void | parseEXCSAT()
Parses EXCSAT (Exchange Server Attributes) Instance variables EXTNAM(External Name) - optional MGRLVLLS(Manager Levels) - optional SPVNAM(Supervisor Name) - optional SRVCLSNM(Server Class Name) - optional SRVNAM(Server Name) - optional, ignorable SRVRLSLV(Server Product Release Level) - optional, ignorable |
| private void | parseEXCSAT2()
Parses EXCSAT2 (Exchange Server Attributes) Instance variables EXTNAM(External Name) - optional MGRLVLLS(Manager Levels) - optional SPVNAM(Supervisor Name) - optional SRVCLSNM(Server Class Name) - optional SRVNAM(Server Name) - optional, ignorable SRVRLSLV(Server Product Release Level) - optional, ignorable |
| private long | Returns: update countParse EXCSQLIMM - Execute Immediate Statement Instance Variables RDBNAM - relational database name - optional PKGNAMCSN - RDB Package Name, Consistency Token and Section Number - required RDBCMTOK - RDB Commit Allowed - optional MONITOR - Monitor Events - optional Command Objects TYPDEFNAM - Data Type Definition Name - optional TYPDEFOVR - TYPDEF Overrides -optional SQLSTT - SQL Statement -required |
| private boolean | parseEXCSQLSET()
Parse EXCSQLSET - Execute Set SQL Environment Instance Variables RDBNAM - relational database name - optional PKGNAMCT - RDB Package Name, Consistency Token - optional MONITOR - Monitor Events - optional Command Objects TYPDEFNAM - Data Type Definition Name - required TYPDEFOVR - TYPDEF Overrides - required SQLSTT - SQL Statement - required (at least one; may be more) |
| private void | parseEXCSQLSETobjects()
Parse EXCSQLSET objects Objects TYPDEFNAM - Data type definition name - optional TYPDEFOVR - Type defintion overrides - optional SQLSTT - SQL Statement - required (a list of at least one) Objects may follow in one DSS or in several DSS chained together. |
| private void | parseEXCSQLSTT()
Parse EXCSQLSTT - Execute non-cursor SQL Statement previously prepared Instance Variables RDBNAM - relational database name - optional PKGNAMCSN - RDB Package Name, Consistency Token and Section Number - required OUTEXP - Output expected NBRROW - Number of rows to be inserted if it's an insert PRCNAM - procedure name if specified by host variable, not needed for Derby QRYBLKSZ - query block size MAXRSLCNT - max resultset count MAXBLKEXT - Max number of extra blocks RSLSETFLG - resultset flag RDBCMTOK - RDB Commit Allowed - optional OUTOVROPT - output override option QRYROWSET - Query Rowset Size - Level 7 MONITOR - Monitor events - optional. |
| private boolean | parseEXCSQLSTTobjects(DRDAStatement
the DRDAStatement to execute stmt)Parse EXCSQLSTT command objects Command Objects TYPDEFNAM - Data Type Definition Name - optional TYPDEFOVR - TYPDEF Overrides -optional SQLDTA - optional, variable data, specified if prpared statement has input parameters EXTDTA - optional, externalized FD:OCA data OUTOVR - output override descriptor, not allowed for stored procedure calls If TYPDEFNAM and TYPDEFOVR are supplied, they apply to the objects sent with the statement. |
| private String | Returns: SQL StatementParse EXCSQLIMM objects Objects TYPDEFNAM - Data type definition name - optional TYPDEFOVR - Type defintion overrides SQLSTT - SQL Statement required If TYPDEFNAM and TYPDEFOVR are supplied, they apply to the objects sent with the statement. |
| private void | parseMGRLVLLS(int
1 for first time this is seen, 2 for subsequent ones time)Parse manager levels Instance variables MGRLVL - repeatable, required CODEPOINT CCSIDMGR - CCSID Manager CMNAPPC - LU 6.2 Conversational Communications Manager CMNSYNCPT - SNA LU 6.2 SyncPoint Conversational Communications Manager CMNTCPIP - TCP/IP Communication Manager DICTIONARY - Dictionary RDB - Relational Database RSYNCMGR - Resynchronization Manager SECMGR - Security Manager SQLAM - SQL Application Manager SUPERVISOR - Supervisor SYNCPTMGR - Sync Point Manager VALUE On the second appearance of this codepoint, it can only add managers |
| private void | |
| private String | Returns: string valueParse nullable character mixed byte or nullable character single byte Format 1 byte - null indicator I4 - mixed character length N bytes - mixed character string 1 byte - null indicator I4 - single character length N bytes - single character length string |
| private Pkgnamcsn | Returns: RDB Package Name, Consistency Token, and Section NumberParse OPNQRY Instance Variables RDBNAM - relational database name - optional PKGNAMCSN - RDB Package Name, Consistency Token and Section Number - required QRYBLKSZ - Query Block Size - required QRYBLKCTL - Query Block Protocol Control - optional MAXBLKEXT - Maximum Number of Extra Blocks - optional - default value 0 OUTOVROPT - Output Override Option QRYROWSET - Query Rowset Size - optional - level 7 MONITOR - Monitor events - optional. |
| private void | parseOPNQRYobjects(DRDAStatement stmt)
Parse OPNQRY objects Objects TYPDEFNAM - Data type definition name - optional TYPDEFOVR - Type defintion overrides - optional SQLDTA- SQL Program Variable Data - optional If TYPDEFNAM and TYPDEFOVR are supplied, they apply to the objects sent with the statement. |
| private void | parseOUTOVR(DRDAStatement
DRDA statement this applies to stmt)Parse OUTOVR - Output Override Descriptor This specifies the output format for data to be returned as output to a SQL statement or as output from a query. |
| private int | Returns: output override optionParse OUTOVROPT - this indicates whether output description can be overridden on just the first CNTQRY or on any CNTQRY |
| private Pkgnamcsn | Returns: Pkgnamcsn valueParse PKGNAMCSN - RDB Package Name, Consistency Token, and Section Number Instance Variables NAMESYMDR - database name - not validated RDBCOLID - RDB Collection Identifier PKGID - RDB Package Identifier PKGCNSTKN - RDB Package Consistency Token PKGSN - RDB Package Section Number |
| private String | |
| private int | Returns: return 0 - don't return sqlda, 1 - return input sqlda, 2 - return output sqldaParse PRPSQLSTT - Prepare SQL Statement Instance Variables RDBNAM - Relational Database Name - optional PKGNAMCSN - RDB Package Name, Consistency Token, and Section Number - required RTNSQLDA - Return SQL Descriptor Area - optional MONITOR - Monitor events - optional. |
| private String | Returns: SQL statementParse PRPSQLSTT objects Objects TYPDEFNAM - Data type definition name - optional TYPDEFOVR - Type defintion overrides - optional SQLSTT - SQL Statement required SQLATTR - Cursor attributes on prepare - optional - level 7 If TYPDEFNAM and TYPDEFOVR are supplied, they apply to the objects sent with the statement. |
| private int | Returns: query block sizeParse QRYBLSZ - this gives the maximum size of the query blocks that can be returned to the requester |
| private int | Returns: true to close on end of dataParse a QRYCLSIMP - Implicitly close non-scrollable cursor after end of data. |
| private int | |
| private int | Returns: query row set size- minimum value minVal)Parse QRYROWSET - this is the number of rows to return |
| private void | parseRDBCMTOK()
Parse RDBCMTOK - tells the database whether to allow commits or rollbacks to be executed as part of the command Since we don't have a SQL commit or rollback command, we will just ignore this for now |
| private String | |
| private int | Returns: security check codeParse security check Instance Variables SECMGRNM - security manager name - optional, ignorable SECMEC - security mechanism - required SECTKN - security token - optional, (required if encryption used) PASSWORD - password - optional, (required if security mechanism uses it) NEWPASSWORD - new password - optional, (required if sec mech. |
| protected void | parseSQLATTR(DRDAStatement
DRDAStatement stmt)Parse SQLATTR - Cursor attributes on prepare This is an encoded string. |
| private void | |
| private void | parseSQLDTA_work(DRDAStatement stmt)
Parse SQLDTA - SQL program variable data Instance Variables FDODSC - FD:OCA data descriptor - required FDODTA - FD:OCA data - optional |
| private String | |
| private Time | |
| private Timestamp | Returns: a Date object representing the timestamp in the specified calendarthe time string to parse timeString, Calendar the calendar in which the timestamp is parsed cal)Parse a timestamp string as it is received from the client. |
| private String | |
| private void | parseTYPDEFOVR(DRDAStatement
Statement this TYPDEFOVR applies to st)Parse Type Defintion Overrides TYPDEF Overrides specifies the Coded Character SET Identifiers (CCSIDs) that are in a named TYPDEF. |
| private boolean | Returns: true if for output; false otherwiseParse TYPSQLDA - Type of the SQL Descriptor Area |
| private String | Returns: string valueParse variable character mixed byte or variable character single byte Format I2 - VCM Length N bytes - VCM value I2 - VCS Length N bytes - VCS value Only 1 of VCM length or VCS length can be non-zero |
| private boolean | positionCursor(DRDAStatement
DRDA statement stmt, ResultSet Result set rs)Position cursor for insensitive scrollable cursors |
| protected static void | println2Log(String
database name dbname, String DRDA identifier drdaID, String message msg)Print a line to the DB2j log |
| private void | |
| private boolean | |
| private void | rdbnamMismatch(int
codepoint where the mismatch occurred codePoint)Database name given under code point doesn't match previous database names |
| private void | |
| private void | |
| private void | readAndSetExtParam(int
zero-based index of the parameter i, DRDAStatement associated ps stmt, int drda type of the parameter drdaType, int extLen, boolean streamLOB)Read different types of input parameters and set them in PreparedStatement |
| private void | readAndSetParams(int
index of the parameter i, DRDAStatement drda statement stmt, ParameterMetaData parameter meta data pmeta)Read different types of input parameters and set them in PreparedStatement |
| private boolean | Returns: true or false depending on boolean value readcodePoint to be used in error reporting codepoint)Read and check a boolean value |
| private long | |
| private Object | |
| private void | |
| private void | |
| public void | run()
Overrides java. Implements java. |
| private void | sendProtocolException(DRDAProtocolException
DRDAProtocolException to be sentNotice the client about a protocol error. |
| private void | |
| private void | sessionInitialState()
In initial state for a session, determine whether this is a command session or a DRDA protocol session. |
| private static void | setAsBinaryStream(DRDAStatement
the DRDA statement to use stmt, int the one-based index of the parameter index, EXTDTAReaderInputStream the EXTDTA stream to read data from stream, boolean whether or not the stream content is streamed as the
last value in the DRDA protocol flow streamLOB)Sets the specified binary EXTDTA parameter of the embedded statement. |
| private static void | setAsCharacterStream(DRDAStatement
the DRDA statement to use stmt, int the one-based index of the parameter i, EXTDTAReaderInputStream the EXTDTA stream to read data from extdtaStream, boolean whether or not the stream content is streamed as the
last value in the DRDA protocol flow streamLOB, String the encoding of the EXTDTA stream encoding)Sets the specified character EXTDTA parameter of the embedded statement. |
| private void | |
| protected void | |
| private void | setStmtOrDbByteOrder(boolean
if true, set database' byte order, otherwise set statement's setDatabase, DRDAStatement DRDAStatement, used when setDatabase is false stmt, String TYPDEFNAM value typDefNam)Set a statement or the database' byte order, depending on the arguments |
| protected void | |
| public static void | |
| private void | skipRemainder(boolean
True if we _only_ want to skip DSS'es
that are chained with the SAME id as the current DSS.
False means skip ALL chained DSSes, whether they're
chained with same or different ids. onlySkipSameIds)Skip remainder of current DSS and all chained DSS'es |
| private void | splitQRYDTA(DRDAStatement
DRDA statment stmt, int size of query block blksize)Split QRYDTA into blksize chunks This routine is called if the QRYDTA data will not fit. |
| private int | |
| private void | |
| private void | |
| protected void | |
| private void | |
| private void | |
| protected void | |
| private void | traceEXTDTARead(int
the DRDA type of the EXTDTA value drdaType, int the one-based parameter index index, EXTDTAReaderInputStream the stream being read stream, boolean whether or not the value is being streamed as the last
parameter value in the DRDA protocol flow streamLOB, String the encoding of the data, if any encoding)Sends a trace string to the console when reading an EXTDTA value (if tracing is enabled). |
| private int | Returns: security check code - 0 if everything O.K.Validate SECMEC_USRSSBPWD (Strong Password Substitute) can be used as DRDA security mechanism. |
| private void | |
| private void | verifyInOrderACCSEC_SECCHK(int
code point we have codePoint, int code point required at this time reqCodePoint)Verify that the code point is in the right order |
| private void | verifyRequiredObject(int
code point we have codePoint, int code point required at this time reqCodePoint)Verify that the code point is the required code point |
| private int | Returns: security check code, 0 is O.K.Verify userId and password Username and password is verified by making a connection to the database |
| private void | writeABNUOWRM()
Write ABNUOWRM - query process has terminated in an error condition such as deadlock or lock timeout. |
| private void | writeACCRDBRM(int svrcod)
Write Access to RDB Completed Instance Variables SVRCOD - severity code - 0 info, 4 warning -required PRDID - product specific identifier -required TYPDEFNAM - type definition name -required TYPDEFOVR - type definition overrides - required RDBINTTKN - token which can be used to interrupt DDM commands - optional CRRTKN - correlation token - only returned if we didn't get one from requester SRVDGN - server diagnostic information - optional PKGDFTCST - package default character subtype - optional USRID - User ID at the target system - optional SRVLST - Server List |
| private void | writeACCSECRD(int securityCheckCode)
Write ACCSECRD If the security mechanism is known, we just send it back along with the security token if encryption is going to be used. |
| private void | writeCMDCHKRM(int
severity of error severity)Write CMDCHKRM Instance Variables SVRCOD - Severity Code - required |
| private void | writeENDQRYRM(int
Severity code - WARNING or ERROR svrCod)Write ENDQRYRM - query process has terminated in such a manner that the query or result set is now closed. |
| private void | writeENDUOWRM(int
- operation type 1 - commit, 2 -rollback opType)Write ENDUOWRM Instance Variables SVCOD - severity code - WARNING - required UOWDSP - Unit of Work Disposition - required RDBNAM - Relational Database name - optional SRVDGN - Server Diagnostics information - optional |
| private void | writeEXCSATRD()
Write reply to EXCSAT command Instance Variables EXTNAM - External Name (optional) MGRLVLLS - Manager Level List (optional) SRVCLSNM - Server Class Name (optional) - used by JCC SRVNAM - Server Name (optional) SRVRLSLV - Server Product Release Level (optional) |
| pack-priv void | |
| protected void | writeFdocaVal(int
Index of column being returned index, Object Value to write to client val, int FD:OCA DRDA Type from FdocaConstants drdaType, int Precision precision, int scale, boolean valNull, DRDAStatement Statement being processed stmt, boolean True when writing a value for a procedure parameter isParam)Write Fdoca Value to client |
| private boolean | writeFDODTA(DRDAStatement stmt)
This routine places some data into the current QRYDTA block using FDODTA (Formatted Data Object DaTA rules). |
| private void | writeMGRLEVELS()
Write manager levels The target server must not provide information for any target managers unless the source explicitly requests it. |
| private void | writeNullability(int
FDOCA type drdaType, boolean true if this is a null value. False otherwise valNull)write nullability if this is a nullable drdatype and FDOCA null value if appropriate |
| private void | |
| private void | writeOPNQFLRM(SQLException
Exception describing failure e)Write a OPNQFLRM - Open Query Failure Instance Variables SVRCOD - Severity Code - required - 8 ERROR RDBNAM - Relational Database Name - required |
| private void | writeOPNQRYRM(boolean
- return as a DSS object (part of a reply) isDssObject, DRDAStatement - DRDA statement we are processing stmt)Write OPNQRYRM - Open Query Complete Instance Variables SVRCOD - Severity Code - required QRYPRCTYP - Query Protocol Type - required SQLCSRHLD - Hold Cursor Position - optional QRYATTSCR - Query Attribute for Scrollability - optional - level 7 QRYATTSNS - Query Attribute for Sensitivity - optional - level 7 QRYATTUPD - Query Attribute for Updatability -optional - level 7 QRYINSID - Query Instance Identifier - required - level 7 SRVDGN - Server Diagnostic Information - optional |
| private void | |
| private void | writePKGNAMCSN(byte[] pkgcnstkn)
Write PKGNAMCSN Instance Variables NAMESYMDR - database name - not validated RDBCOLID - RDB Collection Identifier PKGID - RDB Package Identifier PKGCNSTKN - RDB Package Consistency Token PKGSN - RDB Package Section Number There are two possible formats, fixed and extended which includes length information for the strings |
| private void | |
| private void | writeQRYDSC(DRDAStatement
DRDAStatement we are working on stmt, boolean simply the FDODSC, without the wrap
Instance Variables
SQLDTAGRP - required
Only 84 columns can be sent in a single QRYDSC. If there are more columns
they must be sent in subsequent QRYDSC.
If the QRYDSC will not fit into the current block, as many columns as can
fit are sent and then the remaining are sent in the following blocks. FDODSConly)Write QRYDSC - Query Answer Set Description |
| private void | writeQRYDTA(DRDAStatement
DRDA statement we are processing stmt)Write QRYDTA - Query Answer Set Data Contains some or all of the answer set data resulting from a query If the client is not using rowset processing, this routine attempts to pack as much data into the QRYDTA as it can. |
| private void | writeQRYNOPRM(int
Severity Code svrCod)Write a QRYNOPRM - Query Not Opened Instance Variables SVRCOD - Severity Code - required - 4 Warning 8 ERROR RDBNAM - Relational Database Name - required PKGNAMCSN - RDB Package Name, Consistency Token, and Section Number - required |
| private void | writeQRYPOPRM()
Write a QRYPOPRM - Query Previously opened Instance Variables SVRCOD - Severity Code - required - 8 ERROR RDBNAM - Relational Database Name - required PKGNAMCSN - RDB Package Name, Consistency Token, and Section Number - required |
| private void | writeRDBfailure(int
codepoint of failure codePoint)Write RDB Failure Instance Variables SVRCOD - Severity Code - required RDBNAM - Relational Database name - required SRVDGN - Server Diagnostics - optional (not sent for now) |
| protected void | |
| private void | writeRDBUPDRM()
Write RDBUPDRM Instance variables SVRCOD - Severity code - Information only - required RDBNAM - Relational database name -required SRVDGN - Server Diagnostic Information -optional |
| private void | writeRSLSETRM(DRDAStatement stmt)
Write RSLSETRM Instance variables SVRCOD - Severity code - Information only - required PKGSNLST - list of PKGNAMCSN -required SRVDGN - Server Diagnostic Information -optional |
| private void | writeSECCHKRM(int securityCheckCode)
Write security check reply Instance variables SVRCOD - serverity code - required SECCHKCD - security check code - required SECTKN - security token - optional, ignorable SVCERRNO - security service error number SRVDGN - Server Diagnostic Information |
| private void | |
| private void | writeSQLCAGRP(SQLException
SQLException encountered e, long updateCount, long rowCount)Write SQLCAGRP SQLCAGRP : FDOCA EARLY GROUP SQL Communcations Area Group Description FORMAT FOR SQLAM <= 6 SQLCODE; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLSTATE; DRDA TYPE FCS; ENVLID 0x30; Length Override 5 SQLERRPROC; DRDA TYPE FCS; ENVLID 0x30; Length Override 8 SQLCAXGRP; DRDA TYPE N-GDA; ENVLID 0x52; Length Override 0 FORMAT FOR SQLAM >= 7 SQLCODE; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLSTATE; DRDA TYPE FCS; ENVLID 0x30; Length Override 5 SQLERRPROC; DRDA TYPE FCS; ENVLID 0x30; Length Override 8 SQLCAXGRP; DRDA TYPE N-GDA; ENVLID 0x52; Length Override 0 SQLDIAGGRP; DRDA TYPE N-GDA; ENVLID 0x56; Length Override 0 |
| private void | writeSQLCAGRP(byte[]
SQLState (already converted to UTF8) sqlState, int sqlcode sqlcode, long updateCount, long rowCount)Same as writeSQLCAGRP, but optimized for the case when there is no real exception, i.e. the exception is null, or "End of data" SQLCAGRP : FDOCA EARLY GROUP SQL Communcations Area Group Description FORMAT FOR SQLAM <= 6 SQLCODE; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLSTATE; DRDA TYPE FCS; ENVLID 0x30; Length Override 5 SQLERRPROC; DRDA TYPE FCS; ENVLID 0x30; Length Override 8 SQLCAXGRP; DRDA TYPE N-GDA; ENVLID 0x52; Length Override 0 FORMAT FOR SQLAM >= 7 SQLCODE; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLSTATE; DRDA TYPE FCS; ENVLID 0x30; Length Override 5 SQLERRPROC; DRDA TYPE FCS; ENVLID 0x30; Length Override 8 SQLCAXGRP; DRDA TYPE N-GDA; ENVLID 0x52; Length Override 0 SQLDIAGGRP; DRDA TYPE N-GDA; ENVLID 0x56; Length Override 0 |
| private void | |
| private void | |
| private void | |
| private void | writeSQLCAXGRP(long updateCount, long rowCount, String
sqlcode sqlerrmc, SQLException SQLException encountered nextException)Write SQLCAXGRP SQLCAXGRP : EARLY FDOCA GROUP SQL Communications Area Exceptions Group Description FORMAT FOR SQLAM <= 6 SQLRDBNME; DRDA TYPE FCS; ENVLID 0x30; Length Override 18 SQLERRD1; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLERRD2; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLERRD3; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLERRD4; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLERRD5; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLERRD6; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLWARN0; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN1; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN2; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN3; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN4; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN5; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN6; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN7; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN8; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN9; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARNA; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLERRMSG_m; DRDA TYPE VCM; ENVLID 0x3E; Length Override 70 SQLERRMSG_s; DRDA TYPE VCS; ENVLID 0x32; Length Override 70 FORMAT FOR SQLAM >= 7 SQLERRD1; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLERRD2; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLERRD3; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLERRD4; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLERRD5; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLERRD6; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLWARN0; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN1; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN2; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN3; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN4; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN5; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN6; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN7; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN8; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARN9; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLWARNA; DRDA TYPE FCS; ENVLID 0x30; Length Override 1 SQLRDBNAME; DRDA TYPE VCS; ENVLID 0x32; Length Override 1024 SQLERRMSG_m; DRDA TYPE VCM; ENVLID 0x3E; Length Override 70 SQLERRMSG_s; DRDA TYPE VCS; ENVLID 0x32; Length Override 70 |
| private void | |
| private void | writeSQLDAGRP(ResultSetMetaData
resultset meta data rsmeta, ParameterMetaData parameter meta data pmeta, int column number we are returning (in case of result set), or,
parameter number (in case of parameter) elemNum, boolean whether this is for a result set rtnOutput)Write SQLDAGRP SQLDAGRP : EARLY FDOCA GROUP SQL Data Area Group Description FORMAT FOR SQLAM <= 6 SQLPRECISION; DRDA TYPE I2; ENVLID 0x04; Length Override 2 SQLSCALE; DRDA TYPE I2; ENVLID 0x04; Length Override 2 SQLLENGTH; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLTYPE; DRDA TYPE I2; ENVLID 0x04; Length Override 2 SQLCCSID; DRDA TYPE FB; ENVLID 0x26; Length Override 2 SQLNAME_m; DRDA TYPE VCM; ENVLID 0x3E; Length Override 30 SQLNAME_s; DRDA TYPE VCS; ENVLID 0x32; Length Override 30 SQLLABEL_m; DRDA TYPE VCM; ENVLID 0x3E; Length Override 30 SQLLABEL_s; DRDA TYPE VCS; ENVLID 0x32; Length Override 30 SQLCOMMENTS_m; DRDA TYPE VCM; ENVLID 0x3E; Length Override 254 SQLCOMMENTS_m; DRDA TYPE VCS; ENVLID 0x32; Length Override 254 FORMAT FOR SQLAM == 6 SQLPRECISION; DRDA TYPE I2; ENVLID 0x04; Length Override 2 SQLSCALE; DRDA TYPE I2; ENVLID 0x04; Length Override 2 SQLLENGTH; DRDA TYPE I8; ENVLID 0x16; Length Override 8 SQLTYPE; DRDA TYPE I2; ENVLID 0x04; Length Override 2 SQLCCSID; DRDA TYPE FB; ENVLID 0x26; Length Override 2 SQLNAME_m; DRDA TYPE VCM; ENVLID 0x3E; Length Override 30 SQLNAME_s; DRDA TYPE VCS; ENVLID 0x32; Length Override 30 SQLLABEL_m; DRDA TYPE VCM; ENVLID 0x3E; Length Override 30 SQLLABEL_s; DRDA TYPE VCS; ENVLID 0x32; Length Override 30 SQLCOMMENTS_m; DRDA TYPE VCM; ENVLID 0x3E; Length Override 254 SQLCOMMENTS_m; DRDA TYPE VCS; ENVLID 0x32; Length Override 254 SQLUDTGRP; DRDA TYPE N-GDA; ENVLID 0x51; Length Override 0 FORMAT FOR SQLAM >= 7 SQLPRECISION; DRDA TYPE I2; ENVLID 0x04; Length Override 2 SQLSCALE; DRDA TYPE I2; ENVLID 0x04; Length Override 2 SQLLENGTH; DRDA TYPE I8; ENVLID 0x16; Length Override 8 SQLTYPE; DRDA TYPE I2; ENVLID 0x04; Length Override 2 SQLCCSID; DRDA TYPE FB; ENVLID 0x26; Length Override 2 SQLDOPTGRP; DRDA TYPE N-GDA; ENVLID 0xD2; Length Override 0 |
| private void | writeSQLDARD(DRDAStatement
prepared statement stmt, boolean rtnOutput, SQLException e)Write SQLDARD SQLDARD : FDOCA EARLY ARRAY SQL Descriptor Area Row Description with SQL Communications Area FORMAT FOR SQLAM <= 6 SQLCARD; ROW LID 0x64; ELEMENT TAKEN 0(all); REP FACTOR 1 SQLNUMROW; ROW LID 0x68; ELEMENT TAKEN 0(all); REP FACTOR 1 SQLDAROW; ROW LID 0x60; ELEMENT TAKEN 0(all); REP FACTOR 0(all) FORMAT FOR SQLAM >= 7 SQLCARD; ROW LID 0x64; ELEMENT TAKEN 0(all); REP FACTOR 1 SQLDHROW; ROW LID 0xE0; ELEMENT TAKEN 0(all); REP FACTOR 1 SQLNUMROW; ROW LID 0x68; ELEMENT TAKEN 0(all); REP FACTOR 1 |
| private void | writeSQLDCGRP(long rowNum, int sqlCode, String sqlState, String dbname, String sqlerrmc)
writeSQLDCGRP: SQL Diagnostics Condition Group Description SQLDCCODE; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLDCSTATE; DRDA TYPE FCS; ENVLID Ox30; Lengeh Override 5 SQLDCREASON; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLDCLINEN; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLDCROWN; DRDA TYPE FD; ENVLID 0x0E; Lengeh Override 31 SQLDCER01; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLDCER02; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLDCER03; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLDCER04; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLDCPART; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLDCPPOP; DRDA TYPE I4; ENVLID 0x02; Length Override 4 SQLDCMSGID; DRDA TYPE FCS; ENVLID 0x30; Length Override 10 SQLDCMDE; DRDA TYPE FCS; ENVLID 0x30; Length Override 8 SQLDCPMOD; DRDA TYPE FCS; ENVLID 0x30; Length Override 5 SQLDCRDB; DRDA TYPE VCS; ENVLID 0x32; Length Override 255 SQLDCTOKS; DRDA TYPE N-RLO; ENVLID 0xF7; Length Override 0 SQLDCMSG_m; DRDA TYPE NVMC; ENVLID 0x3F; Length Override 32672 SQLDCMSG_S; DRDA TYPE NVCS; ENVLID 0x33; Length Override 32672 SQLDCCOLN_m; DRDA TYPE NVCM ; ENVLID 0x3F; Length Override 255 SQLDCCOLN_s; DRDA TYPE NVCS; ENVLID 0x33; Length Override 255 SQLDCCURN_m; DRDA TYPE NVCM; ENVLID 0x3F; Length Override 255 SQLDCCURN_s; DRDA TYPE NVCS; ENVLID 0x33; Length Override 255 SQLDCPNAM_m; DRDA TYPE NVCM; ENVLID 0x3F; Length Override 255 SQLDCPNAM_s; DRDA TYPE NVCS; ENVLID 0x33; Length Override 255 SQLDCXGRP; DRDA TYPE N-GDA; ENVLID 0xD3; Length Override 1 |
| private void | writeSQLDCROW(long rowNum, int sqlCode, String sqlState, String dbname, String sqlerrmc)
writeSQLDCROW: SQL Diagnostics Condition Row - Identity 0xE5 SQLDCGRP; GROUP LID 0xD5; ELEMENT TAKEN 0(all); REP FACTOR 1 |
| private void | writeSQLDHROW(int
HOLD_CURSORS_OVER_COMMIT or CLOSE_CURSORS_AT_COMMIT holdability)Holdability passed in as it can represent the holdability of the statement or a specific result set. |
| private void | writeSQLDIAGCI(SQLException nextException)
writeSQLDIAGCI: SQL Diagnostics Condition Information Array - Identity 0xF5 SQLNUMROW; ROW LID 0x68; ELEMENT TAKEN 0(all); REP FACTOR 1 SQLDCIROW; ROW LID 0xE5; ELEMENT TAKEN 0(all); REP FACTOR 0(all) |
| private void | |
| private void | writeSQLDIAGGRP(SQLException nextException)
Write SQLDIAGGRP: SQL Diagnostics Group Description - Identity 0xD1 Nullable Group SQLDIAGSTT; DRDA TYPE N-GDA; ENVLID 0xD3; Length Override 0 SQLDIAGCN; DRFA TYPE N-RLO; ENVLID 0xF6; Length Override 0 SQLDIAGCI; DRDA TYPE N-RLO; ENVLID 0xF5; Length Override 0 |
| private void | |
| private void | writeSQLDOPTGRP(ResultSetMetaData rsmeta, ParameterMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
|
| private void | writeSQLDTAGRP(DRDAStatement
drda statement stmt, ResultSetMetaData resultset meta data rsmeta, ParameterMetaData parameter meta data for CallableStatement pmeta, int starting column for group to send colStart, int end column to send colEnd, boolean is this the first group first)Write SQLDTAGRP SQLDAGRP : Late FDOCA GROUP SQL Data Value Group Descriptor LENGTH - length of the SQLDTAGRP TRIPLET_TYPE - NGDA for first, CPT for following ID - SQLDTAGRP_LID for first, NULL_LID for following For each column DRDA TYPE LENGTH OVERRIDE For numeric/decimal types PRECISON SCALE otherwise LENGTH or DISPLAY_WIDTH |
| private void | writeSQLDXGRP(ResultSetMetaData rsmeta, ParameterMetaData pmeta, int jdbcElemNum, boolean rtnOutput)
|
| private void | writeSQLERRRM(int
severity of error severity)Write SQLERRRM Instance Variables SVRCOD - Severity Code - required |
| private void | writeSQLNUMGRP(SQLException nextException)
writeSQLNUMGRP: Writes SQLNUMGRP : FDOCA EARLY GROUP SQL Number of Elements Group Description FORMAT FOR ALL SQLAM LEVELS SQLNUM; DRDA TYPE I2; ENVLID 0x04; Length Override 2 |
| private void | writeSQLNUMROW(SQLException nextException)
writeSQLNUMROW: Writes SQLNUMROW : FDOCA EARLY ROW SQL Number of Elements Row Description FORMAT FOR SQLAM LEVELS SQLNUMGRP; GROUP LID 0x58; ELEMENT TAKEN 0(all); REP FACTOR 1 |
| private void | |
| private void | writeSQLUDTGRP(ResultSetMetaData
resultset meta data rsmeta, ParameterMetaData parameter meta data pmeta, int column number we are returning (in case of result set), or,
parameter number (in case of parameter) jdbcElemNum, boolean whether this is for a result set rtnOutput)Write SQLUDTGRP (SQL Descriptor User-Defined Type Group Descriptor) This is the format from the DRDA spec, Volume 1, section 5.6.4.10. |
| private void | |
| private void | writeVCMorVCS(String
string to write s)Write variable character mixed byte or single byte The preference is to write mixed byte if it is defined for the server, since that is our default and we don't allow it to be changed, we always write mixed byte. |