Release History

Data format is : YYYY-MM-DD

Version format is : major.minor.patch

  • 1.3.3 (server 1.2.4, manager 1.3.3, API 1.2.2) Released - 2016.09.30
  • 1.3.2 (server 1.2.3, manager 1.3.2, API 1.2.1) Released - 2016.06.08
  • 1.3.1 (server 1.2.2, manager 1.3.1, API 1.2.0) Released - 2016.04.06

1.3.3 Released

배포자원

db_script.zip
glue-scheduler-job-1.2.x.jar
glue-scheduler-manager-1.3.x.war ( M0SA010APP.ear )
meta-manager.properties
scheduler-server-1.2.x.zip

DB

  1. Quartz JDBCJobStore 용도의 DDL 추가 ( PostgreSQL 용 추가 )
    db_script.zip
        + quartz-2.2.2 
            - tables_oracle.sql
            - tables_postgres.sql
        + scheduler
            - tables_oracle.sql
            - tables_postgres.sql  <-- 추가
        + security
            - tables_oracle.sql
            - tables_postgres.sql
    

API

  1. PostgreSQL이 DB 일 경우, Job 프로그램 실행이력 작성시 Type 불일치로 인한 SQL 오류 조치

Manager : glue-scheduler-manager-1.3.3.war ( 1.3.2 -> 1.3.3 )

  1. MetaData 화면 개선 : 실행옵션 등록시 메모리 옵션은 관리자(ex. admin) 만 등록가능 하도록 수정.

  2. Role 화면 기능 개선 : ROLE 추가시 Resource 매핑정보도 같이 추가되도록 보완

  3. PostgreSQL이 DB 일 경우, SQL 오류 조치

    • 최초 설치 과정중 임시 관리자계정(admin/pass) 생성시 CURRENT_TIMESTAMP 에 + 3 사용 불가
      수정전
      INSERT INTO USERS (USER_ID, CRC_ID, PASSWORD, GROUP_ID, USER_NAME, LANGUAGE, WORK_LOCATION, ENABLED, START_ACTIVE_DATE, END_ACTIVE_DATE, CREATE_DATE, CREATE_USER, MODIFY_DATE, MODIFY_USER) 
      VALUES (?, ?, ?, 'GRO_ADMIN', 'admin', 'ko', 'ko', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+3, CURRENT_TIMESTAMP, 'SQL', CURRENT_TIMESTAMP, 'SQL')
      
      수정후
      INSERT INTO USERS (USER_ID, CRC_ID, PASSWORD, GROUP_ID, USER_NAME, LANGUAGE, WORK_LOCATION, ENABLED, START_ACTIVE_DATE, END_ACTIVE_DATE, CREATE_DATE, CREATE_USER, MODIFY_DATE, MODIFY_USER) 
      VALUES (?, ?, ?, 'GRO_ADMIN', 'admin', 'ko', 'ko', 1, CURRENT_DATE, CURRENT_DATE+3, CURRENT_TIMESTAMP, 'SQL', CURRENT_TIMESTAMP, 'SQL')
      
      2016-07-14 10:46:59,080 [localhost-startStop-1] ERROR com.poscoict.app.security.web.GlueContextLoaderListener - fail to executeUpdate
      org.postgresql.util.PSQLException: ERROR: operator does not exist: timestamp with time zone + integer
        Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
        Position: 283
          at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2284) ~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
          at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2003) ~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
          at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:200) ~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
          at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:424) ~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
          at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:161) ~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
          at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:133) ~[postgresql-9.4.1208.jre7.jar:9.4.1208.jre7]
          at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:97) ~[tomcat-dbcp.jar:8.0.30]
          at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:97) ~[tomcat-dbcp.jar:8.0.30]
          at com.poscoict.app.security.web.GlueContextLoaderListener.contextInitialized(GlueContextLoaderListener.java:93) ~[classes/:na]
          at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812) [catalina.jar:8.0.30]
          at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) [catalina.jar:8.0.30]
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.0.30]
          at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) [catalina.jar:8.0.30]
          at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) [catalina.jar:8.0.30]
          at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) [catalina.jar:8.0.30]
          at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1101) [catalina.jar:8.0.30]
          at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1813) [catalina.jar:8.0.30]
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_31]
          at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_31]
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_31]
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_31]
          at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31]
      
    • User 페이지에서 사용자 추가시 Type 불일치로 인한 오류
      수정전 
      INSERT INTO users (USER_ID,CRC_ID,PASSWORD,GROUP_ID,USER_NAME,LANGUAGE,WORK_LOCATION,ENABLED,START_ACTIVE_DATE,END_ACTIVE_DATE,CREATE_DATE,CREATE_USER,MODIFY_DATE,MODIFY_USER)
      VALUES (:USER_ID,:CRC_ID,:PASSWORD,:GROUP_ID,:USER_NAME,:LANGUAGE,:WORK_LOCATION,:ENABLED,:START_ACTIVE_DATE,:END_ACTIVE_DATE,CURRENT_TIMESTAMP,:audit,CURRENT_TIMESTAMP,:audit)
      
      수정후
      INSERT INTO users (USER_ID,CRC_ID,PASSWORD,GROUP_ID,USER_NAME,LANGUAGE,WORK_LOCATION,ENABLED,START_ACTIVE_DATE,END_ACTIVE_DATE,CREATE_DATE,CREATE_USER,MODIFY_DATE,MODIFY_USER)
      VALUES (:USER_ID,:CRC_ID,:PASSWORD,:GROUP_ID,:USER_NAME,:LANGUAGE,:WORK_LOCATION,to_number(:ENABLED,'9'),:START_ACTIVE_DATE,:END_ACTIVE_DATE,CURRENT_TIMESTAMP,:audit,CURRENT_TIMESTAMP,:audit)
      

Server : scheduler-server-1.2.4.zip ( 1.2.3 -> 1.2.4 )

  1. Status 코드 개선 - 로그 보완

    개선전 로그 : Scheduler Server에서 Status를 200 으로만 설정해서, Job이 정상 수행되었음에도 ERROR 로그를 남김.

    DEBUG com.poscoict.glueframework.scheduling.remote.GlueHttpJobEventSender - [name=request_id, value=-1, name=job_name, value=sample1.job001, name=client_ip, value=10.151.3.14, name=jobParam-_user_id_, value=admin]
    ERROR com.poscoict.glueframework.scheduling.remote.GlueHttpJobEventSender - Method failed: HTTP/1.1 200 OK
    INFO  com.poscoict.glueframework.scheduling.remote.GlueHttpJobEventSender - Response Body :1
    INFO  com.poscoict.glueframework.scheduling.remote.GlueHttpJobEventSender - Status Line :HTTP/1.1 200 OK
    

    개선후 로그 : Scheduler Server에서 Job 호출 Event를 받아서 정상 실행된 경우 700, 에러발생시 800 으로 설정함.
    그외 Event( activate trigger 등 ) 의 경우 정상 실행은 200, 권한이 없는 경우와 에러가 발생한 경우 500 으로 설정함.

    DEBUG com.poscoict.glueframework.scheduling.remote.GlueHttpJobEventSender - [name=request_id, value=-1, name=job_name, value=sample1.job001, name=client_ip, value=10.151.3.14, name=jobParam-_user_id_, value=admin]
    INFO  com.poscoict.glueframework.scheduling.remote.GlueHttpJobEventSender - Response Body :2
    INFO  com.poscoict.glueframework.scheduling.remote.GlueHttpJobEventSender - Status Line :HTTP/1.1 700