반응형

ulimit -a 명령어를 실행해보면 아래와 같이 나타남

여기서 주의깊게 봐야 하는 정보는 file size로 소켓이 최대 접속 가능한 개수를 나타난다.
보통 1024개가 기본 설정인데 어지간한 소켓 서버라면 1024로는 턱없이 부족할터
 
파일 오픈 개수를 늘려야 한다.

root 권한으로 접속하여 /etc/security/limits.conf 열어서 아래처럼 수정하면 된다.

vi /etc/security/limits.conf
* soft nofile 400000
* hard nofile 400000

저장 후 터미널을 새로 로그인 하여 ulimit -a 명령어를 실행해보면 지정한 대로 접속 개수가 증가되어 있음을 확인할 수 있고 client socket의 connection역시 성공적으로 연결됨을 확인할 수 있을 것이다.

반응형
Posted by Hippalus
,

반응형

appsettings.json에 db connection string을 적어두고 이를 가지고와 db connection을 맺어줄 때 사용되는 코드

            var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())

           .AddJsonFile("appsettings.json", optional: false);

            IConfiguration configuration = builder.Build();

            string defaultConnectionString = configuration.GetValue<string>("ConnectionStrings:DEVDB");

            using (var conn = new SqlConnection(defaultConnectionString))   

           {

                conn.Open();

                using (var cmd = new SqlCommand())

                {

                    cmd.Connection = conn;

                    cmd.CommandText = @"

                                    SELECT

                                        M.M_USERID, M.M_USERNAME, M.M_REGDATE

                                        , MD.MD_ADDRESS, MD.MD_EMAIL, ....., JOBCD.CDNAME AS JOBCDNAME

                                    FROM 

                                        S_MEMBER AS M

                                        INNER JOIN S_MEMBERDETAIL AS MD ON M.M_IDX = MD.M_IDX AND MD.MD_DEL = 0

                                        INNER JOIN S_CODE AS JOBCD ON MD.MD_JOBCD = JOBCD.CDSUB

                                        INNER JOIN S_CODE AS JOBSUBCD ON MD.MD_JOBSUBCD = JOBSUBCD.CDSUB

                                    WHERE

                                        M.M_IDX = @M_IDX

                                        AND M.M_DEL = 0

                                    ";

 

                    cmd.Parameters.AddWithValue("@M_IDX", idx);

                    var reader = cmd.ExecuteReader();

                    reader.Read();

                    var member = new AdminMember();

                    member.Idx = idx;

                    member.UserId = (string)reader["M_USERID"];

                    member.UserName = (string)reader["M_USERNAME"];

                     ......   

                    member.DetailJobSubCd = (string)reader["MD_JOBSUBCD"];

                    member.DetailContent = (string)reader["MD_CONTENT"];

                    reader.Close();

                    return member;

                }

                return null;

            }

반응형
Posted by Hippalus
,