반응형


형태

오라클 계정 -> 5분 단위로 해서 -> 아래의 테이블 생성후 -> Crontab 으로 조회하여 입력하는 형태

자세한 것은 Shell, Crontab 정보를 찾으면서 하면됨

-- 임의로 실행하는 쿼리목록 조회하기
select      to_char(sysdate,'yyyymmdd'),
            to_char(sysdate, 'HH24'),
            to_char(sysdate, 'MI'),
            A.inst_id,
            A.SID,
            A.SERIAL#,
            A.USERNAME,
            A.TYPE,
            A.STATUS,
            A.STATE,
            A.EVENT,
            A.OSUSER,
            A.PROGRAM,
            A.MACHINE,
            A.SQL_ADDRESS,
            B.SQL_ID,
            B.sharable_mem,
            B.persistent_mem,
            B.runtime_mem,
            B.first_load_time,
            B.OPTIMIZER_MODE,
            B.OPTIMIZER_COST,
            B.MODULE,
            B.SQL_FULLTEXT
   from     GV$SESSION a, GV$SQL B
  WHERE     A.STATUS = 'ACTIVE'                       -- 현재 활성화된
    AND     B.ADDRESS=A.SQL_ADDRESS                   -- FULL SQL TEXT 를 얻기 위해
    AND     A.MACHINE NOT IN ('NewWas1','NewWas2')    -- 접속 Machine 이름이 NewWas1, NewWas2 는 아님
    AND     UPPER(B.SQL_FULLTEXT) NOT LIKE '%V$%';    -- V$ 로 시작하는 뷰를 보는 경우는 제외
   
   
CREATE TABLE MStorage.USER_SQL_LOG
(
      VIEW_YMD   VARCHAR2(8) DEFAULT to_char(sysdate,'yyyymmdd'),
      VIEW_HH    VARCHAR2(2) DEFAULT to_char(sysdate, 'HH24'),
      VIEW_MI    VARCHAR2(2) DEFAULT to_char(sysdate, 'MI'),
      INST_ID    NUMBER,
      SID      NUMBER,
      SERIAL#    NUMBER,
      USERNAME   VARCHAR2(30),
      TYPE     VARCHAR2(10),
      STATUS    VARCHAR2(8),
      STATE     VARCHAR2(19),
      EVENT     VARCHAR2(64),
      OSUSER    VARCHAR2(30),
      PROGRAM    VARCHAR2(48),
      MACHINE    VARCHAR2(64),
      SQL_ADDRESS RAW(8),
      SQL_ID   VARCHAR2(13),
      SHARABLE_MEM NUMBER,
      PERSISTENT_MEM NUMBER,
      RUNTIME_MEM NUMBER,
      FIRST_LOAD_TIME VARCHAR2(38),
      OPTIMIZER_MODE VARCHAR2(10),
      OPTIMIZER_COST NUMBER,
      MODULE     VARCHAR2(64),
      SQL_FULLTEXT  CLOB
) TABLESPACE MStorage;

COMMENT ON TABLE MStorage.USER_SQL_LOG IS '로그 모니터링 테이블(GV$SESSION) 참조';

 


-- 인덱스 생성
CREATE INDEX MStorage.IX_USER_SQL_LOG_01 ON MStorage.USER_SQL_LOG
(
  VIEW_YMD,VIEW_HH, VIEW_MI
)
TABLESPACE MStorage;

 


-- 실제 입력 구문

INSERT INTO MStorage.USER_SQL_LOG
       (
       inst_id,
            SID,
            SERIAL#,
            USERNAME,
            TYPE,
            STATUS,
            STATE,
            EVENT,
            OSUSER,
            PROGRAM,
            MACHINE,
            SQL_ADDRESS,
            SQL_ID,
            sharable_mem,
            persistent_mem,
            runtime_mem,
            first_load_time,
            OPTIMIZER_MODE,
            OPTIMIZER_COST,
            MODULE,
            SQL_FULLTEXT               
            )
