我有一个调用 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());
    }
}