JNDI 3

[트러블슈팅] DB 세션이란? 롱 아이들 세션이 쌓이면 생기는 진짜 문제

원래는 인터페이스로 통신해 해당 기능을 실행하던 구조였는데직접 시스템 자체에서 해당 기능을 처리하라는 요청이 들어왔다. 급하게 대응하기 위해 DB LINK를 신청해서 다른 DB에 INSERT하는 방식으로 로직을 변경했고단순한 작업이라 금방 끝냈다고 생각했다. 그런데 바로 다음날 DBA팀에서 연락이 왔다.“해당 DB에 세션이 갑자기 급증했는데, 혹시 무슨 작업하셨어요?” 확인해보니, DB LINK를 통해 연결된 세션이 자동으로 닫히지 않아INACTIVE 상태로 계속 남아 있었던 것... 이 일을 계기로, DB 세션과 롱 아이들 세션 이슈의 심각성을 처음 알게 되었고정리 차원에서 이 글을 작성하게 되었다. DB 세션이란?DB 세션은 클라이언트(자바 애플리케이션 등)가DB에 접속할 때 생성되는 하나의 연결..

트러블슈팅 2025.04.21

[JAVA] JNDI란 무엇인가? 그리고 언제 사용하는가?

JNDI란?JNDI(Java Naming and Directory Interface) 는Java 기반 웹 애플리케이션에서 DB 연결 정보(DataSource) 를 외부 설정으로 분리하고필요할 때 코드에서 lookup 방식으로 꺼내 쓰는 기술임 쉽게 말하면“DB 접속 정보를 미리 서버(Tomcat 등)에 등록해두고 앱에서는 그냥 이름만 불러서 사용하는 방식”임 전체 흐름 한눈에 보기 (위 다이어그램 설명)TOMCAT 설정 → JNDI에 DataSource 등록됨 ↓ Java Application이 JNDI에서 lookup() ↓ DataSource에서 Connection 꺼냄 ↓ DB에 쿼리 날림✅ 흐름 설명 (실제 동작 순서)Tomcat에서 server.xm..

[Oracle] 오라클 디비링크(DB LINK)란?

오라클에서 외부 DB와 연결할 때 사용하는 DB LINK는간편하지만 세션 부하 등 주의가 필요한 기능이다. DB LINK란?DB_LINK(Database Link)는 오라클 DB에서 다른 원격 DB의 객체(테이블, 뷰 등)를로컬 DB에서 직접 접근할 수 있도록 만들어주는 기능이다. 운영 중 서로 다른 DB 인스턴스를 연결해야 할 상황이 생깁니다. 예를 들어 A 시스템에서 B 시스템의 테이블에 접근하거나 데이터를 쓰고 싶을 때가장 간편한 방법 중 하나가 바로 DB LINK입니다. 사용 예시 ✅ SELECT 예시 SELECT * FROM customer@ERP_LINK; ✅ INSERT 예시 INSERT INTO log_table@LOG_DB_LINK (id, message) VALUES (1, '처..

DataBase/Oracle 2025.04.19
728x90