select      A.inst_id,
            A.SID,
            A.SERIAL#,
            A.USERNAME,
            A.TYPE,
            A.STATUS,
            A.STATE,
            A.EVENT,
            A.OSUSER,
            A.PROGRAM,
            A.MACHINE,
            A.SQL_ADDRESS,
            B.SQL_ID,
            B.sharable_mem,
            B.persistent_mem,
            B.runtime_mem,
            B.first_load_time,
            B.OPTIMIZER_MODE,
            B.OPTIMIZER_COST,
            B.MODULE,
            B.SQL_FULLTEXT
   from     GV$SESSION a, GV$SQL B
  WHERE     1=1-- A.STATUS = 'ACTIVE'                       -- 현재 활성화된
    AND     B.ADDRESS=A.SQL_ADDRESS                   -- FULL SQL TEXT 를 얻기 위해
    AND     A.MACHINE NOT IN ('NewWas1','NewWas2')    -- 접속 Machine 이름이 NewWas1, NewWas2 는 아님
    AND     UPPER(B.SQL_FULLTEXT) NOT LIKE '%V$%';    -- V$ 로 시작하는 뷰를 보는 경우는 제외

반응형
반응형

답변입니다.
 
먼저 확인하는 내용입니다.
1. http://inho21.com/ 요청과 http://inho21.com/TEMS/ 라는 요청들에 대한 Context 간 Session 공유로 확인합니다.
2. http://inho21.com 라는 도메인으로 요청이 들어오며, 이는 웹서버를 통하여 들어온다고 확인합니다.
 
올려주신 설정은 확인하였습니다.
먼저 WEBMain.xml에서 context간 Session 공유에서 단일 도메인이기 때문에 <session-cookie> 설정은 없어도 됩니다.
======================================================================================
      <session-config>
         <distributable>true</distributable>
         <shared>true</shared>
         <timeout>600</timeout>
         <reload-persistent>true</reload-persistent>
      </session-config>
   </context-group>
   <session-server>
      <primary-server>hoya21</primary-server>
   </session-server>
</web-container>
======================================================================================
 
그리고 JEUSMain.xml에서 세션 서버를 설정하셨고, WEBMain.xml에서 <distributable>true</distributable> 로 설정하셨기 때문에 중앙집중식으로 세션 서버를 사용하시고, 이에 대하여 Container간 단일 Session Server를 사용하게 됩니다.
 
이와 같이 되었다면 다음 jeuadmin `hostname` -Uadministrator -P{설치시 암호} 를 실행하여,
console 관리툴에 들어가시기 바랍니다.
그 후, st -s 를 입력하셨을 경우(한개의 컨테이너 일 경우)
Context(Application) 갯수인 2개가 나오지 않고, 1개로 나오는지를 확인하시기 바랍니다.
1개로 나와야 두개의 Context가 하나의 Session Server를 사용하고 있다는 것입니다.
 
이후, 각 Context간 Session이 공유되는지를 확인하시기 바랍니다.
 
감사합니다.
 
 
ps. 샘플 소스로 Session.jsp 라는 소스를 올립니다. 세션이 공유 되고 있다면, 한 브라우저에서 /Session.jsp 호출 후, /TEMS/Session.jsp 호출시 하나의 JSessionID로 나와야 하며, 뒤에 호출된 것에 대해서 isNew() 값은 false로 나와야 합니다.
 
Session.jsp
======================================================================================
<%@ page language="java" session="true" contentType="text/html; charset=euc-kr" %>
<%
    out.println("test <br>");
    out.println("Session ID : "+session.getId() + "<br>");
    out.println("Session Creation Time : "+new java.util.Date(session.getCreationTime()) + "<br>");
    out.println("Session Last Access Time : "+new java.util.Date(session.getLastAccessedTime()) + "<br>");
    out.println("Session TimeOut : "+session.getMaxInactiveInterval() + "<br>");
    out.println("Session is new? "+session.isNew() + "<br>");
