SMS연동 실습

🐶🦶·2022년 4월 6일
0

정리

목록 보기
1/9

그룹웨어에서 SMS를 발송할 수 있도록 SMS연동 실습을 진행해본다.
문자를 발송하는 업체들은 여러개가 있지만, 대표적으로 다오, SK텔레콤의 비즈, LG의 비즈 등 3가지 업체만 개발이 되어있다. (현재)

일단 마이그룹웨어의 스마트워크 > 프로젝트 모듈 및 기능 > SMS 연동 게시글을 참고하며 진행한다.
(https://my.naonsoft.com/ekp/main/home/homGwMain#at=TU5VMTc2MjAyMDA4MzI2OTU3NDcxMTg%3D)

SMS 연동

  • SMS 솔루션과 연동하여 웹 브라우저 UI에서 문자메세지(단문, 장문, 복합)를 발송
  • 발송 이력 관리, 발송건수 할당 및 제한, 전체 건수를 관리
  • 통계 제공
  • 대표적인 SMS 시스템(Daou, LG, SK) 연동 로직을 기본 탑재. 설정으로 변경 가능

Cherry-Pick하기

BT-CUSTOM의 GW7.1-sms-1.1 branch에서
[Module] SMS 연동 (smsBiz7.1-1.1) commit을 Cherry-Pick한다.

그럼 manageLeft.js파일이 충돌이 나는데, git staging에서 우측의 커밋 내용을 좌측의 커밋 내용으로 복붙하고 저장하면 에러가 사라진다.

그리고나서 manageLeft.js 변경 파일을 추가하여 commit을 진행한다.

DDL/DML

BT-CUSTOM의 GW7.1-sms-1.1 branch에서
[DDL/DML] 설치 DDL/DML 스크립트 - SMS 연동(smsBiz7.1_1.1) commit 내역을 찾아 그룹웨어 DB에 맞는 DDL과 DML을 쳐준다.

  • 95.maria_smsBiz_create_table.sql
-- 
CREATE TABLE SMS_BASIC_CONFIG (
  CMP_ID            VARCHAR(30)    NOT NULL                  COMMENT '회사고유번호',
  SMS_USE_TYPE      CHAR(1)        NOT NULL    DEFAULT 'W'   COMMENT '사용유형',
  SEND_MNG_YN       CHAR(1)        NOT NULL    DEFAULT 'Y'   COMMENT '발송내역 사용여부',
  TMPL_MNG_YN       CHAR(1)        NOT NULL    DEFAULT 'N'   COMMENT '템플릿 사용여부',
  USER_QUOTA_YN     CHAR(1)        NOT NULL    DEFAULT 'Y'   COMMENT '사용자별 할당 사용여부',
  TOP_USE_YN        CHAR(1)        NOT NULL    DEFAULT 'Y'   COMMENT 'TOP메뉴 표시유무',
  INPUT_DIRECT_YN   CHAR(1)        NOT NULL    DEFAULT 'Y'   COMMENT '주소록 직접입력 사용여부',
  INPUT_ORG_YN      CHAR(1)        NOT NULL    DEFAULT 'Y'   COMMENT '조직도 연락처 사용여부',
  INPUT_ADDR_YN     CHAR(1)        NOT NULL    DEFAULT 'Y'   COMMENT '주소록 연락처 사용여부',
  REG_DT            DATETIME           NULL                  COMMENT '등록일시',
  UPD_DT            DATETIME           NULL                  COMMENT '수정일시',
    CONSTRAINT PK_SMS_CONFIG PRIMARY KEY (CMP_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-기본환경설정';
-- 
CREATE TABLE SMS_QUOTA (
  CMP_ID              VARCHAR(30)       NOT NULL                    COMMENT '회사고유번호',
  TOT_QUOTA_CNT       DECIMAL(18,0)     NOT NULL    DEFAULT 10000   COMMENT '전체 할당 건수',
  SYS_QUOTA_SEND_CNT  DECIMAL(18,0)     NOT NULL                    COMMENT '시스템 할당 건수',
  DEFAULT_QUOTA_CNT   DECIMAL(18,0)     NOT NULL    DEFAULT 100     COMMENT '기본할당 건수',
  REG_DT              DATETIME              NULL                    COMMENT '등록일시',
  UPD_DT              DATETIME              NULL                    COMMENT '수정일시',
    CONSTRAINT PK_SMS_QUOTA PRIMARY KEY (CMP_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-할당건수';
-- 
CREATE TABLE SMS_USER_QUOTA (
  EMP_ID      VARCHAR(30)       NOT NULL      COMMENT '사용자고유번호',
  CMP_ID      VARCHAR(30)       NOT NULL      COMMENT '회사고유번호',
  AUTH_YN     CHAR(1)           NOT NULL      COMMENT '권한유무',
  USER_NAME   VARCHAR(255)      NOT NULL      COMMENT '수신처명',
  SEND_CNT    DECIMAL(18,0)     NOT NULL      COMMENT '실사용건수',
  REMAIN_CNT  DECIMAL(18,0)     NOT NULL      COMMENT '남은건수',
  QUOTA_CNT   DECIMAL(18,0)     NOT NULL      COMMENT '할당건수',
  REG_DT      DATETIME              NULL      COMMENT '등록일시',
  UPD_DT      DATETIME              NULL      COMMENT '수정일시',
    CONSTRAINT PK_SMS_USER_QUOTA PRIMARY KEY (EMP_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-유저할당건수';
-- 
CREATE TABLE SMS_MSG (
  MSG_ID             VARCHAR(30)       NOT NULL                  COMMENT '메세지아이디',
  CMP_ID             VARCHAR(30)       NOT NULL                  COMMENT '회사고유번호',
  EMP_ID             VARCHAR(20)       NOT NULL                  COMMENT '사용자고유번호',
  SEND_STATUS        CHAR(1)           NOT NULL    DEFAULT '0'   COMMENT '상태값',
  LINK_ID            VARCHAR(30)           NULL                  COMMENT '연동고유번호',
  RESERVE_YN         CHAR(1)           NOT NULL    DEFAULT 'N'   COMMENT '예약발송유무',
  RESERVE_DATE       VARCHAR(255)          NULL                  COMMENT '예약발송일시',
  RESERVE_NOTICE_YN  CHAR(1)               NULL    DEFAULT 'N'   COMMENT '예약발송쪽지알림유무',
  SEND_PHONE_NAME    VARCHAR(255)      NOT NULL                  COMMENT '발송번호명',
  SEND_PHONE         VARCHAR(255)      NOT NULL                  COMMENT '발송번호',
  DELEGATE_PHONE     VARCHAR(255)      NOT NULL                  COMMENT '수신대표번호',
  TITLE              VARCHAR(255)          NULL                  COMMENT '제목',
  CONTENT            VARCHAR(4000)     NOT NULL                  COMMENT '내용',
  SEND_TYPE          CHAR(1)           NOT NULL    DEFAULT 'S'   COMMENT '전송유형',
  SEND_DT            DATETIME              NULL                  COMMENT '발송일자',
  RECIPIENT_CNT      DECIMAL(18,0)     NOT NULL                  COMMENT '수신처수',
  RECIPIENT_JSON     LONGTEXT          NOT NULL                  COMMENT '수신처요약',
  REG_DT             DATETIME              NULL                  COMMENT '등록일시',
    CONSTRAINT PK_SMS_MSG PRIMARY KEY (MSG_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-발송내역';
-- 
CREATE TABLE SMS_MSG_RECIPIENT (
  MSG_ID          VARCHAR(30)       NOT NULL                  COMMENT '메세지아이디',
  RECIPIENT_ID    VARCHAR(30)       NOT NULL                  COMMENT '수신처아이디',
  STATUS          CHAR(1)           NOT NULL    DEFAULT '0'   COMMENT '상태값',
  LINK_RECI_ID    VARCHAR(30)           NULL                  COMMENT '수신처연동고유번호',
  LINK_RECV_DATE  DATETIME              NULL                  COMMENT '연동상태값수신일자',
  LINK_DATE       DATETIME              NULL                  COMMENT '문자발송시각',
  USER_TYPE       CHAR(1)           NOT NULL                  COMMENT '수신처구분',
  USER_NAME       VARCHAR(255)      NOT NULL                  COMMENT '수신처명',
  PHONE           VARCHAR(255)      NOT NULL                  COMMENT '수신처번호',
  DEPT_NAME       VARCHAR(255)          NULL                  COMMENT '부서명',
  POS_NAME        VARCHAR(255)          NULL                  COMMENT '직위명',
  OFC_NAME        VARCHAR(255)          NULL                  COMMENT '직책명',
  SORT_ORDR       DECIMAL(10,0)     NOT NULL                  COMMENT '순서',
  REG_DT          DATETIME              NULL                  COMMENT '등록일시',
    CONSTRAINT PK_SMS_MSG_TARGET PRIMARY KEY (MSG_ID,RECIPIENT_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-발송내역수신처';
-- 
CREATE TABLE SMS_TEMPLATE (
  TMPL_ID    VARCHAR(30)      NOT NULL                  COMMENT '템플릿고유번호',
  CMP_ID     VARCHAR(30)      NOT NULL                  COMMENT '회사고유번호',
  TMPL_TYPE  CHAR(1)          NOT NULL                  COMMENT '유형',
  EMP_ID     VARCHAR(30)          NULL                  COMMENT '사용자고유번호',
  TITLE      VARCHAR(255)         NULL                  COMMENT '제목',
  CONTENT    VARCHAR(4000)    NOT NULL                  COMMENT '내용',
  SEND_TYPE  CHAR(1)          NOT NULL    DEFAULT 'S'   COMMENT '전송유형',
  REG_DT     DATETIME             NULL                  COMMENT '등록일시',
  UPD_DT     DATETIME             NULL                  COMMENT '수정일시',
    CONSTRAINT PK_SMS_TEMPLATE PRIMARY KEY (TMPL_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-메시지템플릿';
-- 
CREATE TABLE SMS_BASIC_CONFIG_AUTH (
  TRGT_ID             VARCHAR(30)    NOT NULL                  COMMENT '타겟아이디',
  CMP_ID              VARCHAR(30)    NOT NULL                  COMMENT '회사고유번호',
  TRGT_TYPE           CHAR(1)        NOT NULL                  COMMENT '타겟 유형',
  LW_PRT_DEPT_INC_YN  CHAR(1)        NOT NULL    DEFAULT 'N'   COMMENT '하위부서포함여부',
  REG_DT              DATETIME           NULL                  COMMENT '등록일시',
    CONSTRAINT PK_SMS_BASIC_CONFIG_AUTH PRIMARY KEY (TRGT_ID,CMP_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-상세사용권한';
-- 
CREATE TABLE SMS_SEND_PHONE (
  SEND_PHONE_ID     VARCHAR(30)       NOT NULL      COMMENT '발송번호아이디',
  CMP_ID            VARCHAR(30)       NOT NULL      COMMENT '회사고유번호',
  SEND_PHONE        VARCHAR(255)      NOT NULL      COMMENT '발송번호',
  SEND_PHONE_NAME   VARCHAR(255)      NOT NULL      COMMENT '발송번호명',
  SORT_ORDR         DECIMAL(10,0)     NOT NULL      COMMENT '순서',
  REG_DT            DATETIME              NULL      COMMENT '등록일시',
    CONSTRAINT PK_SMS_SEND_PHONE PRIMARY KEY (SEND_PHONE_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-발송번호관리';
-- 
CREATE TABLE SMS_SEND_INPUT (
  CMP_ID          VARCHAR(30)    NOT NULL                  COMMENT '회사고유번호',
  USER_PHONE_YN   CHAR(1)        NOT NULL    DEFAULT 'Y'   COMMENT '사용자 휴대폰번호 사용여부',
  CMP_PHONE_YN    CHAR(1)        NOT NULL    DEFAULT 'Y'   COMMENT '사용자 회사번호 사용여부',
  LIST_PHONE_YN   CHAR(1)        NOT NULL    DEFAULT 'Y'   COMMENT '발송번호 목록 사용여부',
  SYS_PHONE       VARCHAR(30)        NULL                  COMMENT '시스템번호',
  REG_DT          DATETIME           NULL                  COMMENT '등록일시',
    CONSTRAINT PK_SMS_SEND_INPUT PRIMARY KEY (CMP_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-발송번호설정';
-- 
CREATE TABLE SMS_MASTER (
  CMP_ID                 VARCHAR(30)       NOT NULL                  COMMENT '회사고유번호',
  TOT_QUOTA_CNT          DECIMAL(18,0)     NOT NULL                  COMMENT '전체 할당 건수',
  SYS_SMS_YN             CHAR(1)           NOT NULL                  COMMENT '시스템알림문자허용유무',
  USER_QUOTA_INIT_TYPE   CHAR(1)           NOT NULL    DEFAULT 'N'   COMMENT '초기화유형',
  USER_QUOTA_INIT_DAY    VARCHAR(20)       NOT NULL                  COMMENT '초기화일',
    CONSTRAINT PK_SMS_MASTER PRIMARY KEY (CMP_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-지주사기본정보';
-- 
CREATE TABLE SMS_ATTACH (
  FILE_ID          varchar(30)       NOT NULL                 COMMENT '파일아이디',
  MSG_ID           VARCHAR(30)       NOT NULL                 COMMENT '메시지아이디',
  FILE_URL         VARCHAR(255)          NULL                 COMMENT '파일URL',
  FILE_NAME        VARCHAR(100)          NULL                 COMMENT '파일명',
  REAL_FILE_NAME   VARCHAR(500)          NULL                 COMMENT '실제파일명',
  SMS_URL          VARCHAR(1000)         NULL                 COMMENT 'SMS서버경로',
  FILE_EXTSN       VARCHAR(100)          NULL                 COMMENT '파일확장자',
  FILE_SIZE        DECIMAL(18,0)         NULL     DEFAULT 0   COMMENT '파일용량',
  SORT_ORDR        DECIMAL(18,0)         NULL     DEFAULT 0   COMMENT '파일순서',
  REG_DATE         DATETIME              NULL                 COMMENT '등록일자',
    CONSTRAINT PK_SMS_ATTACH PRIMARY KEY (FILE_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-첨부테이블';
-- 
CREATE TABLE SMS_RECENT (
  EMP_ID      VARCHAR(30)     NOT NULL    COMMENT '사용자고유번호',
  PHONE       VARCHAR(255)    NOT NULL    COMMENT '수신처번호',
  USER_NAME   VARCHAR(255)    NOT NULL    COMMENT '수신처명',
  CMP_ID      VARCHAR(30)     NOT NULL    COMMENT '회사고유번호',
  REG_DT      DATETIME        NOT NULL    COMMENT '등록일시',
    CONSTRAINT PK_SMS_RECENT PRIMARY KEY (EMP_ID,PHONE,USER_NAME)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SMS-최근받은사람';
  • 97.maria_smsBiz_dml.sql
/*
${} 로 되어 있는 문자열을 치환하여 실행한다.
-- -----------------------------------------------------------
${db.cmp_id}         : CMP_ID (C100140912)
${db.sys_menu_cd}    : 그룹웨어 시스템메뉴 중복되지 않는 값 (A9903)
*/

-- 기본코드 값 추가
Insert into CMM_CODE (CATE_ID,CODE_ID,CODE_NAME,CODE_DESC,GROUP_TYPE,USE_YN,REG_DATE) values ('A121981484121891','smsMgt','SMS관리자',null,null,'Y',NOW());

-- 기본코드 값 순서 추가
-- CMM_CODE_ORDR 테이블 CODE_ORDR 컬럼에서 중복되지 않는 큰 값 사용
Insert into CMM_CODE_ORDR (CODE_ID,CODE_ORDR,USE_YN) values ('smsMgt','72','Y');

-- 다국어 값 추가
Insert into CMM_I18N (TRGT_ID,LANG_SE_CD,ITEM_NAME,REG_DT,TRGT_COL_NAME) values ('smsMgt','ko','SMS관리자',NOW(),'CMM_CODE');

cmp_id는 아래 sql문에 사용하는 컬럼이 아니기 때문에 그대로 Insert문을 쳐주면 된다.

default-custom.properties 설정

###########################################################################
####################### SMS BIZ Section ###################################
###########################################################################
SMS_BIZ_USE_YN=Y -> sms기능을 사용할 여부
# design resource custom name
SMS_BIZ_RESOURCE_CUSTOM_NAME=naonbiz -> 디자이팀에서 만들어준 디자인명(?) 회사마다 이름이 다름
#smsComDaou:다우, smsComLg:엘지, smsComSk:SK
SMS_BIZ_COMPANY=smsComDaou
#디비폴더 daou,lg,sk
SMS_BIZ_MAPPER=daou 
#API,DB
SMS_BIZ_CONNECT=DB
#SMS,LMS,MMS -> 첨부가 들어가면 mms, 80byte가 넘으면 lms
#기업마다 설정이 다르기 때문에 본인이 확인해야 한다.
SMS_BIZ_SMS_YN=Y
SMS_BIZ_LMS_YN=Y
SMS_BIZ_MMS_YN=Y
#예약기능위치 DEMON,GW	
SMS_BIZ_RESERVE=GW
#상태값 배치 TIME (분)
SMS_BIZ_BATCH_MINUTE=1
# 그룹웨어 시작년도 설정
SMS_BIZ_CUSTOM_START_YEAR=2021
###########################################################################
######################## SMS ATTACH SET ###################################
###########################################################################
#허용 확장자  콤마로 구분 ex)jpg,png
SMS_BIZ_FILE_ALLOW_EXTN=jpg
#최대파일갯수
SMS_BIZ_FILE_MAX_CNT=3
#개당 파일 용량 40KB 40*1024
SMS_BIZ_FILE_SIZE=40960
#총 파일용량
SMS_BIZ_FILE_TOTAL_SIZE=200960
#SFTP사용유무
SMS_BIZ_SFTP_YN=Y
SMS_BIZ_SFTP_HOST=111.222.333.444
SMS_BIZ_SFTP_PORT=22
SMS_BIZ_SFTP_USER_NAME=
SMS_BIZ_SFTP_PASSWORD=
#file separator 윈도우 \\(검증안됨), 리눅스계열  /
SMS_BIZ_SFTP_SEPARATOR=/
#SFTP사용시 물리파일경로
SMS_BIZ_SFTP_PATH=/opt/naon/gw/smsBiz
#SMS서버에서 GW 물리파일 접근가능여부
SMS_BIZ_SAME_SERVER_YN=Y
#SK경우일때만 입력 SK에서 발급하는 고유 ID
SMS_BIZ_SK_AGENT_ID=skAgentId
###########################################################################
######################## SMS BIZ DataSource ###############################
###########################################################################
# 커넥션 풀 사용 여부 (Y : 사용 , N : 자체 커넥션)
SMS_BIZ_USE_CONN_POOL=N -> 로컬 그룹웨어 자체에서 테스트하는 경우 N으로 설정
# JNDI Name
smsBizJndiName=java:comp/env/jdbc/smsBizDS
# oracle / mysql / mssql
SMS_BIZ_DB_TYPE=mysql -> 로컬사이트 DB 타입 설정
# DB Info -> 내 로컬 주소(127.0.0.1) 설정
SMS_BIZ_DB_URL=jdbc:mysql://127.0.0.1:3306/dev? characterEncoding=utf8&autoReconnect=true&autoReconnectForPools=true&allowMultiQueries=true
SMS_BIZ_DB_USER_NAME=naongw -> 내 로컬 db 정보 설정
SMS_BIZ_DB_USER_PWD=naon1234 -> 내 로컬 db 정보 설정
  • SMS_BIZ_USE_YN : SMS기능을 사용할 여부
  • SMS_BIZ_RESOURCE_CUSTOM_NAME : 디자인팀에서 만든 디자인명(?) CSS에 대한 설정
  • SMS_BIZ_USE_CONN_POOL : WAS의 커넥션 풀 사용 여부, 로컬 그룹웨어에서 테스트하는 경우는 N으로 설정한다.
  • smsBizJndiName : WAS의 커넥션 풀 JNDI명 (SMS_BIZ_USE_CONN_POOL = Y인 경우 필수 입력)
  • SMS_BIZ_DB_TYPE : 대상시스템(SMS) DB 종류 (oracle/mysql/mssql 중 택 1)
  • SMS_BIZ_DB_URL, SMS_BIZ_DB_USER_NAME, SMS_BIZ_DB_USER_PWD : WAS의 커넥션풀을 사용하지 않는 경우(SMS_BIZ_USE_CONN_POOL = N) 필수 입력

하지만 이렇게 설치와 설정을 진행하고 서버를 올려 은지소프트를 실행시키면 디자인이 적용이 안되어있을 것이다.

디자인 적용은 아래 링크를 참고하자!
https://velog.io/@seooeunji/%EA%B7%B8%EB%A3%B9%EC%9B%A8%EC%96%B4-%EB%94%94%EC%9E%90%EC%9D%B8-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0

sms 메뉴

위와 같이 세팅을 완료하고 은지소프트를 실행시키면 상단 top메뉴 영역에 표시되도록 코딩이 되어있다.
systemadmin 계정에서는 보이지 않는다. → SMS 관리 메뉴에서 설정할 수 있다.
그리고 일반계정에 SMS권한을 준 뒤, 일반 계정으로 로그인 해보면 top메뉴 영역에 sms메뉴가 보일 것이다.

클릭해보면 요렇게 예쁘게 디자인이 적용된 화면이 뜰 것이다!

context.xml 설정

default-custom.properties 에서 설정한 JNDI 이름을 설정해준다.

  • default-custom.properties
smsBizJndiName=java:comp/env/jdbc/smsBizDS
  • context.xml
<Resource name="jdbc/smsBizDS" auth="Container"
		type="javax.sql.DataSource" username="naongw"
		password="koje**123" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
		url="jdbc:sqlserver://220.66.91.250:1433;DatabaseName=SMS"
		allowMultiQueries="true" maxTotal="5" minIdle="35" maxIdle="50"
		maxWaitMillis="30000" timeBetweenEvictionRunsMillis="300000"
		minEvictableIdleTimeMillis="1800000" testWhileIdle="true"
		validationQuery="SELECT 1" />   

서버 ekp.xml 설정

sms 모듈 연동 소스를 배포하고, sms 모듈 설치까지 되면 서버에서 JNDI 이름을 설정해주어야 한다.
서버상 ekp.xml 위치 : /opt/naon/app/tomcat-8.5.70(프로젝트마다 설치된 tomcat이 다를 수 있음)/instances/groupware_server1/conf/Catalina/localhost/
로 이동하여 ekp.xml 파일을 수정해준다.

로컬 환경 context.xml 에 설정한 sms JNDI resource를 추가해준다.

<Resource name="jdbc/smsBizDS" auth="Container"
		type="javax.sql.DataSource" username="naongw"
		password="koje**123" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
		url="jdbc:sqlserver://220.66.91.250:1433;DatabaseName=SMS"
		allowMultiQueries="true" maxTotal="5" minIdle="35" maxIdle="50"
		maxWaitMillis="30000" timeBetweenEvictionRunsMillis="300000"
		minEvictableIdleTimeMillis="1800000" testWhileIdle="true"
		validationQuery="SELECT 1" />   
profile
Live positive!

0개의 댓글