Background Image

FORUM

조회 수 221 추천 수 0 댓글 16
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Cnetos 7
CUBRID Ver.
CUBRID 9.3 (9.3.9.0002) (64bit release build for linux_gnu) (Aug  4 2017 11:55:22)
CUBRID TOOL Ver.
사용하지 않음
응용 환경(API)
java

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------ 

최초 JDK 1.7 이었으나 큐브리드 포럼에서 1.7에서 안된사례가 있어서 1.8로 올려서 진행중입니다.



1. .bash_profile 내용

#export MAVEN_HOME=/root/apache-maven-3.0.5

export MAVEN_HOME=/root/.jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven_3.2.5

export EAP_HOME=/data/jboss-eap-6.3

export JBOSS_HOME=/data/jboss-eap-6.3

#export JAVA_HOME=/data/jdk/jdk1.7.0_80

export JAVA_HOME=/data/jdk/jdk1.8.0_271

#export JAVAPTH=${JAVA_HOME}/bin

export JAVAPATH=${JAVA_HOME}/bin

PATH=$PATH:$HOME/bin:${JAVA_HOME}/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/lib/amd64/server

PATH=$PATH:$MAVEN_HOME/bin:


export PATH


#-------------------------------------------------------------------------------

# set CUBRID environment variables

#-------------------------------------------------------------------------------

. /root/.cubrid.sh


SVN_EDITOR=/usr/bin/vim

export SVN_EDITOR

export DA_INST_HOME=/root/dbms_api

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/dbms_api:$JAVA_HOME/lib:$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server

~


2. JAVA 버전

[root@dev01 ~]# java -version

java version "1.8.0_271"

Java(TM) SE Runtime Environment (build 1.8.0_271-b09)

Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)


3. cubrid.conf 내용

[root@dev01 ~]# cd $CUBRID/conf

[root@dev01 conf]# cat cubrid.conf |grep java

java_stored_procedure=yes

[root@dev01 conf]# 


4. JDK 설치 및 cubrid.conf 설정 후 cubrid server restart 로 재시작 해줌.


5. SpCubrid.java 파일 내용

public class SpCubrid{

    public static String HelloCubrid() {

        return "Hello, Cubrid !!";

    }


    public static int SpInt(int i) {

        return i + 1;

    }


    public static void outTest(String[] o) {

        o[0] = "Hello, CUBRID";

    }

}


6. javac 컴파일 및 정상 확인


7. 함수생성

create function hello() return string as language java name 'SpCubrid.HelloCubrid() return java.lang.String';


8. 실행

csql> call hello() into :Hello;


In the command from line 1,


ERROR: Java VM is not running.



0 command(s) successfully processed.



현재 JVM이 계속 떠있지 않다는 에러메세지가 출력되며 정상적으로 실행이 되지 않습니다.


libjvm.so 파일이 있는 위치는 $JAVA_HOME/jre/lib/amd64/server 에 존재하며 

LD_LIBRARY_PATH 및 PATH 에도 등록한 상태이나 정상적으로 실행이 되지 않습니다.


