Background Image

FORUM

조회 수 2004 추천 수 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
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 36
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4458
3854 8.4.4 charset. Collation 확인 방법 네오랜덤 2023.05.24 186
3853 8.4.4버젼 charset 확인 3 네오랜덤 2023.05.23 190
3852 쿼리 속도 차이 질문 1 하얀미스 2023.05.18 143
3851 spring boot 에서 HikariPool-1 - Driver does not support get/set network timeout for connections. (java.lang.UnsupportedOperationException) 질문 드립니다. 3 kjaminam 2023.05.18 781
3850 cci 프로그래밍에서 DB LINK 관련 문의 4 jjune1206 2023.05.18 131
3849 큐브리드 매니저 실행이 오류 1 file 청주시청 2023.05.18 101
3848 ddl 추출 1 네오랜덤 2023.05.17 104
3847 하나의 쿼리에서 복수 테이블 업데이트 방법 문의 4 도담도담 2023.05.17 134
3846 cubrid driver 설치 문의 1 고구망구망 2023.05.08 438
3845 큐브리드 매니저 접속 이 안됩니다. 확인 요청 드립니다. 1 뿡이 2023.04.28 128
3844 Fk값 가져오기 2 file 네오랜덤 2023.04.24 166
3843 서버 메모리 교체 및 ha 상 데이터 삭제 절차 1 레피엘 2023.04.20 112
3842 java stored procedure 에 loadjava 로 jar 파일 로드 시 java.lang.ClassNotFoundException 에러 문의 3 개미가불쌍해 2023.04.18 147
3841 Cubrid stored procedure 스케쥴 등록 형식 2 Roy 2023.04.17 112
3840 암호화 함수 MDB_ENC 질문입니다 1 BE-DEV 2023.04.17 82
3839 auto_increment 추가 방법 문의 1 부패방지운영팀 2023.04.14 265
3838 CUBRID 사용자 계정 생성 관련 문의 1 몽키스패너 2023.04.14 132
3837 order by 이후 rownum이 의도와 다르게 찍힙니다. 2 바보똥개 2023.04.14 143
3836 백업 및 복구 시 cubrid 버전 간 호환 문의 1 플레이어블 2023.04.13 71
3835 centos8에서 쉘스크립트 실행시 csql: command not found 오류 발생 6 kjn4345 2023.04.13 179
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 ... 200 Next
/ 200

Contact Cubrid

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