2016-12-01 4 views
0

私のアプリケーションでIBM DB2 iSeriesデータベースを使用しました。私は、node2.jarのdb2.jar(DataDirect by Progress)によるDataDirectアプローチを使用してアプリケーションをデータベースに接続しました。この方法では、選択クエリでデータを取得できますが、非ジャーナリングテーブルではデータを更新/挿入できません。しかし、JTOpenのjt400.jarを使用すると、同じ更新/挿入がうまく動作します。Data Directで照会を更新/挿入するジャーナル化されていない表用DB2 JDBCドライバー

しかし、私たちのnode.jsアプリケーションでは、db2.jar経由でjt400.jarではなく接続されています。私はノードの代わりにJavaコードを使用する場合、私は同じ問題に直面しています。私はdb2.jarに接続されているリスのクライアントで更新クエリの下に使用していた -

UPDATE MSSTQACEYK.MXAPGI001 SET PRCSD = 'Y' WHERE ORDNO = 'P544901' 

それはどちらか、両方の場合には、エラーの下に投げ、私はNode.jsのまたはJavaを使用する -

以下
Error: [DataDirect][DB2 JDBC Driver][DB2]Error occured with SQLCode -7008 with the following parameters: MXAPGI001 , MSSTQACEYK, 3, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null 
SQLState: 55019 
ErrorCode: -7008 

は、サンプルのJavaコードであります事前に

{ 
    String sql = "INSERT INTO MSSTQACEYK.MXAPGI001 (ORDNO) VALUES ('P544901') "; 
    Class.forName("com.ddtek.jdbc.db2.DB2Driver"); 
    String url = "jdbc:datadirect:db2://hostname:port;DatabaseName=APG;"; 
    Connection con = DriverManager.getConnection(url, "UName","Pass"); 
    PreparedStatement preparedStatement = con.prepareStatement(sql); 
    preparedStatement.executeUpdate(); 
    System.out.println("Record Inserted"); 
} 

おかげ - - 私は、この動作を確認するために使用さ

答えて

0

IBM J DBCドライバには、トランザクション分離というプロパティがあります。これを「none」に設定すると、非ジャーナル化されたテーブルに更新/挿入できます。

DataDirectドライバがそのプロパティをサポートしているかどうかを確認してください。

IBM i JDBC docs

+0

我々はsetIsolationLevel(でJavaで行うことができますこの)が、私はデータ層としてのNode.jsを持っていますし、ここで私は、このような任意のオプションを持っていないです。これを行う他の方法はありますか? –

関連する問題