%>
======================================================================================
 
 
 

<질문 내용>
 
JEUS6.0 #Fix6
동일안 컨테이너에 컨텍스트 구분만 해서 사용합니다.
사용 컨텍스트 : '/', '/TEMS' 2개
node name : hoya21
가상도메인 : inho21.com
 
 
제목을 '세션공유에 대한 x차 질문입니다.' 라고 해서 계속 세팅을 하고 있습니다.
이전답변에서는 동일한 컨테이너에 컨텍스트를 등록하면 세션공유가 된다고 했던것 같은데...
4차 답변에서는 동일한 컨테이너 일지라도 컨텍스트간 세션공유가 되지 않는다..라는 답변이 있었고,
이것을 해결할려면 patch를 받아야 한다고 했습니다.
 
현재는 개발중 테스트 목적으로 개발자 노트북에 JEUS를 설치해서 동작 확인 및 설정을 하고 있습니다.
해서 JEUS6.0 #Fix6을 받아 설치하고, 같이 제공하는 patch를 설치했습니다.
데모버젼에서는 세션공유가 안되고, 정식라이센스를 발급 받은 서버에서만 세션공유를 위한 patch파일을
배포하는것인지 알고 싶습니다.
 
개발자의 입장에서 세션공유 테스트를 하려면 더이상 어찌 해야하는지도 답변을 주시면 감사하겠습니다.
 
--------------------------------------------아래---------------------------------------------
 
- JEUSMain.xml
   <node>
      <name>hoya21</name>
        <!-- Session Server Setting -->
        <session-server>
          <type>primary</type>
          <resolution>60000</resolution>
          <connect-timeout>5000</connect-timeout>
          <read-timeout>20000</read-timeout>
          <passivation-to>-1</passivation-to>
          <removal-to>1800000</removal-to>
          <check-to>30000</check-to>
        </session-server>

- WEBMain.xml
      <session-config>
         <!-- This Option is JEUS Session Server Use : Default - false -->
         <!-- If this Option is true, All Context Group Use JEUS Session Server -->
         <distributable>true</distributable>
         <!-- If this Option is true, All Context Group Share Session -->
         <!-- This Option is All Context Group Application Share Session : Default - false -->
         <shared>true</shared>
         <timeout>600</timeout>
         <reload-persistent>true</reload-persistent>
         <session-cookie>
            <jsessionid-name>JSESSIONID2</jsessionid-name>
            <domain>.inho21.com</domain>
         </session-cookie>
      </session-config>
   </context-group>
   <!-- Session Clustering Setting for No Node Clustering -->
   <session-server>
      <primary-server>hoya21</primary-server>
   </session-server>
</web-container>
 
출처 : http://technet.tmax.co.kr/kr/inquiry/qna/jeus/readBoardForm.do?bbsCode=qna_jeus&fc=inquiry&sc=inquiry_qna&tc=inquiry_qna_jeus&currentPage=1&seqNo=41849&categoryId=&productCode=&range=10&searchType=TITLE&searchText=%EA%B3%B5%EC%9C%A0





















JEUS Enterprise버전에서는 SessinServer를 제공합니다.
데모라이센스를 사용하시는 경우 기능제약이 없으므로 설정이 가능합니다.
 
JEUS Server안내서 9장과 JEUS Web Container안내서 8장을 참조하시어 SessionServer를 설정하시면
세션 공유가 가능합니다.
 
== JEUSMain.xml 파일
<jeus-system>
    . . .
    <node>
        . . .
        <session-server>
            <session-manager>
                <name>session1</name>
                <passivation-to>1800000</passivation-to>
                <removal-to>3600000</removal-to>
            </session-manager>
        </session-server>
        . . .
    </node>
 
위와 같이 Session Manager를 설정해 두고
 
== WEBMain.xml 파일 (3개의 컨테이너에 동일하게 설정)
<?xml version="1.0"?>
<web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
        . . .
    <session-cluster>
        <session-server>
            <server-name>session1</server-name>
            <connect-timeout>120000</connect-timeout>
            <read-timeout>120000</read-timeout>
        </session-server>
    </session-cluster>

