output parameter not allowed as argument list prevents use of rpc

2016/06/29 14:50

서비 JAVA

jTDS Driver + OUTPUT 파라메터가 있는 + Stored Procedure 를 호출하는 경우 발생할 수 있는 데이터 바인딩 이슈.
jTDS Driver 의 경우 OUTPUT 파라메터가 있는 SP 를 수행할 때 RPC 방식을 이용하여 실행 성능 향상을 꾀하는데…
이 때는 SP 의 모든 변수는 바인딩 변수를 사용해야 하며, { call sp_name ( ?, ?, ‘value’, ? , ? OUTPUT ) } 처럼 
바인딩 변수와 값 직접 할당을 동시에 기술 할 수 없습니다.

공식 문서에는 혼용해서 사용은 가능하지만 그렇게 할 경우 RPC모드가 아닌 프로시저 일반실행 모드로 동작한다고 기술되어 있지만, 실제는 output parameter not allowed as argument list prevents use of rpc 익셉션이 발생하는 경우가 있음...
이건 DBMS나 JDBC 접속 설정에 따라 달라지는것 같긴한데... 거기까진 확인 못했음.
2016/06/29 14:50 2016/06/29 14:50
이 글의 관련글
    이글의 태그와 관련된 글이 없습니다.
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다

apache kafka, zookeeper 재기동 후 Unexpected exception, exiting abnornally java.io.EOFException 발생.

정기 점검으로 인해 운영중인 카프카/주키퍼를 재기동했더니  Unexpected exception, exiting abnornally java.io.EOFException 이 발생하면서 브로커가 정상적으로 동작을 하지 못하는 현상이 발생하였다.
원인은 Disk Full로 주키퍼의 트랜젝션 파일을 온전히 저장하지 못해서 발행하는 것이었다.

다음과 같은 조치를 통해 정상화 할 수 있다.

우선 카프카용 주키퍼의 데이터 경로 [KAFKA_HOME]/zookeeper-data/version2 에서
$ ls -lat 
명령으로 가장 최근에 만들어진 로그와 스냅샷 파일을 확인한 후
사이즈가 0이거나 마지막에 작성된 로그를 삭제하고 재기동하면 된다.

후속조치로는 [KAFKA_HOME]/logs 아래에 빼곡히 들어차 있는 controller.log , server.log, state-change.log 들을 주기적으로 삭제하는 스크립트를 만들고 크론으로 등록했다.
http://heyo.net/xe/prog_tip/1984(새 창으로 열기)
 #!/bin/sh
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  
 cd [KAFKA_HOME_PATH]/logs
 find ./* \( -name 'controller.log.*' -o -name 'server.log.*' -o -name 'state-change.log.*' \) -mtime +30 -exec rm -f {} \;
 find ./* \( -name 'controller.log.*' -o -name 'server.log.*' -o -name 'state-change.log.*' \) ! -name '*.Z' -mtime +7 -exec compress {} \;
 




2016/06/03 13:27 2016/06/03 13:27
이 글의 관련글
    이글의 태그와 관련된 글이 없습니다.
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다