2010-06-23 2 views
0

iseries 시스템에서 Java 프로그램을 호출 중이며 프로그램에 대한 첫 번째 호출은 조용합니다. 다음 통화는 빠르지 만 특정 시간 동안 기다리면 통화가 다시 느려집니다.iseries에서 JVM 실행 유지

JVM을 계속 실행하려면 어떻게해야합니까? 아니면이 문제를 해결할 다른 방법이 있습니까?

감사합니다.

+0

메모리 풀 사용이나 다른 문제가 아니라 "JVM을 계속 실행"하는 것이 어떻게 결정 되었습니까? – user2338816

답변

2

최신 JVM (Java 용 IBM Technology)이 가장 빠릅니다. 일반적인 문제는 JVM 자체의 jar가 메모리에 캐시 된 다음로드하는 것이 빠르다는 것입니다. 그렇지 않은 경우 필요에 따라 디스크에서로드해야하며 속도가 매우 느립니다. (실제로 Windows에서이 과정에 대한 가속화 프로세스가 있습니다.)

X 초마다 JVM의 모든 병을 통해 읽거나,이를위한 전통적인 접근 방식 인 "dataqueues를 통해 데몬 JVM과 통신"을 구현하는 작은 스크립트를 고려할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그러한 스크립트의 예를 들어 주시고 그것을 수행하는 방법 및 데이터 대기열을 구현하는 방법에 대한 몇 가지 문서를 알려주십시오. – user271858

+0

현재 가장 좋은 방법은 JVM을 자체 하위 시스템에서 실행시키는 것입니다. –

2

Java 응용 프로그램을 항상 실행중인 서버로 만드는 것이 좋습니다. 기본 응용 프로그램은 tcp 또는 데이터 대기열을 사용하여 서버에 수신 요청을 & 보낼 수 있습니다.

그런 식으로 서버의 시작 비용은 한 가지 일 뿐이며 사용자가 결코 그걸 겪지 않아도됩니다.

0

JVM이 실행되는 서브 시스템에 메모리를 할당합니다. 정의에 의해 정적 클래스가 메모리에있을 필요가 없기 때문에

정적 메소드를 호출하지 마십시오.

* this를 사용하여 메소드를 호출하십시오.

행운을 빌어 요

+0

'this'는 암시 적입니다. –

+0

암시 적은 정적과 완전히 다른 것입니다. 정의에 의해 각 호출에 대해로드되고 언로드되므로 정적 Java 클래스를 호출하지 마십시오. * lr을 반환하는 rpg를 호출하는 것과 같습니다. 문제가 속도이거나 귀하의 경우 속도가 얼마나 빠른지는 좋은 방법이 아닙니다. – danny117

+0

IBM i 컨텍스트에서 "프로그램 호출"은 컨텍스트에 따라 여러 가지가 될 수 있습니다. 예를 들어 RUNJVA (내가 가장 잘 알고있는 것)를 호출하거나 RPG 프로그램을 통해 (내가 말하는 것은 당신이 이야기하는 것일 수있다). 의미가 다른 것처럼 보입니다. 영업 이익에서의 설명이 필요할 수 있습니다. (그리고 나는 당신이 다른 뭔가로 "젠체하는 사람"을 편집 해 주어서 다행이다) –