Java から RPG プログラムを呼び出そうとしています。次のように DriverManager を使用して、プログラムを正しく実行できます。
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呼び出しを実行する前に、このテーブルに対して挿入と削除を行っています...アイデアはありますか? 処理後にデータベースへのすべての接続を閉じても、テーブルがロックされたままになる原因は何ですか。