어떻게 하여야할지 확인 부탁드립니다.


  • ?
    JustBeNormal 2020.10.23 14:22
    정상적으로 실행되는 서버에서는 loadjava 를 실행하지 않고 실행하였을 경우 ERROR: Stored procedure execute error: java.lang.ClassNotFoundException: SpCubrid
    와 같은 에러가 나오는것으로 보아 loadjava를 하지 않은 것은 관계가 없는 것으로 보입니다.
  • ?
    원종민 2020.10.26 10:24
    OS에서 JAVA_HOME 경로를 찾지 못하는 경우 같습니다.

    아래는 테스트 내용입니다.

    1, JAVA_HOME 경로를 틀리게 설정 해 OS에서 jdk를 인식하지 못 할 경우 service start 시 "WARNING: Java VM library is not found: (null)." 라는 문구가 발생합니다.

    1-1. .bash_profile 확인
    $ cat .bash_profile 
    ...
    . /home/cubrid9/.cubrid.sh

    1-2. .cubrid.sh 확인
    $ cat .cubrid.sh 
    CUBRID=/home/cubrid9/CUBRID
    CUBRID_DATABASES=/home/cubrid9/CUBRID/databases
    ld_lib_path=`printenv LD_LIBRARY_PATH`
    if [ "$ld_lib_path" = "" ]
    then
    LD_LIBRARY_PATH=$CUBRID/lib
    else
    LD_LIBRARY_PATH=$CUBRID/lib:$LD_LIBRARY_PATH
    fi
    SHLIB_PATH=$LD_LIBRARY_PATH
    LIBPATH=$LD_LIBRARY_PATH
    PATH=$CUBRID/bin:$CUBRID/cubridmanager:$PATH
    export CUBRID
    export CUBRID_DATABASES
    export LD_LIBRARY_PATH
    export SHLIB_PATH
    export LIBPATH

    export JAVA_HOME=/usr/lib/jvm/java/test_path
    export PATH=$JAVA_HOME/bin:$PATH

    1-3. server 확인
    $ cubrid service start
    ...
    @ cubrid server start: demodb

    This may take a long time depending on the amount of recovery works to do.
    WARNING: Java VM library is not found: (null). 
    Consequently, calling java stored procedure is not allowed.

    CUBRID 9.3

    ++ cubrid server start: success
    ...

    1-4. csql 접속 후 SP 실행
    csql> call hello() into :Hello;

    In the command from line 1,

    ERROR: Java VM is not running.

    2. JAVA_HOME 올바른 경로로 설정 해 OS에서 jdk를 인식 할 경우

    2-1. .bash_profile 확인
    $ cat .bash_profile 
    ...
    . /home/cubrid9/.cubrid.sh

    2-2. .cubrid.sh 확인
    $ cat .cubrid.sh 
    CUBRID=/home/cubrid9/CUBRID
    CUBRID_DATABASES=/home/cubrid9/CUBRID/databases
    ld_lib_path=`printenv LD_LIBRARY_PATH`
    if [ "$ld_lib_path" = "" ]
    then
    LD_LIBRARY_PATH=$CUBRID/lib
    else
    LD_LIBRARY_PATH=$CUBRID/lib:$LD_LIBRARY_PATH
    fi
    SHLIB_PATH=$LD_LIBRARY_PATH
    LIBPATH=$LD_LIBRARY_PATH
    PATH=$CUBRID/bin:$CUBRID/cubridmanager:$PATH
    export CUBRID
    export CUBRID_DATABASES
    export LD_LIBRARY_PATH
    export SHLIB_PATH
    export LIBPATH

    export JAVA_HOME=/usr/lib/jvm/java
    export PATH=$JAVA_HOME/bin:$PATH

    2-3. server 확인
    $ cubrid service start
    ...
    @ cubrid server start: demodb

    This may take a long time depending on the amount of recovery works to do.

    CUBRID 9.3

    ++ cubrid server start: success
    ...

    2-4. csql 접속 후 SP 실행
    csql> call hello() into :Hello;

    === <Result of CALL Command in Line 1> ===

      Result              
    ======================
      'hello !!'  
  • ?
    JustBeNormal 2020.10.26 14:29
    cubrid server restart 혹은 cubrid server start 시에 WARNING: Java VM library is not found: (null). 와 같은 에러메세지는 발생하지 않았습니다.

    상기 테스트 결과에서 나타낸 /usr/lib/jvm/java/test 경로는 임의 경로이라 가정하고 /usr/lib/jvm/java 는 jdk 가 설치된 경로인가요?
  • ?
    원종민 2020.10.26 14:42
    /usr/lib/jvm/java 경로는 JAVA의 JDK가 모여있는 곳으로, 보통 /usr/lib/jvm 안에 위치해 있습니다.
  • ?
    JustBeNormal 2020.10.26 15:01
    /usr/lib/jvm/ 하위에 아무것도 존재하지 않을 때는 신규 jdk 설치한 후 해당 경로로 설정하면 될까요?
  • ?
    JustBeNormal 2020.10.26 15:26
    1. jdK 경로 /root/jdk

    2.cubrid.sh 내용
    [root@dev01 ~]# vi .cubrid.sh
    CUBRID=/data/cubrid/CUBRID
    CUBRID_DATABASES=/data/cubrid/CUBRID/databases
    ld_lib_path=`printenv LD_LIBRARY_PATH`
    if [ "$ld_lib_path" = "" ]
    then
    LD_LIBRARY_PATH=$CUBRID/lib
    else
    LD_LIBRARY_PATH=$CUBRID/lib:$LD_LIBRARY_PATH
    fi
    SHLIB_PATH=$LD_LIBRARY_PATH
    LIBPATH=$LD_LIBRARY_PATH
    PATH=$PATH:$CUBRID/bin:$CUBRID/cubridmanager:/root/jdk/lib:/root/jdk/jre/lib/amd64
    export JAVA_HOME=/root/jdk
    export CUBRID
    export CUBRID_DATABASES
    export LD_LIBRARY_PATH
    export SHLIB_PATH
    export LIBPATH
    export PATH
    ~


    3. /root/jdk/jre/csql.err 에러내용
    Time: 10/26/20 15:13:10.650 - ERROR *** file ../../src/jsp/jsp_cl.c, line 2782 ERROR CODE = -902 Tran = 1, EID = 1
    Java VM is not running.

    Time: 10/26/20 15:13:10.650 - SYNTAX ERROR *** file ../../src/compat/db_vdb.c, line 1001 ERROR CODE = -492 Tran = 1, EID = 2
    Java VM is not running.

    *** The previous error message is the last one. ***


    Time: 10/26/20 15:21:40.941 - ERROR *** file ../../src/jsp/jsp_cl.c, line 2782 ERROR CODE = -902 Tran = 2, EID = 1
    Java VM is not running.

    *** The previous error message is the last one. ***

    4. cubrid 서버 재시작
    [root@dev01 ~]# cubrid server restart
    @ cubrid server stop: DATAEYE

    Server DATAEYE notified of shutdown.
    This may take several minutes. Please wait.
    ++ cubrid server stop: success
    @ cubrid server stop: BDPBDCISN2

    Server BDPBDCISN2 notified of shutdown.
    This may take several minutes. Please wait.
    ++ cubrid server stop: success
    @ cubrid server stop: PDRMS

    Server PDRMS notified of shutdown.
    This may take several minutes. Please wait.
    ++ cubrid server stop: success
    @ cubrid server start: DATAEYE

    This may take a long time depending on the amount of recovery works to do.

    CUBRID 9.3

    ++ cubrid server start: success
    @ cubrid server start: BDPBDCISN2

    This may take a long time depending on the amount of recovery works to do.

    CUBRID 9.3

    ++ cubrid server start: success
    @ cubrid server start: PDRMS

    This may take a long time depending on the amount of recovery works to do.

    CUBRID 9.3

    ++ cubrid server start: success


    5. hello 실행

    csql> call hello() into :Hello;

    In the command from line 1,

    ERROR: Java VM is not running.


    0 command(s) successfully processed.
    csql> 

    jdk 설정관련해서는 특이점이 보이지 않는데 계속 jvm이 실행되지 않습니다.
  • ?
    JustBeNormal 2020.10.26 15:51
    jdk 버전을 1.7 1.8 여러가지로 해보아도 동일한 결과입니다....
  • ?
    JustBeNormal 2020.10.26 16:06
    jdk 를 1.6, 1.7. 1.8 모두 각각 설치하여 테스트해보았지만 모두

    csql> call hello() into :Hello;

    In the command from line 1,

    ERROR: Java VM is not running.


    0 command(s) successfully processed.
    csql>

    가 발생하여 실행이 되지 않습니다...

    확인하시기 위해 어떤 정보들을 더 드려야 할까요?
  • ?
    큐브리드_김주현 2020.10.26 16:14
    큐브리드를 이용해주셔서 감사합니다.

    사용하신 OS가 linux계열로 인지하고 작성하였습니다.

    $> su - cubrid
    $> echo $CUBRID : cubrid엔진 정상적인지 확인
    $> echo $JAVA_HOME : java경로가 맞는지 확인
    $> java -version
    $> javac -version 으로 정상적으로 버전 나오는지 확인
    $> echo $LD_LIBRARY_PATH : LD_LIBRARY_PATH출력되는지 확인
    ex> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/lib/amd64:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/lib/amd64/server:/home/cubrid/CUBRID/lib

    JAVA_HOME/lib/amd64와 JAVA_HOME/lib/amd64/server이 잘 설정되었는지 확인해보세요
    해당 위치에 "libjawt.so"가 존재하는지 확인해보세요..

    추가로 https://www.cubrid.org/manual/ko/10.1/sql/jsp.html#jsp-environment-configuration 를 참조하셔서 무엇이 문제인지 검토해 보시면되겠습니다.
    감사합니다.
  • ?
    JustBeNormal 2020.10.26 16:38
    cubrid 설치 유저는 root 입니다.
    [root@dev01 ~]# echo $CUBRID
    /data/cubrid/CUBRID
    [root@dev01 ~]# echo $JAVA_HOME
    /root/jdk
    [root@dev01 ~]# java -version
    java version "1.8.0_251"
    Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
    Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
    [root@dev01 ~]# javac -version
    javac 1.8.0_251
    [root@dev01 ~]# echo $LD_LIBRARY_PATH
    /data/cubrid/CUBRID/lib:/data/cubrid/CUBRID/lib:/data/cubrid/CUBRID/lib:/data/cubrid/CUBRID/lib:/data/cubrid/CUBRID/lib:/data/cubrid/CUBRID/lib:/data/cubrid/CUBRID/lib:/data/cubrid/CUBRID/lib:/root/dbms_api:/root/dbms_api:/root/dbms_api:/root/dbms_api:/root/dbms_api:/root/dbms_api:/root/dbms_api:/root/dbms_api:/root/jdk/lib:/root/jdk/lib/amd64:/root/jdk/lib/amd64/server

    [root@dev01 ~]# find / -name libjawt.so
    /root/jdk/jre/lib/amd64/libjawt.so

    경로 모두 잡혀있으며 파일도 존재합니다.
  • ?
    JustBeNormal 2020.10.26 17:06
    LD_LIBRARY_PATH 부분만 별도로 추가합니다.

    LD_LIBRARY_PATH=$CUBRID/lib:$LD_LIBRARY_PATH:/root/dbms_api:/root/jdk/jre/lib/amd64/server:/root/jdk/lib/amd64:/root/jdk/lib
  • ?
    원종민 2020.10.26 17:18
    LD_LIBRARY_PATH 를 아래와 같이 수정 후
    LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server:$LD_LIBRARY_PATH

    $> echo $LD_LIBRARY_PATH 로 확인 해주세요.
  • ?
    JustBeNormal 2020.10.26 17:19
    [root@dev01 ~]# echo $LD_LIBRARY_PATH
    /data/cubrid/CUBRID/lib:/root/dbms_api:/usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64:/usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server
    [root@dev01 ~]#

    java 버전 변경하여 경로를 수정하였습니다.
  • ?
    오명환 2020.10.27 08:33
    다음 명령어를 통해 $JAVA_HOME/jre/lib/amd64/server/libjvm.so가 있는지 확인부탁드립니다.
    $> find $JAVA_HOME -name "*jvm*" -print
  • ?
    JustBeNormal 2020.10.27 09:03
    해당내용은 본문에도 적어두었습니다.

    libjvm.so 파일이 있는 위치는 $JAVA_HOME/jre/lib/amd64/server 에 존재하며

    LD_LIBRARY_PATH 및 PATH 에도 등록한 상태이나 정상적으로 실행이 되지 않습니다.
  • ?
    오명환 2020.10.27 17:07
    그럼, libjvm.so을 못 찾아서 나는 오류가 아닌 것 같습니다.
    다음과 같이 실행해보시고, java sp 관련 warninig 메세지가 출력되지 확인 부탁드립니다.

    (1) 절차 #1 -> standalone mode에서 jsp가 잘 동작하는지 확인
    $> cubrid service stop
    $> cub_master
    $> csql -S demodb
    csql> call hello();

    (2) 절차 #2 -> c/s mode에서 jsp를 위해 구동 준비가 잘 되는지 확인
    위의 경우에서 java sp가 잘 수행되는 경우
    $> cubrid server start demodb
    이때 경고(warning) 메세지가 출력되는지 확인 부탁드립니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 761