와 같이 설정하시면 사용이 가능합니다.
 
위의 설정은 간략히 설정한 것입니다.
세부적인 옵션과 용도는 매뉴얼을 참고하시기 바랍니다.
 
 
 
----------------------------------------------------------------
안녕하세요
session 공유 대한 문의 드립니다.
 
현재 사용중이 jeus(jeus 5.0)에 컨테이너 3개를 설정하여
 
웹사이트를  3개를 운영 하려고 합니다. 웹 사이트 1 에  로그인후 session 을 유지 하면서
 
웹사이트 1~ 3 까지 공유하여 세션이 끈어지지 않게 할수 없는지 궁금합니다.


출처 :  http://technet.tmax.co.kr/kr/inquiry/qna/jeus/readBoardForm.do?bbsCode=qna_jeus&fc=inquiry&sc=inquiry_qna&tc=inquiry_qna_jeus&currentPage=4&seqNo=38491&categoryId=&productCode=&range=10&searchType=TITLE&searchText=%EA%B3%B5%EC%9C%A0
반응형

'WAS > JEUS' 카테고리의 다른 글

JAVA Melody Jeus 추가  (0) 2019.12.02
제우스에서 log4sql 사용하기  (0) 2011.03.15
JEUSMain.xml Datasource 암호 설정  (0) 2011.01.13
IBM JVM 튜닝 - 3  (0) 2009.08.24
제우스 환경 설정 부분  (0) 2009.03.05
반응형


금일..

이클립스 상에서 apache 5.5를 실행하던중

다음과 같은 오류 발생

org.apache.catalina.session.StoreBase processExpires

심각 : java.io.EOFException

...

원인

JDK 1.4에서 발생하며

이파일은 톰켓이 시작 정보 백업을 위해 만드는 것인데, 아마도 시작 정보 만들때 뭔가 문제가 생겨서 그런듯...

결론 !

이클립스 종료 ->

<dotcms home>\work\Catalina\localhost\_\SESSIONS.ser

삭제

이클립스 시작

근데.. 플러그인 형태로 설치한 난.. tldCache.ser 로 검색하니 금일 날짜로 나왔슴...

삭제하고 재시작하니 깔끔하고 상쾌한 기분 ~




