gpt4 book ai didi

java - 是否可以从 RPG 重新使用在另一个 OS/400 作业中创建的 JVM?

转载 作者:行者123 更新时间:2023-11-29 06:38:51 25 4
gpt4 key购买 nike

我有一个调用 Java 类的 RPG PGM,如果 Job 中没有 JVM,RPG 运行时会在调用 Java 类时添加一个。此后,来自同一个 RPG 程序或同一个作业中的另一个 RPG 程序的所有调用都使用同一个 JVM。

问题是,如果我从另一个 Job 启动同一个 PRG 程序,它会启动另一个 JVM,基本上我有一个 JVM 用于 Job。

我想知道是否有可能只有一个 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());
}
}

最佳答案

快速回答是否定的。

更长的答案是,如果您有一个永无止境的服务器作业正在运行,它接受来自各个客户端的请求,那么所有客户端实际上都会重用由服务器作业启动的 JVM。

创建此服务器作业的一种方法是使用数据队列将数据从客户端传递到服务器作业,然后返回。在机器 IPL 时启动服务器作业(将自动启 Action 业条目添加到批处理子系统)并让它通过 QRCVDTAQ 监听数据队列.该作业将启动 JVM,调用 Java 方法并通过 QSNDDTAQ 返回答案。 .每个客户端都会做同样的事情,在数百个单独的作业和一个服务器作业之间提供双向通信。

关于java - 是否可以从 RPG 重新使用在另一个 OS/400 作业中创建的 JVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15660505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com