ÃֽŠ°Ô½Ã±Û(OS/WAS)
2017.06.12 / 13:31

Tomcat - Session Management (¼¼¼Ç °ü¸®)

Ŭ·¡½Ä·Î¾â
Ãßõ ¼ö 231

Tomcat7¿¡¼­ »ç¿ë °¡´ÉÇÑ Session Manager Ŭ·¡½º

Standard¿Í PersistentManager¸¸ ¼³¸íÇÑ´Ù.

Session Manager»ó¼¼
org.apache.catalina.session.StandardManager±âº» ¼³Á¤. ÇÑ°³ÀÇ instance¸¦ »ç¿ëÇÏ´Â °æ¿ì¸¸ Àû¿ë°¡´É
org.apache.catalina.session.PersistentManagerµð½ºÅ© ¶Ç´Â DB¿¡ ¼¼¼ÇÀ» Persist. ¼¼¼Ç ½º¿ÍÇΰú Àå¾Ö ´ëó(fault tolerance)
org.apache.catalina.session.DeltaManagercluster°£ ¼¼¼ÇÀ» º¹Á¦(¼¼¼Ç µ¥ÀÌÅÍ Áß Â÷ÀÌÁ¡¸¸À» º¹Á¦) clustered env. only
org.apache.catalina.session.BackupManagercluster°£ ¼¼¼ÇÀ» º¹Á¦(¸ðµç ¼¼¼ÇÀÇ ¸ðµç Ŭ·¯½ºÅÍ ³ëµå¸¦ ÇϳªÀÇ ¹é¾÷³ëµå¿¡ ÀúÀå) clustered env. only

<Manager>ÀÇ ¼³Á¤ °¡´É ¼Ó¼º (context.xml¼³Á¤)

¼Ó¼º (Attribute)»ó¼¼
classNameFully Qualified Class Name (»ç¿ëÇÒ managerÀÇ Ç® ³×ÀÓ)
distributable¸ðµç SessionÀÇ AttributeÀÌ java.io.Serializable ÀÎÅÍÆäÀ̽º ±¸Çö. ±âº»Àº false
maxActiveSessions»ý¼º °¡´ÉÇÑ ¼¼¼ÇÀÇ ÃÖ´ë°ªÀ» ¼³Á¤. (-1ÀÎ °æ¿ì Á¦ÇÑ ¾øÀ½ ÀǹÌ)
maxInactiveInterval±âº» 60ÃÊ(´ÜÀ§ ÃÊ) web.xmlÀÇ session-timeoutÀ¸·Î override°¡´É
sessionIdLength¼¼¼ÇID(JSESSIONID)ÀÇ ±æÀÌ(bytes)

StandardManager (Default)

StandardManagerÀÇ »ç¿ë

  • ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÑ ¼­¹öÀÇ Àç½ÃÀÛ/Á¤Áö½Ã¿¡ ÆÄÀÏÀ» µð½ºÅ©¿¡ ÀúÀåÇÑ´Ù. (TomcatÀÇ workÆú´õ)
  • ¿¹±âÄ¡ ¾ÊÀº ¼­¹öÀÇ ¿¡·¯·Î ÀÎÇÑ Á¤Áö½Ã¿¡´Â ÀúÀåµÇÁö ¾Ê´Â´Ù.
  • CATALINA_HOME/work/Catalina/localhost/{WEBAPP}/SESSION.ser
StandardManagerÀÇ ¼³Á¤
1
2
3
4
5
<Manager className="org.apache.catalina.session.StandardManager"
            maxActiveSessions="1"
            pathname="/mySessions.ser"
            sessionIdLength="60">
    </Manager>
