세션 클러스터링 오류 수정.

master
강석 최 2024-04-18 10:53:03 +09:00
parent 5be10e93d3
commit 57b9e31c1f
8 changed files with 34 additions and 31 deletions

View File

@ -8,6 +8,7 @@ import com.dbnt.faisp.main.faRpt.service.FaRptService;
import com.dbnt.faisp.main.faRpt.service.SriService; import com.dbnt.faisp.main.faRpt.service.SriService;
import com.dbnt.faisp.main.fpiMgt.affair.model.DashboardAffair; import com.dbnt.faisp.main.fpiMgt.affair.model.DashboardAffair;
import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService; import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService;
import com.dbnt.faisp.main.menuMgt.model.MenuMgt;
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService; import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
import com.dbnt.faisp.main.organMgt.service.OrganConfigService; import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
import com.dbnt.faisp.main.publicBoard.model.PublicBoard; import com.dbnt.faisp.main.publicBoard.model.PublicBoard;
@ -29,6 +30,8 @@ import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -155,16 +158,20 @@ public class BaseController {
public void setSession(@AuthenticationPrincipal UserInfo loginUser, HttpSession session){ public void setSession(@AuthenticationPrincipal UserInfo loginUser, HttpSession session){
loginUser.setDownOrganCdList(organConfigService.selectDownOrganList(loginUser.getOgCd())); loginUser.setDownOrganCdList(organConfigService.selectDownOrganList(loginUser.getOgCd()));
loginUser.setUpOrganCdList(organConfigService.selectUpOrganList(loginUser.getOgCd())); loginUser.setUpOrganCdList(organConfigService.selectUpOrganList(loginUser.getOgCd()));
session.setAttribute("menuList", menuMgtService.selectSortedAccessMenuList(loginUser.getUserSeq()));
Map<String, List<CodeMgt>> codeMap = codeMgtService.getCommonCode(); Map<String, List<CodeMgt>> codeMap = codeMgtService.getCommonCode();
session.setAttribute("commonCode", codeMap); List<MenuMgt> menuList = menuMgtService.selectSortedAccessMenuList(loginUser.getUserSeq());
session.setAttribute("userSeq", loginUser.getUserSeq());
session.setAttribute("userOrgan", loginUser.getOgCd());
String belongValue = ""; String belongValue = "";
belongValue += Utils.searchCodeValue(loginUser.getOgCd(), codeMap.get("OG")); belongValue += Utils.searchCodeValue(loginUser.getOgCd(), codeMap.get("OG"));
belongValue += Utils.searchCodeValue(loginUser.getOfcCd(), codeMap.get(loginUser.getOgCd())); belongValue += Utils.searchCodeValue(loginUser.getOfcCd(), codeMap.get(loginUser.getOgCd()));
belongValue += Utils.searchCodeValue(loginUser.getTitleCd(), codeMap.get("JT")); belongValue += Utils.searchCodeValue(loginUser.getTitleCd(), codeMap.get("JT"));
belongValue += loginUser.getUserNm()+"("+loginUser.getUserId()+")"; belongValue += loginUser.getUserNm()+"("+loginUser.getUserId()+")";
session.setAttribute("menuList", new ArrayList<>(menuList));
session.setAttribute("commonCode", new HashMap<>(codeMap));
session.setAttribute("userSeq", loginUser.getUserSeq());
session.setAttribute("userOrgan", loginUser.getOgCd());
session.setAttribute("belongValue", belongValue); session.setAttribute("belongValue", belongValue);
} }

View File

@ -7,6 +7,7 @@ import org.apache.catalina.ha.session.DeltaManager;
import org.apache.catalina.ha.session.JvmRouteBinderValve; import org.apache.catalina.ha.session.JvmRouteBinderValve;
import org.apache.catalina.ha.tcp.ReplicationValve; import org.apache.catalina.ha.tcp.ReplicationValve;
import org.apache.catalina.ha.tcp.SimpleTcpCluster; import org.apache.catalina.ha.tcp.SimpleTcpCluster;
import org.apache.catalina.tribes.Channel;
import org.apache.catalina.tribes.group.GroupChannel; import org.apache.catalina.tribes.group.GroupChannel;
import org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor; import org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor;
import org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor; import org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor;
@ -23,7 +24,6 @@ import org.springframework.stereotype.Component;
@Component @Component
public class TomcatClusterContextCustomizer implements TomcatContextCustomizer { public class TomcatClusterContextCustomizer implements TomcatContextCustomizer {
/*
@Value("${tomcat.cluster.static-member-host:}") @Value("${tomcat.cluster.static-member-host:}")
private String staticMemberHost; private String staticMemberHost;
@ -35,14 +35,11 @@ public class TomcatClusterContextCustomizer implements TomcatContextCustomizer {
private String receiverAddress; private String receiverAddress;
@Value("${tomcat.cluster.receiver-port:}") @Value("${tomcat.cluster.receiver-port:}")
private Integer receiverPort; private Integer receiverPort;
@Value("${tomcat.cluster.receiver-max-threads:}")
private Integer receiverMaxThreads;
*/
@Override @Override
public void customize( final Context context ) { public void customize( final Context context ) {
context.setDistributable(true); context.setDistributable(true);
// BackupManager manager = new BackupManager();
DeltaManager manager = new DeltaManager(); DeltaManager manager = new DeltaManager();
manager.setExpireSessionsOnShutdown(false); manager.setExpireSessionsOnShutdown(false);
manager.setNotifyListenersOnReplication(true); manager.setNotifyListenersOnReplication(true);
@ -53,9 +50,8 @@ public class TomcatClusterContextCustomizer implements TomcatContextCustomizer {
private void configureCluster(Engine engine) { private void configureCluster(Engine engine) {
//cluster setting //cluster setting
SimpleTcpCluster cluster = new SimpleTcpCluster(); SimpleTcpCluster cluster = new SimpleTcpCluster();
/* cluster.setChannelStartOptions(Channel.SND_RX_SEQ|Channel.SND_TX_SEQ);
cluster.setChannelStartOptions(3); cluster.setChannelSendOptions(Channel.SEND_OPTIONS_ASYNCHRONOUS);
cluster.setChannelSendOptions(8);
//channel setting //channel setting
GroupChannel channel = new GroupChannel(); GroupChannel channel = new GroupChannel();
@ -72,13 +68,13 @@ public class TomcatClusterContextCustomizer implements TomcatContextCustomizer {
//receiver(현재 자신의 정보) //receiver(현재 자신의 정보)
NioReceiver receiver = new NioReceiver(); NioReceiver receiver = new NioReceiver();
receiver.setAddress(receiverAddress); receiver.setAddress(receiverAddress);
receiver.setMaxThreads(receiverMaxThreads); receiver.setMaxThreads(6);
receiver.setPort(receiverPort); receiver.setPort(receiverPort);
channel.setChannelReceiver(receiver); channel.setChannelReceiver(receiver);
channel.addInterceptor(interceptor);
*/
cluster.setChannelSendOptions(6); channel.addInterceptor(interceptor);
/* cluster.setChannelSendOptions(6);
//channel //channel
GroupChannel channel = new GroupChannel(); GroupChannel channel = new GroupChannel();
@ -96,6 +92,7 @@ public class TomcatClusterContextCustomizer implements TomcatContextCustomizer {
receiver.setMaxThreads(6); receiver.setMaxThreads(6);
receiver.setPort(5000); // TCP port 오픈 필요 receiver.setPort(5000); // TCP port 오픈 필요
channel.setChannelReceiver(receiver); channel.setChannelReceiver(receiver);
*/
//sender //sender
ReplicationTransmitter sender = new ReplicationTransmitter(); ReplicationTransmitter sender = new ReplicationTransmitter();

View File

@ -16,7 +16,7 @@ import java.util.Comparator;
@DynamicUpdate @DynamicUpdate
@Table(name = "code_mgt") @Table(name = "code_mgt")
@IdClass(CodeMgt.CodeMgtId.class) @IdClass(CodeMgt.CodeMgtId.class)
public class CodeMgt { public class CodeMgt implements Serializable{
@Id @Id
@Column(name = "category_cd") @Column(name = "category_cd")
private String categoryCd; private String categoryCd;

View File

@ -8,6 +8,7 @@ import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*; import javax.persistence.*;
import java.io.Serializable;
import java.util.List; import java.util.List;
@Getter @Getter
@ -17,7 +18,7 @@ import java.util.List;
@DynamicInsert @DynamicInsert
@DynamicUpdate @DynamicUpdate
@Table(name = "menu_mgt") @Table(name = "menu_mgt")
public class MenuMgt extends BaseModel { public class MenuMgt extends BaseModel implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "menu_key") @Column(name = "menu_key")

View File

@ -2,19 +2,18 @@
server.error.whitelabel.enabled=false server.error.whitelabel.enabled=false
server.error.path=/errors server.error.path=/errors
logging.level.org.apache.tomcat: DEBUG
logging.level.org.apache.catalina: DEBUG
#tomcat #tomcat
tomcat.ajp.protocol=HTTP/1.1 tomcat.ajp.protocol=HTTP/1.1
#tomcat.ajp.protocol=AJP/1.3 #tomcat.ajp.protocol=AJP/1.3
logging.level.org.apache.tomcat: DEBUG
logging.level.org.apache.catalina: DEBUG
tomcat.cluster.enabled=true tomcat.cluster.enabled=true
tomcat.cluster.static-member-host=172.80.0.4 tomcat.cluster.static-member-host=172.80.0.4
tomcat.cluster.static-member-port=4042 tomcat.cluster.static-member-port=4040
tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2} tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2}
tomcat.cluster.receiver-address=172.80.0.3 tomcat.cluster.receiver-address=172.80.0.3
tomcat.cluster.receiver-port=4040 tomcat.cluster.receiver-port=4040
tomcat.cluster.receiver-max-threads=4
#file upload #file upload
spring.servlet.multipart.location=/docker/faisp/uploadFiles spring.servlet.multipart.location=/docker/faisp/uploadFiles

View File

@ -2,19 +2,18 @@
server.error.whitelabel.enabled=false server.error.whitelabel.enabled=false
server.error.path=/errors server.error.path=/errors
logging.level.org.apache.tomcat: DEBUG
logging.level.org.apache.catalina: DEBUG
#tomcat #tomcat
tomcat.ajp.protocol=HTTP/1.1 tomcat.ajp.protocol=HTTP/1.1
#tomcat.ajp.protocol=AJP/1.3 #tomcat.ajp.protocol=AJP/1.3
logging.level.org.apache.tomcat: DEBUG
logging.level.org.apache.catalina: DEBUG
tomcat.cluster.enabled=true tomcat.cluster.enabled=true
tomcat.cluster.static-member-host=172.80.0.3 tomcat.cluster.static-member-host=172.80.0.3
tomcat.cluster.static-member-port=4040 tomcat.cluster.static-member-port=4040
tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1} tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}
tomcat.cluster.receiver-address=172.80.0.4 tomcat.cluster.receiver-address=172.80.0.4
tomcat.cluster.receiver-port=4042 tomcat.cluster.receiver-port=4040
tomcat.cluster.receiver-max-threads=4
#file upload #file upload
spring.servlet.multipart.location=/docker/faisp/uploadFiles spring.servlet.multipart.location=/docker/faisp/uploadFiles

View File

@ -17,7 +17,7 @@ spring.servlet.multipart.location=/backup/faisp/uploadFiles
spring.servlet.multipart.max-file-size=200MB spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=500MB spring.servlet.multipart.max-request-size=500MB
site.domain=10.187.58.12 site.domain=http://10.187.58.12
clipReport.print.url=http://10.187.58.47:8085/ClipReport5 clipReport.print.url=http://10.187.58.47:8085/ClipReport5
search.engine.default=http://10.187.58.49:7577 search.engine.default=http://10.187.58.49:7577
search.engine.suggest=http://10.187.58.49:7614 search.engine.suggest=http://10.187.58.49:7614

View File

@ -7,7 +7,7 @@ tomcat.ajp.protocol=AJP/1.3
tomcat.cluster.enabled=true tomcat.cluster.enabled=true
tomcat.cluster.static-member-host=10.187.58.47 tomcat.cluster.static-member-host=10.187.58.47
tomcat.cluster.static-member-port=4040 tomcat.cluster.static-member-port=4040
tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2} tomcat.cluster.static-member-unique-id={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}
tomcat.cluster.receiver-address=10.187.58.48 tomcat.cluster.receiver-address=10.187.58.48
tomcat.cluster.receiver-port=4042 tomcat.cluster.receiver-port=4042
tomcat.cluster.receiver-max-threads=4 tomcat.cluster.receiver-max-threads=4
@ -17,7 +17,7 @@ spring.servlet.multipart.location=/backup/faisp/uploadFiles
spring.servlet.multipart.max-file-size=200MB spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=500MB spring.servlet.multipart.max-request-size=500MB
site.domain=10.187.58.12 site.domain=http://10.187.58.12
clipReport.print.url=http://10.187.58.48:8085/ClipReport5 clipReport.print.url=http://10.187.58.48:8085/ClipReport5
search.engine.default=http://10.187.58.50:7577 search.engine.default=http://10.187.58.50:7577
search.engine.suggest=http://10.187.58.50:7614 search.engine.suggest=http://10.187.58.50:7614