statementListener.executionStarted(this);
notifyStatementStarted();
    public int[] executeBatch() throws SQLException {                statementListener.executionStarted(this);        try {            Object syncObject = getSynchronizationObject();                        ArrayList results = new ArrayList(batchList.size());    		Iterator iter = batchList.iterator();                        boolean commit = false;            synchronized(syncObject) {                XSQLVAR[] backupVars = null;                try {                    while(iter.hasNext()) {                    	XSQLVAR[] data = (XSQLVAR[])iter.next();                            XSQLVAR[] vars = fixedStmt.getInSqlda().sqlvar;                         for (int i = 0; i < vars.length; i++) {                            vars[i].copyFrom(data[i]);                            isParamSet[i] = true;                        }                                                try {                            if (internalExecute(isExecuteProcedureStatement))                                 throw new BatchUpdateException(toArray(results));                                    int updateCount = getUpdateCount();                                                        results.add(new Integer(updateCount));                                } catch(SQLException ex) {                        	throw new BatchUpdateException(                                    ex.getMessage(),                                    ex.getSQLState(),                                    ex.getErrorCode(),                                    toArray(results));                        }                    }                                        commit = true;                                        return toArray(results);                                    } finally {                    clearBatch();                }            }        } finally {            statementListener.statementCompleted(this);        }	}