반응형
반응형

  SELECT   ROUND (BITAND (s.ownerid, 65535)) parent_session_sid,
           ROUND (BITAND (s.ownerid, 16711680) / 65536) parent_session_instid,
           s.INST_ID,
           s.SADDR,
           s.SID,
           s.SERIAL#,
           s.AUDSID,
           s.PADDR,
           s.USER#,
           s.USERNAME,
           s.COMMAND,
           s.OWNERID,
           s.TADDR,
           s.LOCKWAIT,
           s.STATUS,
           s.SERVER,
           s.SCHEMA#,
           s.SCHEMANAME,
           s.OSUSER,
           s.PROCESS,
           s.MACHINE,
           s.PORT,
           s.TERMINAL,
           UPPER (s.PROGRAM) PROGRAM,
           s.TYPE,
           s.SQL_ADDRESS,
           s.SQL_HASH_VALUE,
           s.SQL_ID,
           s.SQL_CHILD_NUMBER,
           s.PREV_SQL_ADDR,
           s.PREV_HASH_VALUE,
           s.PREV_SQL_ID,
           s.PREV_CHILD_NUMBER,
           s.PLSQL_ENTRY_OBJECT_ID,
           s.PLSQL_ENTRY_SUBPROGRAM_ID,
           s.PLSQL_OBJECT_ID,
           s.PLSQL_SUBPROGRAM_ID,
           s.MODULE,
           s.MODULE_HASH,
           s.ACTION,
           s.ACTION_HASH,
           s.CLIENT_INFO,
           s.FIXED_TABLE_SEQUENCE,
           s.ROW_WAIT_OBJ#,
           s.ROW_WAIT_FILE#,
           s.ROW_WAIT_BLOCK#,
           s.ROW_WAIT_ROW#,
           s.LOGON_TIME,
           s.LAST_CALL_ET,
           s.PDML_ENABLED,
           s.FAILOVER_TYPE,
           s.FAILOVER_METHOD,
           s.FAILED_OVER,
           s.RESOURCE_CONSUMER_GROUP,
           s.PDML_STATUS,
           s.PDDL_STATUS,
           s.PQ_STATUS,
           s.CURRENT_QUEUE_DURATION,
           s.CLIENT_IDENTIFIER,
           s.BLOCKING_SESSION_STATUS,
           s.BLOCKING_INSTANCE,
           s.BLOCKING_SESSION,
           s.SEQ#,
           s.EVENT#,
           s.EVENT,
           s.P1TEXT,
           s.P1,
           s.P1RAW,
           s.P2TEXT,
           s.P2,
           s.P2RAW,
           s.P3TEXT,
           s.P3,
           s.P3RAW,
           s.WAIT_CLASS_ID,
           s.WAIT_CLASS#,
           s.WAIT_CLASS,
           s.WAIT_TIME,
           s.SECONDS_IN_WAIT,
           s.STATE,
           s.SERVICE_NAME,
           s.SQL_TRACE,
           s.SQL_TRACE_WAITS,
           s.SQL_TRACE_BINDS,
           s.ECID,
           stat.cpu - stat.CPU_this_call_start cpu_this_call,
           stat.CPU,
           stat.UGA_memory,
           stat.PGA_memory,
           stat.Commits,
           stat.Rollbacks
    FROM   GV$SESSION S,
           (  SELECT   ss.inst_id stat_inst_id,
                       ss.sid stat_sid,
                       SUM(DECODE (sn.name,
                                   'CPU used when call started', ss.VALUE,
                                   0))
                          CPU_this_call_start,
                       SUM(DECODE (sn.name,
                                   'CPU used by this session', ss.VALUE,
                                   0))
                          CPU,
                       SUM (DECODE (sn.name, 'session uga memory', ss.VALUE, 0))
                          uga_memory,
                       SUM (DECODE (sn.name, 'session pga memory', ss.VALUE, 0))
                          pga_memory,
                       SUM (DECODE (sn.name, 'user commits', ss.VALUE, 0))
                          commits,
                       SUM (DECODE (sn.name, 'user rollbacks', ss.VALUE, 0))
                          rollbacks
                FROM   GV$sesstat ss, GV$statname sn
               WHERE   ss.STATISTIC# = sn.STATISTIC# AND ss.inst_id = sn.inst_id
                       AND (   sn.name = 'CPU used when call started'
                            OR sn.name = 'CPU used by this session'
                            OR sn.name = 'session uga memory'
                            OR sn.name = 'session pga memory'
                            OR sn.name = 'user commits'
                            OR sn.name = 'user rollbacks')
            GROUP BY   ss.inst_id, ss.sid) stat
   WHERE   (    (s.USERNAME IS NOT NULL)
            AND (NVL (s.osuser, 'x') <> 'SYSTEM')
            AND (s.TYPE <> 'BACKGROUND'))
           AND ( (stat.stat_inst_id = s.inst_id) AND (stat.stat_sid = s.sid))
ORDER BY   "PROGRAM", OWNERID
반응형
반응형

ORA-00054: 자원이 사용중이고, NOWAIT가 지정되어 있습니다 해결 방법

테이블명이 WOONJIN의 LOCK 걸려있는 SID와 SERIAL을 찾는다.

select a.sid, a.serial#
from v$session a, v$lock b, dba_objects c
where a.sid=b.sid and
b.id1=c.object_id and
b.type='TM' and
c.object_name='JOONI';


SID SERIAL#
--- -------
82   8210


alter system kill session '82, 8210';

반응형

+ Recent posts