我正在尝试AS400 DB
从 Java 计算节点连接到一个但出现错误。你能给些建议么。
我的测试场景是:
我的代理流程每 9 秒触发一次,以在其中运行选择和删除行
AS400 DB
连接到
AS400 DB
使用JDBC_TransactionType.MB_TRANSACTION_AUTO
.try { //获取到 AS400 服务器的连接 if (conn == null) try { conn = getJDBCType4Connection("AS400db",JDBC_TransactionType.MB_TRANSACTION_AUTO); strSelectStoredProcName = (String)getUserDefinedAttribute("SelectStoredProcName"); 结果 = 新 CDBItaly_CoreSelectCustomerDetails().retrievePPWICustomerDetails(conn, strSelectStoredProcName);
} catch (SQLException e) { //store any error code and description in the environment tree. mbElement.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "ErrorCode", CDBItalyErrorCodes.CDB_ITALY_0001.toString()); mbElement.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "ErrorDesc", CDBItalyErrorCodes.CDB_ITALY_0001.getErrorDescription()); catchTerminal.propagate(assembly); }
} 捕捉(异常 e){}
一次从 ResultSet 中获取行并获得正确的结果 - OK
使用 rs.DeleterOW 从表中删除所有行,这意味着 ResultSet 下次不应该返回任何内容。
再次尝试获取(现在它应该返回 0 行)。但它返回与步骤 2 中完全相同的行,即使数据库表为空。
如果我重新启动代理流程,它会再次正常工作。
现在,如果我将代码更改如下:
try {
//get connection to the AS400 server
if (conn == null) {
conn = getJDBCType4Connection("AS400db",JDBC_TransactionType.MB_TRANSACTION_AUTO);
}
try {
strSelectStoredProcName = (String)getUserDefinedAttribute("SelectStoredProcName");
result = new CDBItaly_CoreSelectCustomerDetails().retrievePPWICustomerDetails(conn, strSelectStoredProcName);
} catch (SQLException e) {
//store any error code and description in the environment tree.
mbElement.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "ErrorCode", CDBItalyErrorCodes.CDB_ITALY_0001.toString());
mbElement.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "ErrorDesc", CDBItalyErrorCodes.CDB_ITALY_0001.getErrorDescription());
catchTerminal.propagate(assembly);
} catch(Exception e){}
我收到一个错误:java.sql.SQLException
连接不存在