StandardMangerÀÇ ¼³Á¤°¡´É¼Ó¼º
¼Ó¼º (Attribute)»ó¼¼
pathname±âº»Àº SESSION.ser
processExpiresFrequencysession¸¸·á¸¦ ¹é±×¶ó¿îµå ÇÁ·Î¼¼½º°¡ ¾ó¸¶³ª ÀÚÁÖ Ã¼Å©Çϴ°¡(°ªÀÌ ÀÛÀ» ¼ö·Ï ÀÚÁÖ) ±âº»°ªÀº 6
secureRandomClasssession id¸¦ »ý¼ºÇϴµ¥ »ç¿ë java.security.SecureRandomŬ·¡½º¸¦ »ó¼ÓÇؼ­ ¸¸µé¾î¾ß ÇÑ´Ù.
secureRandomAlgorithm±âº»Àº SHA1PRNG
secureRandomProvider·£´ý³Ñ¹ö »ý¼ºÀ» À§ÇÑ Provider¼³Á¤
Disabling Session Persistence
1
<Manager pathname=""/>

PersistentManager¼³Á¤

  • org.apache.catalina.session.FileStore
  • org.apache.catalina.session.JDBCStore
PesistentManagerÀÇ ¼³Á¤ ¼Ó¼º
¼Ó¼º (Attribute)»ó¼¼
saveOnRestarttrue°¡ µÇ¸é ÅèĹ ¼Ë´Ù¿î½Ã¿¡ ¸ðµç È°¼º ¼¼¼ÇÀÌ ÀúÀåµÇ°í ½ÃÀ۽ÿ¡ ÀúÀåÀåÄ¡·ÎºÎÅÍ ¸®·ÎµåµÈ´Ù.
minIdleSwapidleÀÎ Session°´Ã¼°¡ ¸Þ¸ð¸®¿¡ ¸Ó¹° ¼ö ÀÖ´Â ÃÖ¼ÒÇÑÀÇ ½Ã°£(ÃÊ)
maxIdleSwapidleÀÎ Session°´Ã¼°¡ µð½ºÅ©·Î ½º¿ÒµÇ¾î¾ß¸¸ ÇÏ´Â ÃÖ´ëÇÑÀÇ ½Ã°£(ÃÊ)
maxIdleBackupswap°ú´Â ´Ù¸£°Ô sessionÀº activeÇÑ »óÅ·Π°è¼Ó Á¸Àç
processExpiresFrequencysession¸¸·á¸¦ ¹é±×¶ó¿îµå ÇÁ·Î¼¼½º°¡ ¾ó¸¶³ª ÀÚÁÖ Ã¼Å©Çϴ°¡(°ªÀÌ ÀÛÀ» ¼ö·Ï ÀÚÁÖ) ±âº»°ªÀº 6
secureRandomClasssession id¸¦ »ý¼ºÇϴµ¥ »ç¿ë java.security.SecureRandomŬ·¡½º¸¦ »ó¼ÓÇؼ­ ¸¸µé¾î¾ß ÇÑ´Ù.
secureRandomProvider·£´ý³Ñ¹ö »ý¼ºÀ» À§ÇÑ Provider¼³Á¤
secureRandomAlgorithm±âº»Àº SHA1PRNG
FileStore
¼Ó¼º (Attribute)»ó¼¼
classNameº¸Åë org.apache.catalina.session.FileStore
directorysession Á¤º¸¸¦ ÀúÀåÇÒ µð·ºÅ丮
checkIntervalswapµÈ ¼¼¼ÇÀÌ ¸¸±âµÇ¾ú´ÂÁö üũÇÏ´Â ÀÎÅ͹ú
JDBCStore – table ¼Ó¼º
¼Ó¼º (Attribute)»ó¼¼
sessionIdColUnique Session Id
sessionValidColSessionÀÌ À¯È¿ÇÑÁö
sessionMaxInactiveColSession inactive±îÁöÀÇ ½Ã°£
sessionLastAccessedCol¼¼¼Ç ÃÖÁ¾ »ç¿ë ½Ã°£
sessionAppCol/Catalina/localhost/sample
sessionDataColHTTP sessionÀ» serializeÇؼ­ ÀúÀå



Ãâó: http://goodcodes.tistory.com/entry/Tomcat-Session-Management-¼¼¼Ç-°ü¸® [Good Codes Make a Good Program]