database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9971 게시물 읽기
No. 9971
Listen / Notify 구현이 eclipse에서 작동이 안 되네요..
작성자
김창권(cg3980)
작성일
2018-05-04 12:30
조회수
5,777

인터넷에 치면 나오는 흔한 예제 소스코드(http://jdbc.postgresql.org/documentation/head/listennotify.html) 는 이클립스에서 잘 작동이 됩니다. 물론 db이름이랑 host, password 등등 다 설정했었을때요.

 

근데 저기서 listen 부분을 이클립스에서, notify를 제 postgresql 에서 작동시키려고 pgadmin에서 sql로 직접 실행했습니다.

이클립스

Statement st = conn.createStatement();

st.execute("LISTEN testpgadmin");

pgadmin에서

SQL 실행

notify testpgadmin

했는데 이클립스에서 아무 반응이 없네요. notify를 이클립스에서 실행하면 listener가 작동을 하고 pgadmin에서 작동하면 아무 반응이 없어요.

 

제가 notify를 잘못 사용하고 있는건가요? 최종 목표는 DB table이 insert가 작동한 순간 트리거가 작동해서 notify -> listener java process에 전달하려는 목푤르 가지고 잇는데 저기서 sql이 작동이 안 되면 애초에 자바 프로세스가 반응을 안 한다는 건데 제가 기능을 잘못 이해하고 있는건가요?

 

이 글에 대한 댓글이 총 2건 있습니다.

 java 에서 listen 쓰레드가 실행상태라면, 그 listen 명령이 실행된 서버, 데이터베이스에서 notify가 발생하면 정상 검출될것입니다. 

pgadmin 쪽에서도 그 서버에, 그 데이터베이스에 접속했고, notify를 발생했다면, 당연히 되야합니다.

java 쪽 listen 이 반응이 없다면, listen 쓰레드가 잘 실행되고 있는 상황인지 확인하고, 

그 listen 할 채널이름으로 정확하게 notify 했는지 확인해 보세요.

어쩌면 pgadmin 쪽에서 autocommit 을 꺼 두고 있고, commit을 안했기 때문일 수도 있겠네요. 

notify 명령도 트랜잭션 내에 포함될 수 있거든요. 

 

김상기(ioseph)님이 2018-05-04 15:48에 작성한 댓글입니다.

 이제보니 제가 JDBC 드라이버에 데이터베이스 이름을 잘못 넣었었네요 ㅠㅠ

 

김상기님 도움 많이 받고 있습니다. 항상 감사드립니다.

김창권님이 2018-05-04 19:06에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
9974[질문] 서비스가 대부분 프로시저로 구현 될 경우 문제는 없는지? [2]
나그네
2018-05-09
5720
9973[질문] 날짜, rank기준으로 데이터를 가로로 나타낼려고 합니다. [3]
문의드려요
2018-05-08
5390
9972게임DB에서 유저의 특정 로직마다 Table I/O 비용 계산법? [2]
youngba
2018-05-07
5536
9971Listen / Notify 구현이 eclipse에서 작동이 안 되네요.. [2]
김창권
2018-05-04
5777
99701:n 조회 [6]
초보
2018-04-30
5236
9969데이터베이스에 사용자가 새로 등록되는 걸 실시간으로 감지하고자 합니다 [2]
김창권
2018-04-26
5380
9968dblink 관련 질문입니다. [1]
초초보
2018-04-24
5485
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다