Java 計算ノードからに接続しようとしてAS400 DB
いますが、エラーが発生します。あなたがアドバイスしていただけますか。
私のテストシナリオは次のとおりです。
ブローカ フローは 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 = (文字列)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
接続が存在しません