These -4024 log entries are driving me absolutely mad. There is no reason
for these dbproc errors as I cannot see anywhere the dbproc is in error. I
have attached the full dbproc code and below is the error I get in the
catalina log file from tomcat. If someone (anyone) can take a look at the
info I have provided to see if they notice something strange I would
appreciate it.
[SYSTEM INFO]
SAPDB 7.3.0.34 w/ SAP's JDBC driver
SUSE 8.1
TOMCAT 4.1.27
[ERROR SNIPET FROM CATALINA.OUT]
com.sap.dbtech.jdbc.exceptions.DatabaseException: [-4024]: Error
at
com.sap.dbtech.jdbc.packet.ReplyPacket.createException(ReplyPacket.java:69)
at
com.sap.dbtech.jdbc.ConnectionSapDB.throwSQLError(ConnectionSapDB.java:763)
at
com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:429)
at
com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:320)
at
com.sap.dbtech.jdbc.CallableStatementSapDB.execute(CallableStatementSapDB.ja
va:380)
at
com.sap.dbtech.jdbc.CallableStatementSapDB.execute(CallableStatementSapDB.ja
va:289)
at com.synfoserv.actions.CallAction.callSearch(CallAction.java:442)
[CALLING CODE FROM WEB APPLICATION]
cstmt = m_conDb.prepareCall("{call sp_call_edit(?,?,?,?,?,?,?)}");
cstmt.setInt(1,dtc.string2Integer(sCallId,true));
cstmt.setInt(2,dtc.string2Integer(sCompanyId,true));
cstmt.setInt(3,dtc.string2Integer(sDivisionId,true));
cstmt.setInt(4,dtc.string2Integer(sPersonId,true));
cstmt.setInt(5,dtc.string2Integer(sOpportunityId,true));
cstmt.setInt(6,dtc.string2Integer(sQuoteId,true));
cstmt.setInt(7,dtc.string2Integer(sOrderId,true));
cstmt.execute(); <--- THIS IS LINE 442
[ATTACHED FILE IS THE SP_CALL_EDIT DBPROC]
Thanks,
Kevin
CREATE DBPROC SP_CALL_EDIT
(IN CALL_ID INT, IN COMPANY_ID INT, IN DIVISION_ID INT,
IN PERSON_ID INT, IN OPPORTUNITY_ID INT, IN QUOTE_ID INT, IN ORDER_ID INT )
RETURNS CURSOR AS VAR SEARCH INT;
BEGIN SET $CURSOR = 'MYCURSOR';
IF (ORDER_ID > 0) AND (SEARCH = 0) THEN
BEGIN DECLARE :$CURSOR CURSOR FOR
SELECT
CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME,
P.PERSON_ID, P.FNAME, P.LNAME
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D,
DBUSER.PERSON P, DBUSER.ORDERS O
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+)
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.ORDER_ID = O.ORDER_ID (+) AND CA.ORDER_ID =
:ORDER_ID
AND CA.CALL_ID <> 0 AND CA.ACTIVE='Y'
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC;
SET SEARCH = 1;
END;
IF (QUOTE_ID > 0) AND (SEARCH = 0) THEN
BEGIN DECLARE :$CURSOR CURSOR FOR
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME,
P.PERSON_ID, P.FNAME, P.LNAME
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D,
DBUSER.PERSON P, DBUSER.QUOTE Q
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+)
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.QUOTE_ID = Q.QUOTE_ID (+)
AND CA.ORDER_ID = :ORDER_ID AND CA.CALL_ID <> 0 AND CA.ACTIVE='Y'
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC;
SET SEARCH = 1;
END;
IF (OPPORTUNITY_ID > 0) AND (SEARCH = 0) THEN
BEGIN DECLARE :$CURSOR CURSOR FOR
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME,
P.PERSON_ID, P.FNAME, P.LNAME
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D,
DBUSER.PERSON P, DBUSER.OPPORTUNITY OP
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+)
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.OPPORTUNITY_ID = OP.OPPORTUNITY_ID (+)
AND CA.OPPORTUNITY_ID = :OPPORTUNITY_ID AND CA.CALL_ID <> 0 AND CA.ACTIVE='Y'
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC;
SET SEARCH = 1;
END;
IF (PERSON_ID > 0) AND (SEARCH = 0) THEN
BEGIN DECLARE :$CURSOR CURSOR FOR
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME,
P.PERSON_ID, P.FNAME, P.LNAME
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D, DBUSER.PERSON P
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+)
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.PERSON_ID = :PERSON_ID AND CA.CALL_ID <> 0
AND CA.ACTIVE='Y'
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC;
SET SEARCH = 1;
END;
IF (DIVISION_ID > 0) AND (SEARCH = 0) THEN
BEGIN DECLARE :$CURSOR CURSOR FOR
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME,
P.PERSON_ID, P.FNAME, P.LNAME
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D, DBUSER.PERSON P
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+)
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.DIVISION_ID = :DIVISION_ID
AND CA.CALL_ID <> 0 AND CA.ACTIVE='Y'
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC;
SET SEARCH = 1;
END;
IF (COMPANY_ID > 0) AND (SEARCH = 0) THEN
BEGIN DECLARE :$CURSOR CURSOR FOR
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME, P.PERSON_ID, P.FNAME,
P.LNAME
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D, DBUSER.PERSON P
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+)
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.COMPANY_ID = :COMPANY_ID AND CA.CALL_ID <> 0
AND CA.ACTIVE='Y'
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC;
SET SEARCH = 1;
END;
IF (CALL_ID > 0) AND (SEARCH = 0) THEN
BEGIN DECLARE :$CURSOR CURSOR FOR
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME,
P.PERSON_ID, P.FNAME, P.LNAME, OP.OPPORTUNITY_ID, Q.QUOTE_ID, O.ORDER_ID
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D,
DBUSER.PERSON P, DBUSER.OPPORTUNITY OP, DBUSER.QUOTE Q, DBUSER.ORDERS O
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+)
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.OPPORTUNITY_ID = OP.OPPORTUNITY_ID (+)
AND CA.QUOTE_ID = Q.QUOTE_ID (+) AND CA.ORDER_ID = O.ORDER_ID (+)
AND CA.CALL_ID = :CALL_ID AND CA.CALL_ID <> 0 AND CA.ACTIVE='Y'
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC;
END;
END;
--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]