OAF中调用并发程序

来源:互联网 发布:像拍立得滤镜软件 编辑:程序博客网 时间:2024/05/19 20:39
    public int callReturnRequest(Number quotationRequestId) {        int requestId = -1;        OADBTransaction tx = getOADBTransaction();        java.sql.Connection pConncection = tx.getJdbcConnection();        ConcurrentRequest cr = new ConcurrentRequest(pConncection);        String applnName = "XXSO"; //Application short name        String cpName = "XXXX"; //Concurent program Short name        String cpDesc = null;        // Arguments to concurrent program        Vector cpArgs = new Vector();        cpArgs.add(quotationRequestId);        try {            requestId =                cr.submitRequest(applnName, cpName, cpDesc, null, false,                                 cpArgs);            pConncection.commit();                } catch (RequestSubmissionException e) {            e.printStackTrace();        } catch (SQLException e) {            e.printStackTrace();        }        // Returns Conc prog. request id        return requestId;    }

等带并发程序执行 这个标准的api有提供

    /**     * waitForRequest     * @param requestId     * @return     * @throws SQLException     */    public String waitForRequest(String requestId) throws SQLException {        oracle.jdbc.OracleCallableStatement ocs = null;         try {            ocs = (OracleCallableStatement)getOADBTransaction().createCallableStatement            ("begin :1 :=XXSO_340UTIL_PKG.wait_for_request(:2); end;",1);            ocs.setString(2,requestId);            ocs.registerOutParameter(1, OracleTypes.VARCHAR);            ocs.execute();            return ocs.getString(1);        } catch (SQLException e) {            throw e;        } finally {            if (ocs != null) {                ocs.close();            }        }    }