sourcecode

Relationship between JDBC sessions and Oracle processes

copyscript 2023. 9. 16. 09:50
반응형

Relationship between JDBC sessions and Oracle processes

We are having a problem with too many Oracle processes being created (over 2,000) when connections are limited to 1,100 (using C3P0)

Two questions:

  • What's the relationship between an Oracle process and a JDBC connection? Is one Oracle process created for each session? Is one created for every JDBC statement? No relationship at all?

  • Did you ever face this scenario, where you are creating more processes than JDBC connections?

Any comment would be really appreciated.

연결당 하나의 세션이 있습니다.연결 누수가 발생한 것 같습니다. 새 연결을 열고 제대로 닫히지 않는 곳이 있습니다.한 가지 가능성은 당신이 인터넷 내부의 연결을 열고, 사용하고, 닫는 것입니다.try차단하고 a에서 예외를 처리하고 있습니다.catch, 아니면 다른 이유로 일찍 돌아오거나.그렇다면 연결 닫기가 다음 시간 내에 완료되었는지 확인해야 합니다.finally그렇지 않으면 연결(따라서 세션)이 중단된 채로 남아 있을 수 있습니다.두 개의 연결을 같은 범위에 놓고 그 사이에 명시적인 클로즈 없이 여는 것도 이와 같은 작업을 수행할 수 있습니다.

I'm not familiar with C3PO so don't know how connections are handled, or where and how your 1100 limit is imposed; if it (or you) have a connection pool and the 1100 you refer to is the maximm pool size, then this doesn't sound like the issue as you'd hit the pool cap before the session cap.

볼 수 있습니다.v$session모든 세션이 JDBC에서 오고 있고 다른 세션이 연결되어 있지 않다는 것을 확인합니다.

Maybe you want to check if your server runs in dedicated or shared mode (you probably want to switch it to shared mode if you want to decrease the number of active processes).

You can check that by doing

select server from v$session

More information about process architecture

http://docs.oracle.com/cd/B19306_01/server.102/b14220/process.htm

Shared/Dedicated server mode

http://docs.oracle.com/cd/B10501_01/server.920/a96521/manproc.htm

ReferenceURL : https://stackoverflow.com/questions/9613447/relationship-between-jdbc-sessions-and-oracle-processes

반응형