3317 인덱스를 엉뚱한 걸 타고 있습니다??! 6 file Philip Park 2020.11.26 56
3316 show heap 오류.. 5 밤톨이 2020.11.25 35
3315 데이터 업로드 관련 문의입니다. 2 왕왕초보왕왕 2020.11.25 20
3314 2가지 질문 드려도 될까요? 볼륨 자동증가 및 아카이브 로그 질문입니다. 4 덴드로비움 2020.11.24 31
3313 CLOB 관련 문의드립니다. 3 HYHY 2020.11.23 35
3312 DB연계 관련하여 문의 드립니다. 2 uzins 2020.11.23 21
3311 증분백업이 안됩니다. 3 file Philip Park 2020.11.19 38
3310 증분백업이 안됩니다. 15 file Philip Park 2020.11.19 84
3309 큐브리드 8버전 시스템 카탈로그 테이블,컬럼 정보 문의 1 sonoru 2020.11.17 16
3308 맥 빅서 업데이트 이후 문제 3 Seonu 2020.11.17 81
3307 큐브리드 merge into 실행후 return value에 대해 1 딸기맛숩 2020.11.16 23
3306 이러한 오류가 뜨는 이유가 뭔가요? 1 UK 2020.11.13 27
3305 [데이터 가져오기] 테이블 설정이 정상적이지 않습니다. 1 안녕 2020.11.11 20
3304 마이그레이션 툴 사용시 커멘트까지 내보내는 방법이 있나요? 1 워리파파 2020.11.10 20
3303 명령어로 다른 DB 서버에 접속 및 쿼리 1 프리오 2020.11.10 23
3302 cubrid 버전별 EOS 문의 1 큐브라떼 2020.11.10 23
3301 큐브리드 한글 정렬 문의 8 file gjgj 2020.11.10 54
3300 Cannot communicate with the broker or received invalid packet (UNION 사용) 에러 1 도여도여도여도여 2020.11.05 38
3299 큐브리드 브로커 질문드립니다. 1 안녕 2020.11.04 23
3298 failed to initialize broker shared memory 5 정민영 2020.11.04 38
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 166 Next
/ 166

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2147 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales