我有一个调用 Java 类的 RPG PGM,如果 Job 中没有 JVM,则 RPG 运行时会在调用 Java 类时添加一个。此后,来自同一 RPG 程序或同一 Job 中的另一个 RPG 程序的所有调用都使用相同的 JVM。
问题是,如果我从另一个 Job 启动相同的 PRG 程序,它会启动另一个 JVM,基本上我有一个用于 Job 的 JVM。
我想知道是否有可能只有一个 JVM 并从其他作业附加到它。
任何帮助将不胜感激。
这就是我试图通过程序集成 RPG/JAVA 的方式。但是由于某种原因,线程没有被触发。
========
RPG CODE
========
d DSP_class c 'tests.mthreads.RPGProcessDispatcher'
d DSP s o class(*JAVA:DSP_class)
d DSP_new pr o extproc(*JAVA:
d DSP_class:
d *CONSTRUCTOR)
d DSP_dispatch pr n extproc(*JAVA:
d DSP_class:
d 'dispatch')
d dispatcher s like(DSP)
d dispatched s n
d i s 3i 0
/free
dispatcher = DSP_new();
for i=1 by 1 to 2;
dispatched = DSP_dispatch(dispatcher);
endfor;
*inlr=*on;
/end-free
RPGProcessDispatcher
====================
public boolean dispatch() {
if (freeThreads == 0) {
return false;
}
System.out.println("Tread @"+freeThreads);
decThreadsAvailable();
RPGSimpleProcess p = new RPGSimpleProcess();
p.registerRunCompleted(this);
Thread t = new Thread(p);
t.start();
return true;
}
RPGSimpleProcess
================
@Override
public void run() {
try {
Thread.sleep(100000);
notifyEnd();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}