У меня есть RPG PGM, который вызывает класс Java, если в задании нет JVM, среда выполнения RPG добавляет ее при вызове класса Java. После этого все вызовы, поступающие из одной и той же программы RPG или другой программы RPG в том же задании, используют одну и ту же JVM.
Дело в том, что если я запускаю ту же программу PRG из другого задания, она запускает другую JVM, в основном у меня есть одна 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());
}
}