我想從Java調用角色扮演程序。我可以使用DriverManager正確運行程序,如下所示:保存對象作業從Java角色扮演程序調用失敗
Connection conn = DriverManager.getConnection("jdbc:as400://" + "sys" + "", "username", "pass");
Statement stmt = conn.createStatement();
Boolean sqlBool = stmt.execute("call DB2.PROGRAM");
但是...這不是我想要做的方式。我想用JNDI連接到400並運行程序調用,就像我這樣做運行SELECT,UPDATES,DELETES等...
這裏是我到目前爲止的僞代碼,並且我在SaveObject上讓RPG失敗。
Context context = new InitialContext();
DataSource ds = (DataSource) context.lookup(JNDI_NAME);
Connection conn = datasource.getConnection();
Statement stmt = conn.createStatement();
Boolean sqlBool = stmt.execute("call DB2.PROGRAM");
這是JNDI連接問題還是RPG問題?
更新:看來,當SaveObject作業開始工作時,它表示表被鎖定。在運行RPG調用之前,我正在對該表執行插入和刪除操作...有什麼想法?即使我在處理後關閉了與數據庫的所有連接,也會導致表仍然被鎖定。