본문 바로가기

반응형

2020/06

(2)
소켓 프로그래밍 - '네트워크에 중복된 이름이 있기 때문에 연결되지 않았습니다' 윈도우 소켓 프로그래밍을 할때 특히 대량 접속 프로그램을 만들때 저 에러가 뜬다면 프로세스에서 생성 할수 있는 소켓이 한계에 도달했다는 의미다. 프로그램이 active close를 하고 있는지 확인하고, 만일 active close를 하고 있다면 linger option을 꺼줘야 한다. 여기서 active close라는 것은 상대방이 close를 하는 것이아니라 프로그램 자신이 close를 호출하는 것을 의미한다. close를 호출하는 쪽은 TIME_WAIT 상태에 빠지게 되어 일정 시간동안 소켓 리소스를 해제하지 않고 유지하게 된다. 예를 들어 서버라면 수많은 클라이언트들이 접속을 할텐데 그 연결들에 대해 서버가 close를 호출하게 되면 TIME_WAIT에 빠진 소켓들을 다른 클라이언트로 부터의 연결..
MySQL transaction isolation level MySQL의 innoDB에서 제공하는 transaction isolation level. 한글로 하면 '트랜잭션 격리 수준'이라고 한다. 트랜잭션이란? 트랜잭션 격리 수준에 대해 알아보기 앞서, 트랜잭션이 무엇인지 먼저 알아보자. 트랜잭션이란, 데이터베이스의 상태를 변경하기 위해 수행하는 '작업의 단위'라고 정의 할수 있다. 예를 들어 데이터베이스로 부터 select하고 그 결과에 따라 update를 통해 해당 값을 변경하기까지의 모든 과정을 하나의 트랜잭션이라고 할수 있다. 트랜잭션이 하나의 작업 단위로서 올바르게 동작하기 위해서는 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation, 독립성이라고 표현하기도 한다), 지속성(Durability). 이 4가지 조건이 만족..

반응형