/** * Create DSS reply object */ protected void createDssReply() { beginDss(DssConstants.DSSFMT_RPYDSS, true); }
protected void writeExtendedLength(long size) { int numbytes = calculateExtendedLengthByteCount(size); if (size > 0) writeInt(0x8000 | numbytes); else writeInt(numbytes); }
private void writeSQLSTMTID(String statementID) throws DRDAProtocolException { writer.createDssObject(); writer.startDdm(CodePoint.GETSTMTID); // writer.writeString(statementID); int length = 0; if (statementID != null) { byte[] buf = statementID.getBytes(); length = buf.length; writer.writeInt(length); writer.writeBytes(buf, 0, length); } else { writer.writeInt(length); } writer.endDdmAndDss(); }
/** * Write ENDQRYRM - query process has terminated in such a manner that the * query or result set is now closed. It cannot be resumed with the CNTQRY * command or closed with the CLSQRY command * @param svrCod Severity code - WARNING or ERROR * @exception DRDAProtocolException */ private void writeENDQRYRM(int svrCod) throws DRDAProtocolException { writer.createDssReply(); writer.startDdm(CodePoint.ENDQRYRM); writer.writeScalar2Bytes(CodePoint.SVRCOD,svrCod); writer.endDdmAndDss(); } /**
break; case CREATE_DSS_REQUEST: writer.createDssRequest(); break; case CREATE_DSS_OBJECT: writer.createDssObject(); break; case CREATE_DSS_REPLY: writer.createDssReply(); break; case END_DSS: writer.endDss((getBytes())[0]); else writer.endDss(); break; case END_DDM: writer.endDdm(); break; case END_DDM_AND_DSS: writer.endDdmAndDss(); break; case START_DDM: writer.startDdm(getCP()); break; case WRITE_SCALAR_STRING: writer.writeScalarString(getCP(), getString()); break;
writer.createDssObject(); else writer.createDssReply(); writer.startDdm(CodePoint.OPNQRYRM); writer.writeScalar2Bytes(CodePoint.SVRCOD,CodePoint.SVRCOD_INFO); if (this.trace) trace("sending QRYPRCTYP: " + prcType); writer.writeScalar2Bytes(CodePoint.QRYPRCTYP, prcType); writer.writeScalar1Byte(CodePoint.SQLCSRHLD, CodePoint.TRUE); if (sqlamLevel >= MGRLVL_7) writer.writeScalarHeader(CodePoint.QRYINSID, 8); writer.writeInt(0); writer.writeInt(session.qryinsid++); writer.writeScalar1Byte(CodePoint.QRYATTSCR, CodePoint.TRUE); if ((stmt.getConcurType() == ResultSet.CONCUR_UPDATABLE) && (stmt.getResultSet().getType() == ResultSet.TYPE_SCROLL_INSENSITIVE)) { writer.writeScalar1Byte(CodePoint.QRYATTSNS, CodePoint.QRYSNSSTC); } else { writer.writeScalar1Byte(CodePoint.QRYATTSNS, CodePoint.QRYINS);
writer.createDssReply(); writer.startDdm(codePoint); writer.writeScalar2Bytes(CodePoint.SVRCOD, CodePoint.SVRCOD_ERROR); writeRDBNAM(database.dbName); writer.endDdmAndDss(); writer.createDssObject(); writer.writeScalarString(CodePoint.TYPDEFNAM, CodePoint.TYPDEFNAM_QTDSQLASC); writeTYPDEFOVR(); writer.endDss(); case CodePoint.RDBNFNRM: case CodePoint.RDBATHRM:
writer.createDssObject(); writer.startDdm(CodePoint.ACCSECRD); writer.writeScalar2Bytes(CodePoint.SECMEC, database.securityMechanism); else writer.writeScalar2Bytes(CodePoint.SECMEC, server.getSecurityMechanism()); else writer.writeScalar2Bytes(CodePoint.SECMEC, CodePoint.SECMEC_USRIDPWD); writer.writeScalar2Bytes(CodePoint.SECMEC, CodePoint.SECMEC_EUSRIDPWD); writer.writeScalar2Bytes(CodePoint.SECMEC, CodePoint.SECMEC_USRIDONL); writer.writeScalar2Bytes(CodePoint.SECMEC, CodePoint.SECMEC_USRSSBPWD); writer.writeScalar1Byte(CodePoint.SECCHKCD, securityCheckCode); writer.writeScalarBytes(CodePoint.SECTKN, myPublicKey); else if (database.securityMechanism == CodePoint.SECMEC_USRSSBPWD) writer.writeScalarBytes(CodePoint.SECTKN, myTargetSeed); writer.endDdmAndDss ();
/** Write SYNCCRD (SYNCCTL response) * @param synctype - XA Command to send response for see parseSYNCTYPE * @param xaRetVal - return value from XA command * @param xids - list of xids to return for recover. * null for other commands * @throws DRDAProtocolException */ private void writeSYNCCRD (int synctype, int xaRetVal, Xid[] xids) throws DRDAProtocolException { writer.createDssReply(); writer.startDdm(CodePoint.SYNCCRD); writer.startDdm(CodePoint.XARETVAL); writer.writeInt(xaRetVal); writer.endDdm(); if (xids != null) writePRPHRCLST(xids); writer.endDdmAndDss(); }
ensureLength( DEFAULT_BUFFER_SIZE - buffer.position() ); sendBytes(agent.getOutputStream()); beginDss(chainedWithSameCorrelator, DssConstants.GDSFMT_OBJDSS); writeLengthCodePoint(0x8004,codePoint); writeByte(0x0);
/** * Write a null SQLCARD as an object * * @exception DRDAProtocolException */ private void writeNullSQLCARDobject() throws DRDAProtocolException { writer.createDssObject(); writer.startDdm(CodePoint.SQLCARD); writeSQLCAGRP(nullSQLState, 0, 0, 0); writer.endDdmAndDss(); } /**
writer.createDssObject(); writer.startDdm(CodePoint.EXCSATRD); writer.writeScalarString(CodePoint.EXTNAM, server.att_extnam); writer.writeScalarString(CodePoint.SRVCLSNM, server.att_srvclsnm); writer.writeScalarString(CodePoint.SRVNAM, server.ATT_SRVNAM); writer.writeScalarString(CodePoint.SRVRLSLV, server.att_srvrlslv); writer.endDdmAndDss();
throws java.io.IOException resetChainState(); final byte[] bytes = buffer.array(); final int length = buffer.position(); 5); clearBuffer();
byte [] temp = writer.copyDSSDataToEnd(blksize); writer.truncateDSS(blksize); if (temp.length == 0) agentError("LMTBLKPRC violation: splitQRYDTA was " +
int extendedLengthByteCount = calculateExtendedLengthByteCount (length); if (extendedLengthByteCount != 0) ensureLength (extendedLengthByteCount);
ensureLength(encodedLength); clearDdm (); throw new SQLException("Packed decimal may only be up to " + FdocaConstants.NUMERIC_MAX_PRECISION + " digits!"); clearDdm (); throw new SQLException ("The numeric literal \"" + b.toString() + "\" unscaledValue=" + unscaledStr + if (bigWholeIntegerLength > declaredWholeIntegerLength) clearDdm (); throw new SQLException ("Overflow occurred during numeric data type conversion of \"" + b.toString() +
int writerMark = writer.markDSSClearPoint(); writer.clearDSSesBackToMark(writerMark); writeSQLCARDs(e, 0); errorInChain(e); writer.clearDSSesBackToMark(writerMark); writeSQLCARDs(e, 0); errorInChain(e); writer.clearDSSesBackToMark(writerMark); writeSQLCARDs(e, 0, true); PRPSQLSTTfailed = true; writer.clearDSSesBackToMark(writerMark); writer.clearDSSesBackToMark(writerMark); writer.clearDSSesBackToMark(writerMark); writer.clearDSSesBackToMark(writerMark); writeSQLCARDs(e, 0); errorInChain(e); writer.clearDSSesBackToMark(writerMark); writeSQLCARDs(e, 0); errorInChain(e); writer.clearDSSesBackToMark(writerMark);
writer.clearDSSesBackToMark(writerMark); if (!stmt.rsIsClosed()) { try {
/** * Initialize class */ private void initialize() { // set input and output sockets // this needs to be done before creating reader sockis = session.sessionInput; sockos = session.sessionOutput; reader = new DDMReader(this, session.dssTrace); writer = new DDMWriter(ccsidManager, this, session.dssTrace); }
break; case CREATE_DSS_REQUEST: writer.createDssRequest(); break; case CREATE_DSS_OBJECT: writer.createDssObject(); break; case CREATE_DSS_REPLY: writer.createDssReply(); break; case END_DSS: writer.endDss((getBytes())[0]); else writer.endDss(); break; case END_DDM: writer.endDdm(); break; case END_DDM_AND_DSS: writer.endDdmAndDss(); break; case START_DDM: writer.startDdm(getCP()); break; case WRITE_SCALAR_STRING: writer.writeScalarString(getCP(), getString()); break;